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