github.com/LukasHeimann/cloudfoundrycli/v8@v8.4.4/command/v7/security_group_command.go (about)

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