github.com/loafoe/cli@v7.1.0+incompatible/command/v7/org_command.go (about) 1 package v7 2 3 import ( 4 "fmt" 5 "sort" 6 "strings" 7 8 "code.cloudfoundry.org/cli/command/flag" 9 ) 10 11 type OrgCommand struct { 12 BaseCommand 13 14 RequiredArgs flag.Organization `positional-args:"yes"` 15 GUID bool `long:"guid" description:"Retrieve and display the given org's guid. All other output for the org is suppressed."` 16 usage interface{} `usage:"CF_NAME org ORG [--guid]"` 17 relatedCommands interface{} `related_commands:"org-users, orgs"` 18 } 19 20 func (cmd OrgCommand) Execute(args []string) error { 21 err := cmd.SharedActor.CheckTarget(false, false) 22 if err != nil { 23 return err 24 } 25 26 if cmd.GUID { 27 return cmd.displayOrgGUID() 28 } 29 30 return cmd.displayOrgSummary() 31 } 32 33 func (cmd OrgCommand) displayOrgGUID() error { 34 org, warnings, err := cmd.Actor.GetOrganizationByName(cmd.RequiredArgs.Organization) 35 cmd.UI.DisplayWarnings(warnings) 36 if err != nil { 37 return err 38 } 39 40 cmd.UI.DisplayText(org.GUID) 41 42 return nil 43 } 44 45 func (cmd OrgCommand) displayOrgSummary() error { 46 user, err := cmd.Config.CurrentUser() 47 if err != nil { 48 return err 49 } 50 51 cmd.UI.DisplayTextWithFlavor( 52 "Getting info for org {{.OrgName}} as {{.Username}}...", 53 map[string]interface{}{ 54 "OrgName": cmd.RequiredArgs.Organization, 55 "Username": user.Name, 56 }) 57 cmd.UI.DisplayNewline() 58 59 orgSummary, warnings, err := cmd.Actor.GetOrganizationSummaryByName(cmd.RequiredArgs.Organization) 60 cmd.UI.DisplayWarnings(warnings) 61 if err != nil { 62 return err 63 } 64 65 table := [][]string{ 66 {cmd.UI.TranslateText("name:"), orgSummary.Name}, 67 {cmd.UI.TranslateText("domains:"), strings.Join(orgSummary.DomainNames, ", ")}, 68 {cmd.UI.TranslateText("quota:"), orgSummary.QuotaName}, 69 {cmd.UI.TranslateText("spaces:"), strings.Join(orgSummary.SpaceNames, ", ")}, 70 } 71 72 isolationSegments, v7Warnings, err := cmd.Actor.GetIsolationSegmentsByOrganization(orgSummary.GUID) 73 cmd.UI.DisplayWarnings(v7Warnings) 74 if err != nil { 75 return err 76 } 77 78 isolationSegmentNames := []string{} 79 for _, iso := range isolationSegments { 80 if iso.GUID == orgSummary.DefaultIsolationSegmentGUID { 81 isolationSegmentNames = append(isolationSegmentNames, fmt.Sprintf("%s (%s)", iso.Name, cmd.UI.TranslateText("default"))) 82 } else { 83 isolationSegmentNames = append(isolationSegmentNames, iso.Name) 84 } 85 } 86 87 sort.Strings(isolationSegmentNames) 88 table = append(table, []string{cmd.UI.TranslateText("isolation segments:"), strings.Join(isolationSegmentNames, ", ")}) 89 90 cmd.UI.DisplayKeyValueTable("", table, 3) 91 92 return nil 93 }