github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/cf/commands/servicebroker/rename_service_broker.go (about) 1 package servicebroker 2 3 import ( 4 "github.com/cloudfoundry/cli/cf/api" 5 "github.com/cloudfoundry/cli/cf/command_registry" 6 "github.com/cloudfoundry/cli/cf/configuration/core_config" 7 . "github.com/cloudfoundry/cli/cf/i18n" 8 "github.com/cloudfoundry/cli/cf/requirements" 9 "github.com/cloudfoundry/cli/cf/terminal" 10 "github.com/cloudfoundry/cli/flags" 11 ) 12 13 type RenameServiceBroker struct { 14 ui terminal.UI 15 config core_config.Reader 16 repo api.ServiceBrokerRepository 17 } 18 19 func init() { 20 command_registry.Register(&RenameServiceBroker{}) 21 } 22 23 func (cmd *RenameServiceBroker) MetaData() command_registry.CommandMetadata { 24 return command_registry.CommandMetadata{ 25 Name: "rename-service-broker", 26 Description: T("Rename a service broker"), 27 Usage: T("CF_NAME rename-service-broker SERVICE_BROKER NEW_SERVICE_BROKER"), 28 } 29 } 30 31 func (cmd *RenameServiceBroker) Requirements(requirementsFactory requirements.Factory, fc flags.FlagContext) (reqs []requirements.Requirement, err error) { 32 if len(fc.Args()) != 2 { 33 cmd.ui.Failed(T("Incorrect Usage. Requires SERVICE_BROKER, NEW_SERVICE_BROKER as arguments\n\n") + command_registry.Commands.CommandUsage("rename-service-broker")) 34 } 35 36 reqs = append(reqs, requirementsFactory.NewLoginRequirement()) 37 return 38 } 39 40 func (cmd *RenameServiceBroker) SetDependency(deps command_registry.Dependency, pluginCall bool) command_registry.Command { 41 cmd.ui = deps.Ui 42 cmd.config = deps.Config 43 cmd.repo = deps.RepoLocator.GetServiceBrokerRepository() 44 return cmd 45 } 46 47 func (cmd *RenameServiceBroker) Execute(c flags.FlagContext) { 48 serviceBroker, apiErr := cmd.repo.FindByName(c.Args()[0]) 49 if apiErr != nil { 50 cmd.ui.Failed(apiErr.Error()) 51 return 52 } 53 54 cmd.ui.Say(T("Renaming service broker {{.OldName}} to {{.NewName}} as {{.Username}}", 55 map[string]interface{}{ 56 "OldName": terminal.EntityNameColor(serviceBroker.Name), 57 "NewName": terminal.EntityNameColor(c.Args()[1]), 58 "Username": terminal.EntityNameColor(cmd.config.Username())})) 59 60 newName := c.Args()[1] 61 62 apiErr = cmd.repo.Rename(serviceBroker.Guid, newName) 63 64 if apiErr != nil { 65 cmd.ui.Failed(apiErr.Error()) 66 return 67 } 68 69 cmd.ui.Ok() 70 }