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