github.com/orange-cloudfoundry/cli@v7.1.0+incompatible/command/v7/security_groups_command.go (about) 1 package v7 2 3 import ( 4 "code.cloudfoundry.org/cli/util/ui" 5 ) 6 7 type SecurityGroupsCommand struct { 8 BaseCommand 9 10 usage interface{} `usage:"CF_NAME security-groups"` 11 relatedCommands interface{} `related_commands:"bind-running-security-group, bind-security-group, bind-staging-security-group, security-group"` 12 } 13 14 func (cmd SecurityGroupsCommand) Execute(args []string) error { 15 err := cmd.SharedActor.CheckTarget(false, false) 16 if err != nil { 17 return err 18 } 19 20 user, err := cmd.Config.CurrentUser() 21 if err != nil { 22 return err 23 } 24 25 cmd.UI.DisplayTextWithFlavor("Getting security groups as {{.Username}}...", map[string]interface{}{ 26 "Username": user.Name, 27 }) 28 cmd.UI.DisplayNewline() 29 30 securityGroupSummaries, warnings, err := cmd.Actor.GetSecurityGroups() 31 cmd.UI.DisplayWarnings(warnings) 32 if err != nil { 33 return err 34 } 35 36 if len(securityGroupSummaries) == 0 { 37 cmd.UI.DisplayText("No security groups found.") 38 return nil 39 } 40 41 table := [][]string{{ 42 cmd.UI.TranslateText("name"), 43 cmd.UI.TranslateText("organization"), 44 cmd.UI.TranslateText("space"), 45 cmd.UI.TranslateText("lifecycle"), 46 }} 47 for _, securityGroupSummary := range securityGroupSummaries { 48 if len(securityGroupSummary.SecurityGroupSpaces) == 0 { 49 table = append(table, []string{ 50 cmd.UI.TranslateText(securityGroupSummary.Name), 51 cmd.UI.TranslateText(""), 52 cmd.UI.TranslateText(""), 53 cmd.UI.TranslateText(""), 54 }) 55 } 56 57 for _, securityGroupSpace := range securityGroupSummary.SecurityGroupSpaces { 58 table = append(table, []string{ 59 cmd.UI.TranslateText(securityGroupSummary.Name), 60 cmd.UI.TranslateText(securityGroupSpace.OrgName), 61 cmd.UI.TranslateText(securityGroupSpace.SpaceName), 62 cmd.UI.TranslateText(securityGroupSpace.Lifecycle), 63 }) 64 } 65 } 66 cmd.UI.DisplayTableWithHeader("", table, ui.DefaultTableSpacePadding) 67 68 return nil 69 }