github.com/mook-as/cf-cli@v7.0.0-beta.28.0.20200120190804-b91c115fae48+incompatible/command/v7/check_route_command.go (about) 1 package v7 2 3 import ( 4 "code.cloudfoundry.org/cli/actor/sharedaction" 5 "code.cloudfoundry.org/cli/actor/v7action" 6 "code.cloudfoundry.org/cli/command" 7 "code.cloudfoundry.org/cli/command/flag" 8 "code.cloudfoundry.org/cli/command/v7/shared" 9 "code.cloudfoundry.org/clock" 10 ) 11 12 //go:generate counterfeiter . CheckRouteActor 13 14 type CheckRouteActor interface { 15 CheckRoute(domainName string, hostname string, path string) (bool, v7action.Warnings, error) 16 } 17 18 type CheckRouteCommand struct { 19 RequiredArgs flag.Domain `positional-args:"yes"` 20 Hostname string `long:"hostname" short:"n" description:"Hostname used to identify the HTTP route"` 21 Path flag.V7RoutePath `long:"path" description:"Path for the route"` 22 usage interface{} `usage:"CF_NAME check-route DOMAIN [--hostname HOSTNAME] [--path PATH]\n\nEXAMPLES:\n CF_NAME check-route example.com # example.com\n CF_NAME check-route example.com -n myhost --path foo # myhost.example.com/foo\n CF_NAME check-route example.com --path foo # example.com/foo"` 23 relatedCommands interface{} `related_commands:"create-route, delete-route, routes"` 24 25 UI command.UI 26 Config command.Config 27 SharedActor command.SharedActor 28 Actor CheckRouteActor 29 } 30 31 func (cmd *CheckRouteCommand) Setup(config command.Config, ui command.UI) error { 32 cmd.UI = ui 33 cmd.Config = config 34 sharedActor := sharedaction.NewActor(config) 35 cmd.SharedActor = sharedActor 36 37 ccClient, uaaClient, err := shared.GetNewClientsAndConnectToCF(config, ui, "") 38 if err != nil { 39 return err 40 } 41 cmd.Actor = v7action.NewActor(ccClient, config, sharedActor, uaaClient, clock.NewClock()) 42 return nil 43 } 44 45 func (cmd CheckRouteCommand) Execute(args []string) error { 46 err := cmd.SharedActor.CheckTarget(true, false) 47 if err != nil { 48 return err 49 } 50 51 _, err = cmd.Config.CurrentUser() 52 if err != nil { 53 return err 54 } 55 56 cmd.UI.DisplayText("Checking for route...") 57 58 path := cmd.Path.Path 59 matches, warnings, err := cmd.Actor.CheckRoute(cmd.RequiredArgs.Domain, cmd.Hostname, path) 60 cmd.UI.DisplayWarnings(warnings) 61 62 if err != nil { 63 return err 64 } 65 66 formatParams := map[string]interface{}{ 67 "FQDN": desiredFQDN(cmd.RequiredArgs.Domain, cmd.Hostname, path), 68 } 69 70 if matches { 71 cmd.UI.DisplayText("Route '{{.FQDN}}' does exist.", formatParams) 72 } else { 73 cmd.UI.DisplayText("Route '{{.FQDN}}' does not exist.", formatParams) 74 } 75 76 cmd.UI.DisplayOK() 77 78 return nil 79 }