github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/command/v6/v3_apps_command.go (about) 1 package v6 2 3 import ( 4 "strings" 5 6 "code.cloudfoundry.org/cli/actor/sharedaction" 7 "code.cloudfoundry.org/cli/actor/v2action" 8 "code.cloudfoundry.org/cli/actor/v3action" 9 "code.cloudfoundry.org/cli/command" 10 "code.cloudfoundry.org/cli/command/v6/shared" 11 "code.cloudfoundry.org/cli/util/ui" 12 ) 13 14 //go:generate counterfeiter . V3AppsActor 15 16 type V3AppsActor interface { 17 GetApplicationsWithProcessesBySpace(spaceGUID string) ([]v3action.ApplicationWithProcessSummary, v3action.Warnings, error) 18 } 19 20 type V3AppsCommand struct { 21 usage interface{} `usage:"CF_NAME v3-apps"` 22 23 UI command.UI 24 Config command.Config 25 Actor V3AppsActor 26 V2AppActor shared.V2AppActor 27 SharedActor command.SharedActor 28 } 29 30 func (cmd *V3AppsCommand) Setup(config command.Config, ui command.UI) error { 31 cmd.UI = ui 32 cmd.Config = config 33 cmd.SharedActor = sharedaction.NewActor(config) 34 35 ccClient, _, err := shared.NewV3BasedClients(config, ui, true) 36 if err != nil { 37 return err 38 } 39 cmd.Actor = v3action.NewActor(ccClient, config, nil, nil) 40 41 ccClientV2, uaaClientV2, err := shared.GetNewClientsAndConnectToCF(config, ui) 42 if err != nil { 43 return err 44 } 45 46 cmd.V2AppActor = v2action.NewActor(ccClientV2, uaaClientV2, config) 47 48 return nil 49 } 50 51 func (cmd V3AppsCommand) Execute(args []string) error { 52 cmd.UI.DisplayWarning(command.ExperimentalWarning) 53 54 err := cmd.SharedActor.CheckTarget(true, true) 55 if err != nil { 56 return err 57 } 58 59 user, err := cmd.Config.CurrentUser() 60 if err != nil { 61 return err 62 } 63 64 cmd.UI.DisplayTextWithFlavor("Getting apps in org {{.OrgName}} / space {{.SpaceName}} as {{.Username}}...", map[string]interface{}{ 65 "OrgName": cmd.Config.TargetedOrganization().Name, 66 "SpaceName": cmd.Config.TargetedSpace().Name, 67 "Username": user.Name, 68 }) 69 cmd.UI.DisplayNewline() 70 71 summaries, warnings, err := cmd.Actor.GetApplicationsWithProcessesBySpace(cmd.Config.TargetedSpace().GUID) 72 cmd.UI.DisplayWarnings(warnings) 73 if err != nil { 74 return err 75 } 76 77 if len(summaries) == 0 { 78 cmd.UI.DisplayText("No apps found") 79 return nil 80 } 81 82 table := [][]string{ 83 { 84 cmd.UI.TranslateText("name"), 85 cmd.UI.TranslateText("requested state"), 86 cmd.UI.TranslateText("processes"), 87 cmd.UI.TranslateText("routes"), 88 }, 89 } 90 91 for _, summary := range summaries { 92 var routesList string 93 if len(summary.ProcessSummaries) > 0 { 94 routes, warnings, err := cmd.V2AppActor.GetApplicationRoutes(summary.GUID) 95 cmd.UI.DisplayWarnings(warnings) 96 if err != nil { 97 return err 98 } 99 routesList = routes.Summary() 100 } 101 102 table = append(table, []string{ 103 summary.Name, 104 cmd.UI.TranslateText(strings.ToLower(string(summary.State))), 105 summary.ProcessSummaries.String(), 106 routesList, 107 }) 108 } 109 110 cmd.UI.DisplayTableWithHeader("", table, ui.DefaultTableSpacePadding) 111 112 return nil 113 }