github.com/arunkumar7540/cli@v6.45.0+incompatible/command/v7/create_service_broker_command.go (about)

     1  package v7
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/actor/sharedaction"
     5  	"code.cloudfoundry.org/cli/actor/v7action"
     6  	"code.cloudfoundry.org/cli/command"
     7  	"code.cloudfoundry.org/cli/command/flag"
     8  	"code.cloudfoundry.org/cli/command/v7/shared"
     9  )
    10  
    11  //go:generate counterfeiter . CreateServiceBrokerActor
    12  
    13  type CreateServiceBrokerActor interface {
    14  	CreateServiceBroker(v7action.ServiceBrokerCredentials) (v7action.Warnings, error)
    15  }
    16  
    17  type CreateServiceBrokerCommand struct {
    18  	RequiredArgs    flag.ServiceBrokerArgs `positional-args:"yes"`
    19  	SpaceScoped     bool                   `long:"space-scoped" description:"Make the broker's service plans only visible within the targeted space"`
    20  	usage           interface{}            `usage:"CF_NAME create-service-broker SERVICE_BROKER USERNAME PASSWORD URL [--space-scoped]"`
    21  	relatedCommands interface{}            `related_commands:"enable-service-access, service-brokers, target"`
    22  
    23  	SharedActor command.SharedActor
    24  	Config      command.Config
    25  	UI          command.UI
    26  	Actor       CreateServiceBrokerActor
    27  }
    28  
    29  func (cmd *CreateServiceBrokerCommand) Setup(config command.Config, ui command.UI) error {
    30  	cmd.Config = config
    31  	cmd.UI = ui
    32  
    33  	cmd.SharedActor = sharedaction.NewActor(config)
    34  
    35  	ccClient, _, err := shared.NewClients(config, ui, true, "")
    36  	if err != nil {
    37  		return err
    38  	}
    39  	cmd.Actor = v7action.NewActor(ccClient, config, nil, nil)
    40  
    41  	return nil
    42  }
    43  
    44  func (cmd *CreateServiceBrokerCommand) Execute(args []string) error {
    45  	err := cmd.SharedActor.CheckTarget(false, false)
    46  	if err != nil {
    47  		return err
    48  	}
    49  
    50  	user, err := cmd.Config.CurrentUser()
    51  	if err != nil {
    52  		return err
    53  	}
    54  
    55  	cmd.UI.DisplayTextWithFlavor(
    56  		"Creating service broker {{.ServiceBroker}} as {{.Username}}...",
    57  		map[string]interface{}{
    58  			"Username":      user.Name,
    59  			"ServiceBroker": cmd.RequiredArgs.ServiceBroker,
    60  		},
    61  	)
    62  
    63  	brokerCredentials := v7action.ServiceBrokerCredentials{
    64  		Name:      cmd.RequiredArgs.ServiceBroker,
    65  		URL:       cmd.RequiredArgs.URL,
    66  		Username:  cmd.RequiredArgs.Username,
    67  		Password:  cmd.RequiredArgs.Password,
    68  		SpaceGUID: "",
    69  	}
    70  
    71  	warnings, err := cmd.Actor.CreateServiceBroker(brokerCredentials)
    72  	cmd.UI.DisplayWarnings(warnings)
    73  
    74  	if err == nil {
    75  		cmd.UI.DisplayOK()
    76  	}
    77  
    78  	return err
    79  }