github.com/loafoe/cli@v7.1.0+incompatible/actor/v3action/service_instance.go (about)

     1  package v3action
     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  func (actor Actor) GetServiceInstanceByNameAndSpace(serviceInstanceName string, spaceGUID string) (resources.ServiceInstance, Warnings, error) {
    10  	serviceInstances, warnings, err := actor.CloudControllerClient.GetServiceInstances(
    11  		ccv3.Query{Key: ccv3.NameFilter, Values: []string{serviceInstanceName}},
    12  		ccv3.Query{Key: ccv3.SpaceGUIDFilter, Values: []string{spaceGUID}},
    13  	)
    14  
    15  	if err != nil {
    16  		return resources.ServiceInstance{}, Warnings(warnings), err
    17  	}
    18  
    19  	if len(serviceInstances) == 0 {
    20  		return resources.ServiceInstance{}, Warnings(warnings), actionerror.ServiceInstanceNotFoundError{Name: serviceInstanceName}
    21  	}
    22  
    23  	//Handle multiple serviceInstances being returned as GetServiceInstances arnt filtered by space
    24  	return serviceInstances[0], Warnings(warnings), nil
    25  }
    26  
    27  func (actor Actor) UnshareServiceInstanceByServiceInstanceAndSpace(serviceInstanceGUID string, sharedToSpaceGUID string) (Warnings, error) {
    28  	warnings, err := actor.CloudControllerClient.DeleteServiceInstanceRelationshipsSharedSpace(serviceInstanceGUID, sharedToSpaceGUID)
    29  	return Warnings(warnings), err
    30  }