github.com/sleungcy/cli@v7.1.0+incompatible/command/v7/create_service_broker_command.go (about)

     1  package v7
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/command/flag"
     5  	"code.cloudfoundry.org/cli/resources"
     6  	"code.cloudfoundry.org/cli/util/configv3"
     7  )
     8  
     9  type CreateServiceBrokerCommand struct {
    10  	BaseCommand
    11  
    12  	RequiredArgs    flag.ServiceBrokerArgs `positional-args:"yes"`
    13  	SpaceScoped     bool                   `long:"space-scoped" description:"Make the broker's service plans only visible within the targeted space"`
    14  	usage           interface{}            `usage:"CF_NAME create-service-broker SERVICE_BROKER USERNAME PASSWORD URL [--space-scoped]"`
    15  	relatedCommands interface{}            `related_commands:"enable-service-access, service-brokers, target"`
    16  }
    17  
    18  func (cmd *CreateServiceBrokerCommand) Execute(args []string) error {
    19  	err := cmd.SharedActor.CheckTarget(cmd.SpaceScoped, cmd.SpaceScoped)
    20  	if err != nil {
    21  		return err
    22  	}
    23  
    24  	user, err := cmd.Config.CurrentUser()
    25  	if err != nil {
    26  		return err
    27  	}
    28  
    29  	var space configv3.Space
    30  	if cmd.SpaceScoped {
    31  		space = cmd.Config.TargetedSpace()
    32  		cmd.UI.DisplayTextWithFlavor(
    33  			"Creating service broker {{.ServiceBroker}} in org {{.Org}} / space {{.Space}} as {{.Username}}...",
    34  			map[string]interface{}{
    35  				"Username":      user.Name,
    36  				"ServiceBroker": cmd.RequiredArgs.ServiceBroker,
    37  				"Org":           cmd.Config.TargetedOrganizationName(),
    38  				"Space":         space.Name,
    39  			},
    40  		)
    41  	} else {
    42  		cmd.UI.DisplayTextWithFlavor(
    43  			"Creating service broker {{.ServiceBroker}} as {{.Username}}...",
    44  			map[string]interface{}{
    45  				"Username":      user.Name,
    46  				"ServiceBroker": cmd.RequiredArgs.ServiceBroker,
    47  			},
    48  		)
    49  	}
    50  
    51  	warnings, err := cmd.Actor.CreateServiceBroker(
    52  		resources.ServiceBroker{
    53  			Name:      cmd.RequiredArgs.ServiceBroker,
    54  			Username:  cmd.RequiredArgs.Username,
    55  			Password:  cmd.RequiredArgs.Password,
    56  			URL:       cmd.RequiredArgs.URL,
    57  			SpaceGUID: space.GUID,
    58  		},
    59  	)
    60  	cmd.UI.DisplayWarnings(warnings)
    61  	if err != nil {
    62  		return err
    63  	}
    64  
    65  	cmd.UI.DisplayOK()
    66  	return nil
    67  }