github.com/arunkumar7540/cli@v6.45.0+incompatible/command/v7/app_command.go (about) 1 package v7 2 3 import ( 4 "code.cloudfoundry.org/cli/actor/sharedaction" 5 "code.cloudfoundry.org/cli/actor/v2action" 6 "code.cloudfoundry.org/cli/actor/v7action" 7 "code.cloudfoundry.org/cli/command" 8 "code.cloudfoundry.org/cli/command/flag" 9 sharedV2 "code.cloudfoundry.org/cli/command/v6/shared" 10 "code.cloudfoundry.org/cli/command/v7/shared" 11 ) 12 13 //go:generate counterfeiter . AppActor 14 15 type AppActor interface { 16 GetApplicationByNameAndSpace(name string, spaceGUID string) (v7action.Application, v7action.Warnings, error) 17 GetApplicationSummaryByNameAndSpace(appName string, spaceGUID string, withObfuscatedValues bool, routeActor v7action.RouteActor) (v7action.ApplicationSummary, v7action.Warnings, error) 18 } 19 20 type AppCommand struct { 21 RequiredArgs flag.AppName `positional-args:"yes"` 22 GUID bool `long:"guid" description:"Retrieve and display the given app's guid. All other health and status output for the app is suppressed."` 23 usage interface{} `usage:"CF_NAME app APP_NAME [--guid]"` 24 relatedCommands interface{} `related_commands:"apps, events, logs, map-route, unmap-route, push"` 25 26 UI command.UI 27 Config command.Config 28 SharedActor command.SharedActor 29 RouteActor v7action.RouteActor 30 Actor AppActor 31 } 32 33 func (cmd *AppCommand) Setup(config command.Config, ui command.UI) error { 34 cmd.UI = ui 35 cmd.Config = config 36 sharedActor := sharedaction.NewActor(config) 37 cmd.SharedActor = sharedActor 38 39 ccClient, _, err := shared.NewClients(config, ui, true, "") 40 if err != nil { 41 return err 42 } 43 44 ccClientV2, uaaClientV2, err := sharedV2.NewClients(config, ui, true) 45 if err != nil { 46 return err 47 } 48 49 cmd.RouteActor = v2action.NewActor(ccClientV2, uaaClientV2, config) 50 cmd.Actor = v7action.NewActor(ccClient, config, sharedActor, uaaClientV2) 51 52 return nil 53 } 54 55 func (cmd AppCommand) Execute(args []string) error { 56 err := cmd.SharedActor.CheckTarget(true, true) 57 if err != nil { 58 return err 59 } 60 61 if cmd.GUID { 62 return cmd.displayAppGUID() 63 } 64 65 user, err := cmd.Config.CurrentUser() 66 if err != nil { 67 return err 68 } 69 70 cmd.UI.DisplayTextWithFlavor("Showing health and status for app {{.AppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.Username}}...", map[string]interface{}{ 71 "AppName": cmd.RequiredArgs.AppName, 72 "OrgName": cmd.Config.TargetedOrganization().Name, 73 "SpaceName": cmd.Config.TargetedSpace().Name, 74 "Username": user.Name, 75 }) 76 cmd.UI.DisplayNewline() 77 78 appSummaryDisplayer := shared.NewAppSummaryDisplayer(cmd.UI) 79 summary, warnings, err := cmd.Actor.GetApplicationSummaryByNameAndSpace(cmd.RequiredArgs.AppName, cmd.Config.TargetedSpace().GUID, false, cmd.RouteActor) 80 cmd.UI.DisplayWarnings(warnings) 81 if err != nil { 82 return err 83 } 84 85 appSummaryDisplayer.AppDisplay(summary, false) 86 return nil 87 } 88 89 func (cmd AppCommand) displayAppGUID() error { 90 app, warnings, err := cmd.Actor.GetApplicationByNameAndSpace(cmd.RequiredArgs.AppName, cmd.Config.TargetedSpace().GUID) 91 cmd.UI.DisplayWarnings(warnings) 92 if err != nil { 93 return err 94 } 95 96 cmd.UI.DisplayText(app.GUID) 97 return nil 98 }