github.com/arunkumar7540/cli@v6.45.0+incompatible/command/v7/service_brokers_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/v7/shared" 8 "code.cloudfoundry.org/cli/util/ui" 9 ) 10 11 //go:generate counterfeiter . ServiceBrokersActor 12 13 type ServiceBrokersActor interface { 14 GetServiceBrokers() ([]v7action.ServiceBroker, v7action.Warnings, error) 15 } 16 17 type ServiceBrokersCommand struct { 18 usage interface{} `usage:"CF_NAME service-brokers"` 19 relatedCommands interface{} `related_commands:"delete-service-broker, disable-service-access, enable-service-access"` 20 SharedActor command.SharedActor 21 Config command.Config 22 UI command.UI 23 Actor ServiceBrokersActor 24 } 25 26 func (cmd *ServiceBrokersCommand) Setup(config command.Config, ui command.UI) error { 27 cmd.Config = config 28 cmd.UI = ui 29 30 cmd.SharedActor = sharedaction.NewActor(config) 31 32 ccClient, _, err := shared.NewClients(config, ui, true, "") 33 if err != nil { 34 return err 35 } 36 cmd.Actor = v7action.NewActor(ccClient, config, nil, nil) 37 38 return nil 39 } 40 41 func (cmd *ServiceBrokersCommand) Execute(args []string) error { 42 err := cmd.SharedActor.CheckTarget(false, false) 43 if err != nil { 44 return err 45 } 46 47 currentUser, err := cmd.Config.CurrentUser() 48 if err != nil { 49 return err 50 } 51 52 cmd.UI.DisplayTextWithFlavor("Getting service brokers as {{.Username}}...", map[string]interface{}{"Username": currentUser.Name}) 53 54 serviceBrokers, warnings, err := cmd.Actor.GetServiceBrokers() 55 cmd.UI.DisplayWarnings(warnings) 56 if err != nil { 57 return err 58 } 59 60 cmd.displayServiceBrokers(serviceBrokers) 61 62 return nil 63 } 64 65 func (cmd *ServiceBrokersCommand) displayServiceBrokers(serviceBrokers []v7action.ServiceBroker) { 66 if len(serviceBrokers) == 0 { 67 cmd.UI.DisplayText("No service brokers found") 68 } else { 69 cmd.displayServiceBrokersTable(serviceBrokers) 70 } 71 } 72 73 func (cmd *ServiceBrokersCommand) displayServiceBrokersTable(serviceBrokers []v7action.ServiceBroker) { 74 var table = [][]string{ 75 { 76 cmd.UI.TranslateText("name"), 77 cmd.UI.TranslateText("url"), 78 }, 79 } 80 81 for _, serviceBroker := range serviceBrokers { 82 table = append(table, []string{serviceBroker.Name, serviceBroker.URL}) 83 } 84 85 cmd.UI.DisplayTableWithHeader("", table, ui.DefaultTableSpacePadding) 86 }