github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/command/v7/delete_service_broker_command.go (about) 1 package v7 2 3 import ( 4 "code.cloudfoundry.org/cli/actor/actionerror" 5 "code.cloudfoundry.org/cli/actor/sharedaction" 6 "code.cloudfoundry.org/cli/actor/v7action" 7 "code.cloudfoundry.org/cli/command" 8 "code.cloudfoundry.org/cli/command/flag" 9 "code.cloudfoundry.org/cli/command/v7/shared" 10 "code.cloudfoundry.org/clock" 11 ) 12 13 //go:generate counterfeiter . UpdateServiceBrokerActor 14 15 type DeleteServiceBrokerActor interface { 16 GetServiceBrokerByName(serviceBrokerName string) (v7action.ServiceBroker, v7action.Warnings, error) 17 DeleteServiceBroker(serviceBrokerGUID string) (v7action.Warnings, error) 18 } 19 20 type DeleteServiceBrokerCommand struct { 21 RequiredArgs flag.ServiceBroker `positional-args:"yes"` 22 usage interface{} `usage:"CF_NAME delete-service-broker SERVICE_BROKER [-f]\n\n"` 23 Force bool `short:"f" description:"Force deletion without confirmation"` 24 relatedCommands interface{} `related_commands:"delete-service, purge-service-offering, service-brokers"` 25 26 UI command.UI 27 Config command.Config 28 Actor DeleteServiceBrokerActor 29 SharedActor command.SharedActor 30 } 31 32 func (cmd *DeleteServiceBrokerCommand) Setup(config command.Config, ui command.UI) error { 33 cmd.UI = ui 34 cmd.Config = config 35 sharedActor := sharedaction.NewActor(config) 36 cmd.SharedActor = sharedActor 37 38 ccClient, uaaClient, err := shared.GetNewClientsAndConnectToCF(config, ui, "") 39 if err != nil { 40 return err 41 } 42 cmd.Actor = v7action.NewActor(ccClient, config, sharedActor, uaaClient, clock.NewClock()) 43 return nil 44 } 45 46 func (cmd DeleteServiceBrokerCommand) Execute(args []string) error { 47 err := cmd.SharedActor.CheckTarget(false, false) 48 if err != nil { 49 return err 50 } 51 52 serviceBrokerName := cmd.RequiredArgs.ServiceBroker 53 if !cmd.Force { 54 confirmed, promptErr := cmd.UI.DisplayBoolPrompt(false, "Really delete the service broker {{.ServiceBroker}}?", map[string]interface{}{ 55 "ServiceBroker": serviceBrokerName, 56 }) 57 58 if promptErr != nil { 59 return promptErr 60 } 61 62 if !confirmed { 63 cmd.UI.DisplayText("'{{.ServiceBroker}}' has not been deleted.", map[string]interface{}{ 64 "ServiceBroker": serviceBrokerName, 65 }) 66 return nil 67 } 68 } 69 70 cmd.UI.DisplayTextWithFlavor("Deleting service broker {{.ServiceBroker}}...", 71 map[string]interface{}{ 72 "ServiceBroker": serviceBrokerName, 73 }) 74 75 serviceBroker, warnings, err := cmd.Actor.GetServiceBrokerByName(serviceBrokerName) 76 77 cmd.UI.DisplayWarnings(warnings) 78 if err != nil { 79 if _, ok := err.(actionerror.ServiceBrokerNotFoundError); ok { 80 cmd.UI.DisplayText("Service broker '{{.ServiceBroker}}' does not exist.", map[string]interface{}{ 81 "ServiceBroker": serviceBrokerName, 82 }) 83 cmd.UI.DisplayOK() 84 return nil 85 } 86 return err 87 } 88 89 warnings, err = cmd.Actor.DeleteServiceBroker(serviceBroker.GUID) 90 91 cmd.UI.DisplayWarnings(warnings) 92 if err != nil { 93 return err 94 } 95 96 cmd.UI.DisplayOK() 97 98 return nil 99 }