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 }