github.com/cloudfoundry-community/cloudfoundry-cli@v6.44.1-0.20240130060226-cda5ed8e89a5+incompatible/actor/v7action/space.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 Space resources.Space 10 11 // ResetSpaceIsolationSegment disassociates a space from an isolation segment. 12 // 13 // If the space's organization has a default isolation segment, return its 14 // name. Otherwise return the empty string. 15 func (actor Actor) ResetSpaceIsolationSegment(orgGUID string, spaceGUID string) (string, Warnings, error) { 16 var allWarnings Warnings 17 18 _, apiWarnings, err := actor.CloudControllerClient.UpdateSpaceIsolationSegmentRelationship(spaceGUID, "") 19 allWarnings = append(allWarnings, apiWarnings...) 20 if err != nil { 21 return "", allWarnings, err 22 } 23 24 isoSegRelationship, apiWarnings, err := actor.CloudControllerClient.GetOrganizationDefaultIsolationSegment(orgGUID) 25 allWarnings = append(allWarnings, apiWarnings...) 26 if err != nil { 27 return "", allWarnings, err 28 } 29 30 var isoSegName string 31 if isoSegRelationship.GUID != "" { 32 isolationSegment, apiWarnings, err := actor.CloudControllerClient.GetIsolationSegment(isoSegRelationship.GUID) 33 allWarnings = append(allWarnings, apiWarnings...) 34 if err != nil { 35 return "", allWarnings, err 36 } 37 isoSegName = isolationSegment.Name 38 } 39 40 return isoSegName, allWarnings, nil 41 } 42 43 func (actor Actor) GetSpaceByNameAndOrganization(spaceName string, orgGUID string) (Space, Warnings, error) { 44 spaces, warnings, err := actor.CloudControllerClient.GetSpaces( 45 ccv3.Query{Key: ccv3.NameFilter, Values: []string{spaceName}}, 46 ccv3.Query{Key: ccv3.OrganizationGUIDFilter, Values: []string{orgGUID}}, 47 ) 48 49 if err != nil { 50 return Space{}, Warnings(warnings), err 51 } 52 53 if len(spaces) == 0 { 54 return Space{}, Warnings(warnings), actionerror.SpaceNotFoundError{Name: spaceName} 55 } 56 57 return Space(spaces[0]), Warnings(warnings), nil 58 } 59 60 // GetOrganizationSpaces returns a list of spaces in the specified org 61 func (actor Actor) GetOrganizationSpaces(orgGUID string) ([]Space, Warnings, error) { 62 ccv2Spaces, warnings, err := actor.CloudControllerClient.GetSpaces(ccv3.Query{ 63 Key: ccv3.OrganizationGUIDFilter, 64 Values: []string{orgGUID}, 65 }) 66 if err != nil { 67 return []Space{}, Warnings(warnings), err 68 } 69 70 spaces := make([]Space, len(ccv2Spaces)) 71 for i, ccv2Space := range ccv2Spaces { 72 spaces[i] = Space(ccv2Space) 73 } 74 75 return spaces, Warnings(warnings), nil 76 }