github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/cf/commands/servicebroker/delete_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/errors" 8 . "github.com/cloudfoundry/cli/cf/i18n" 9 "github.com/cloudfoundry/cli/cf/requirements" 10 "github.com/cloudfoundry/cli/cf/terminal" 11 "github.com/cloudfoundry/cli/flags" 12 "github.com/cloudfoundry/cli/flags/flag" 13 ) 14 15 type DeleteServiceBroker struct { 16 ui terminal.UI 17 config core_config.Reader 18 repo api.ServiceBrokerRepository 19 } 20 21 func init() { 22 command_registry.Register(&DeleteServiceBroker{}) 23 } 24 25 func (cmd *DeleteServiceBroker) MetaData() command_registry.CommandMetadata { 26 fs := make(map[string]flags.FlagSet) 27 fs["f"] = &cliFlags.BoolFlag{Name: "f", Usage: T("Force deletion without confirmation")} 28 29 return command_registry.CommandMetadata{ 30 Name: "delete-service-broker", 31 Description: T("Delete a service broker"), 32 Usage: T("CF_NAME delete-service-broker SERVICE_BROKER [-f]"), 33 Flags: fs, 34 } 35 } 36 37 func (cmd *DeleteServiceBroker) Requirements(requirementsFactory requirements.Factory, fc flags.FlagContext) (reqs []requirements.Requirement, err error) { 38 if len(fc.Args()) != 1 { 39 cmd.ui.Failed(T("Incorrect Usage. Requires an argument\n\n") + command_registry.Commands.CommandUsage("delete-service-broker")) 40 } 41 42 reqs = append(reqs, requirementsFactory.NewLoginRequirement()) 43 return 44 } 45 46 func (cmd *DeleteServiceBroker) SetDependency(deps command_registry.Dependency, pluginCall bool) command_registry.Command { 47 cmd.ui = deps.Ui 48 cmd.config = deps.Config 49 cmd.repo = deps.RepoLocator.GetServiceBrokerRepository() 50 return cmd 51 } 52 53 func (cmd *DeleteServiceBroker) Execute(c flags.FlagContext) { 54 brokerName := c.Args()[0] 55 if !c.Bool("f") && !cmd.ui.ConfirmDelete(T("service-broker"), brokerName) { 56 return 57 } 58 59 cmd.ui.Say(T("Deleting service broker {{.Name}} as {{.Username}}...", 60 map[string]interface{}{ 61 "Name": terminal.EntityNameColor(brokerName), 62 "Username": terminal.EntityNameColor(cmd.config.Username()), 63 })) 64 65 broker, apiErr := cmd.repo.FindByName(brokerName) 66 67 switch apiErr.(type) { 68 case nil: 69 case *errors.ModelNotFoundError: 70 cmd.ui.Ok() 71 cmd.ui.Warn(T("Service Broker {{.Name}} does not exist.", map[string]interface{}{"Name": brokerName})) 72 return 73 default: 74 cmd.ui.Failed(apiErr.Error()) 75 return 76 } 77 78 apiErr = cmd.repo.Delete(broker.Guid) 79 if apiErr != nil { 80 cmd.ui.Failed(apiErr.Error()) 81 return 82 } 83 84 cmd.ui.Ok() 85 return 86 }