github.com/arunkumar7540/cli@v6.45.0+incompatible/command/v7/delete_route_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 ) 11 12 //go:generate counterfeiter . DeleteRouteActor 13 14 type DeleteRouteActor interface { 15 DeleteRoute(domainName, hostname, path string) (v7action.Warnings, error) 16 } 17 18 type DeleteRouteCommand struct { 19 RequiredArgs flag.Domain `positional-args:"yes"` 20 usage interface{} `usage:"Delete an HTTP route:\n CF_NAME delete-route DOMAIN [--hostname HOSTNAME] [--path PATH] [-f]\n\n Delete a TCP route:\n CF_NAME delete-route DOMAIN [-f]\n\nEXAMPLES:\n CF_NAME delete-route example.com # example.com\n CF_NAME delete-route example.com --hostname myhost # myhost.example.com\n CF_NAME delete-route example.com --hostname myhost --path foo # myhost.example.com/foo"` 21 Force bool `short:"f" description:"Force deletion without confirmation"` 22 Hostname string `long:"hostname" short:"n" description:"Hostname used to identify the HTTP route (required for shared domains)"` 23 Path string `long:"path" description:"Path used to identify the HTTP route"` 24 relatedCommands interface{} `related_commands:"delete-orphaned-routes, routes, unmap-route"` 25 26 UI command.UI 27 Config command.Config 28 Actor DeleteRouteActor 29 SharedActor command.SharedActor 30 } 31 32 func (cmd *DeleteRouteCommand) 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.NewClients(config, ui, true, "") 39 if err != nil { 40 return err 41 } 42 cmd.Actor = v7action.NewActor(ccClient, config, sharedActor, uaaClient) 43 return nil 44 } 45 46 func (cmd DeleteRouteCommand) Execute(args []string) error { 47 err := cmd.SharedActor.CheckTarget(true, false) 48 if err != nil { 49 return err 50 } 51 52 _, err = cmd.Config.CurrentUser() 53 if err != nil { 54 return err 55 } 56 57 domain := cmd.RequiredArgs.Domain 58 hostname := cmd.Hostname 59 pathName := cmd.Path 60 fqdn := desiredFQDN(domain, hostname, pathName) 61 62 cmd.UI.DisplayTextWithFlavor("Deleting route {{.FQDN}}...", 63 map[string]interface{}{ 64 "FQDN": fqdn, 65 }) 66 67 if !cmd.Force { 68 response, promptErr := cmd.UI.DisplayBoolPrompt(false, "Really delete the route {{.FQDN}}?", map[string]interface{}{ 69 "FQDN": fqdn, 70 }) 71 72 if promptErr != nil { 73 return promptErr 74 } 75 76 if !response { 77 cmd.UI.DisplayText("'{{.FQDN}}' has not been deleted.", map[string]interface{}{ 78 "FQDN": fqdn, 79 }) 80 return nil 81 } 82 } 83 84 warnings, err := cmd.Actor.DeleteRoute(domain, hostname, pathName) 85 86 cmd.UI.DisplayWarnings(warnings) 87 if err != nil { 88 if _, ok := err.(actionerror.RouteNotFoundError); ok { 89 cmd.UI.DisplayText(`Unable to delete. ` + err.Error()) 90 cmd.UI.DisplayOK() 91 return nil 92 } 93 return err 94 } 95 96 cmd.UI.DisplayOK() 97 return nil 98 }