github.com/niteshexa/cloudfoundry_cli@v7.1.0+incompatible/command/v7/isolation_segments_command.go (about)

     1  package v7
     2  
     3  import (
     4  	"strings"
     5  
     6  	"code.cloudfoundry.org/cli/util/ui"
     7  )
     8  
     9  type IsolationSegmentsCommand struct {
    10  	BaseCommand
    11  	usage           interface{} `usage:"CF_NAME isolation-segments"`
    12  	relatedCommands interface{} `related_commands:"enable-org-isolation, create-isolation-segment"`
    13  }
    14  
    15  func (cmd IsolationSegmentsCommand) Execute(args []string) error {
    16  	err := cmd.SharedActor.CheckTarget(false, false)
    17  	if err != nil {
    18  		return err
    19  	}
    20  
    21  	user, err := cmd.Config.CurrentUser()
    22  	if err != nil {
    23  		return err
    24  	}
    25  
    26  	cmd.UI.DisplayTextWithFlavor("Getting isolation segments as {{.CurrentUser}}...", map[string]interface{}{
    27  		"CurrentUser": user.Name,
    28  	})
    29  
    30  	cmd.UI.DisplayNewline()
    31  
    32  	summaries, warnings, err := cmd.Actor.GetIsolationSegmentSummaries()
    33  	cmd.UI.DisplayWarnings(warnings)
    34  	if err != nil {
    35  		return err
    36  	}
    37  
    38  	table := [][]string{
    39  		{
    40  			cmd.UI.TranslateText("name"),
    41  			cmd.UI.TranslateText("orgs"),
    42  		},
    43  	}
    44  
    45  	for _, summary := range summaries {
    46  		table = append(
    47  			table,
    48  			[]string{
    49  				summary.Name,
    50  				strings.Join(summary.EntitledOrgs, ", "),
    51  			},
    52  		)
    53  	}
    54  
    55  	cmd.UI.DisplayTableWithHeader("", table, ui.DefaultTableSpacePadding)
    56  	return nil
    57  }