github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/cf/requirements/service_instance.go (about)

     1  package requirements
     2  
     3  import (
     4  	"github.com/cloudfoundry/cli/cf/api"
     5  	"github.com/cloudfoundry/cli/cf/models"
     6  	"github.com/cloudfoundry/cli/cf/terminal"
     7  )
     8  
     9  type ServiceInstanceRequirement interface {
    10  	Requirement
    11  	GetServiceInstance() models.ServiceInstance
    12  }
    13  
    14  type serviceInstanceApiRequirement struct {
    15  	name            string
    16  	ui              terminal.UI
    17  	serviceRepo     api.ServiceRepository
    18  	serviceInstance models.ServiceInstance
    19  }
    20  
    21  func NewServiceInstanceRequirement(name string, ui terminal.UI, sR api.ServiceRepository) (req *serviceInstanceApiRequirement) {
    22  	req = new(serviceInstanceApiRequirement)
    23  	req.name = name
    24  	req.ui = ui
    25  	req.serviceRepo = sR
    26  	return
    27  }
    28  
    29  func (req *serviceInstanceApiRequirement) Execute() (success bool) {
    30  	var apiErr error
    31  	req.serviceInstance, apiErr = req.serviceRepo.FindInstanceByName(req.name)
    32  
    33  	if apiErr != nil {
    34  		req.ui.Failed(apiErr.Error())
    35  		return false
    36  	}
    37  
    38  	return true
    39  }
    40  
    41  func (req *serviceInstanceApiRequirement) GetServiceInstance() models.ServiceInstance {
    42  	return req.serviceInstance
    43  }