github.com/orange-cloudfoundry/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 }