github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/command/v6/orgs_command.go (about) 1 package v6 2 3 import ( 4 "code.cloudfoundry.org/cli/actor/sharedaction" 5 "code.cloudfoundry.org/cli/actor/v2action" 6 "code.cloudfoundry.org/cli/command" 7 "code.cloudfoundry.org/cli/command/v6/shared" 8 "code.cloudfoundry.org/cli/util/ui" 9 ) 10 11 //go:generate counterfeiter . OrgsActor 12 13 type OrgsActor interface { 14 GetOrganizations() ([]v2action.Organization, v2action.Warnings, error) 15 } 16 17 type OrgsCommand struct { 18 usage interface{} `usage:"CF_NAME orgs"` 19 20 UI command.UI 21 Config command.Config 22 SharedActor command.SharedActor 23 Actor OrgsActor 24 } 25 26 func (cmd *OrgsCommand) Setup(config command.Config, ui command.UI) error { 27 cmd.Config = config 28 cmd.UI = ui 29 cmd.SharedActor = sharedaction.NewActor(config) 30 31 ccClient, _, err := shared.GetNewClientsAndConnectToCF(config, ui) 32 if err != nil { 33 return err 34 } 35 cmd.Actor = v2action.NewActor(ccClient, nil, config) 36 37 return nil 38 } 39 40 func (cmd OrgsCommand) Execute(args []string) error { 41 err := cmd.SharedActor.CheckTarget(false, false) 42 if err != nil { 43 return err 44 } 45 46 user, err := cmd.Config.CurrentUser() 47 if err != nil { 48 return err 49 } 50 51 cmd.UI.DisplayTextWithFlavor("Getting orgs as {{.CurrentUser}}...", map[string]interface{}{ 52 "CurrentUser": user.Name, 53 }) 54 cmd.UI.DisplayNewline() 55 56 orgs, warnings, err := cmd.Actor.GetOrganizations() 57 cmd.UI.DisplayWarnings(warnings) 58 if err != nil { 59 return err 60 } 61 62 if len(orgs) == 0 { 63 cmd.UI.DisplayText("No orgs found.") 64 } else { 65 cmd.displayOrgs(orgs) 66 } 67 68 return nil 69 } 70 71 func (cmd OrgsCommand) displayOrgs(orgs []v2action.Organization) { 72 table := [][]string{{cmd.UI.TranslateText("name")}} 73 for _, org := range orgs { 74 table = append(table, []string{org.Name}) 75 } 76 cmd.UI.DisplayTableWithHeader("", table, ui.DefaultTableSpacePadding) 77 }