github.com/niteshexa/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  }