github.com/cloudfoundry-community/cloudfoundry-cli@v6.44.1-0.20240130060226-cda5ed8e89a5+incompatible/actor/v7action/stack.go (about)

     1  package v7action
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/actor/actionerror"
     5  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3"
     6  	"code.cloudfoundry.org/cli/resources"
     7  )
     8  
     9  type Stack resources.Stack
    10  
    11  func (actor *Actor) GetStackByName(stackName string) (Stack, Warnings, error) {
    12  	stacks, warnings, err := actor.CloudControllerClient.GetStacks(
    13  		ccv3.Query{Key: ccv3.NameFilter, Values: []string{stackName}},
    14  	)
    15  
    16  	if err != nil {
    17  		return Stack{}, Warnings(warnings), err
    18  	}
    19  
    20  	if len(stacks) == 0 {
    21  		return Stack{}, Warnings(warnings), actionerror.StackNotFoundError{Name: stackName}
    22  	}
    23  
    24  	return Stack(stacks[0]), Warnings(warnings), nil
    25  }
    26  
    27  func (actor Actor) GetStacks() ([]Stack, Warnings, error) {
    28  	ccv3Stacks, warnings, err := actor.CloudControllerClient.GetStacks()
    29  	if err != nil {
    30  		return nil, Warnings(warnings), err
    31  	}
    32  
    33  	var stacks []Stack
    34  	for _, stack := range ccv3Stacks {
    35  		stacks = append(stacks, Stack(stack))
    36  	}
    37  	return stacks, Warnings(warnings), nil
    38  }