github.com/loafoe/cli@v7.1.0+incompatible/command/v7/unmap_route_command.go (about) 1 package v7 2 3 import ( 4 "code.cloudfoundry.org/cli/actor/actionerror" 5 "code.cloudfoundry.org/cli/command/flag" 6 ) 7 8 type UnmapRouteCommand struct { 9 BaseCommand 10 11 RequiredArgs flag.AppDomain `positional-args:"yes"` 12 Hostname string `long:"hostname" short:"n" description:"Hostname used to identify the HTTP route"` 13 Path flag.V7RoutePath `long:"path" description:"Path used to identify the HTTP route"` 14 Port int `long:"port" description:"Port used to identify the TCP route"` 15 relatedCommands interface{} `related_commands:"delete-route, map-route, routes"` 16 } 17 18 func (cmd UnmapRouteCommand) Usage() string { 19 return ` 20 Unmap an HTTP route: 21 CF_NAME unmap-route APP_NAME DOMAIN [--hostname HOSTNAME] [--path PATH] 22 23 Unmap a TCP route: 24 CF_NAME unmap-route APP_NAME DOMAIN --port PORT` 25 } 26 27 func (cmd UnmapRouteCommand) Examples() string { 28 return ` 29 CF_NAME unmap-route my-app example.com # example.com 30 CF_NAME unmap-route my-app example.com --hostname myhost # myhost.example.com 31 CF_NAME unmap-route my-app example.com --hostname myhost --path foo # myhost.example.com/foo 32 CF_NAME unmap-route my-app example.com --port 5000 # example.com:5000` 33 } 34 35 func (cmd UnmapRouteCommand) Execute(args []string) error { 36 err := cmd.SharedActor.CheckTarget(true, true) 37 if err != nil { 38 return err 39 } 40 41 user, err := cmd.Config.CurrentUser() 42 if err != nil { 43 return err 44 } 45 46 domain, warnings, err := cmd.Actor.GetDomainByName(cmd.RequiredArgs.Domain) 47 cmd.UI.DisplayWarnings(warnings) 48 if err != nil { 49 return err 50 } 51 52 spaceGUID := cmd.Config.TargetedSpace().GUID 53 app, warnings, err := cmd.Actor.GetApplicationByNameAndSpace(cmd.RequiredArgs.App, spaceGUID) 54 cmd.UI.DisplayWarnings(warnings) 55 if err != nil { 56 return err 57 } 58 59 path := cmd.Path.Path 60 route, warnings, err := cmd.Actor.GetRouteByAttributes(domain, cmd.Hostname, path, cmd.Port) 61 url := desiredURL(domain.Name, cmd.Hostname, path, cmd.Port) 62 cmd.UI.DisplayWarnings(warnings) 63 if err != nil { 64 return err 65 } 66 67 cmd.UI.DisplayTextWithFlavor("Removing route {{.URL}} from app {{.AppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.User}}...", map[string]interface{}{ 68 "URL": url, 69 "AppName": cmd.RequiredArgs.App, 70 "User": user.Name, 71 "SpaceName": cmd.Config.TargetedSpace().Name, 72 "OrgName": cmd.Config.TargetedOrganization().Name, 73 }) 74 75 destination, err := cmd.Actor.GetRouteDestinationByAppGUID(route, app.GUID) 76 if err != nil { 77 if _, ok := err.(actionerror.RouteDestinationNotFoundError); ok { 78 cmd.UI.DisplayText("Route to be unmapped is not currently mapped to the application.") 79 cmd.UI.DisplayOK() 80 return nil 81 } 82 83 return err 84 } 85 86 warnings, err = cmd.Actor.UnmapRoute(route.GUID, destination.GUID) 87 cmd.UI.DisplayWarnings(warnings) 88 if err != nil { 89 return err 90 } 91 92 cmd.UI.DisplayOK() 93 94 return nil 95 }