github.com/arunkumar7540/cli@v6.45.0+incompatible/command/v7/create_shared_domain_command.go (about)

     1  package v7
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/actor/sharedaction"
     5  	"code.cloudfoundry.org/cli/actor/v7action"
     6  	"code.cloudfoundry.org/cli/command"
     7  	"code.cloudfoundry.org/cli/command/flag"
     8  	"code.cloudfoundry.org/cli/command/v7/shared"
     9  )
    10  
    11  //go:generate counterfeiter . CreateSharedDomainActor
    12  
    13  type CreateSharedDomainActor interface {
    14  	CreateSharedDomain(domainName string, internal bool) (v7action.Warnings, error)
    15  }
    16  
    17  type CreateSharedDomainCommand struct {
    18  	RequiredArgs    flag.Domain `positional-args:"yes"`
    19  	Internal        bool        `long:"internal" description:"Applications that use internal routes communicate directly on the container network"`
    20  	usage           interface{} `usage:"CF_NAME create-shared-domain DOMAIN [--internal]"`
    21  	relatedCommands interface{} `related_commands:"create-private-domain, domains"`
    22  
    23  	UI          command.UI
    24  	Config      command.Config
    25  	Actor       CreateSharedDomainActor
    26  	SharedActor command.SharedActor
    27  }
    28  
    29  func (cmd *CreateSharedDomainCommand) Setup(config command.Config, ui command.UI) error {
    30  	cmd.UI = ui
    31  	cmd.Config = config
    32  	sharedActor := sharedaction.NewActor(config)
    33  	cmd.SharedActor = sharedActor
    34  
    35  	ccClient, uaaClient, err := shared.NewClients(config, ui, true, "")
    36  	if err != nil {
    37  		return err
    38  	}
    39  	cmd.Actor = v7action.NewActor(ccClient, config, sharedActor, uaaClient)
    40  	return nil
    41  }
    42  
    43  func (cmd CreateSharedDomainCommand) Execute(args []string) error {
    44  	err := cmd.SharedActor.CheckTarget(false, false)
    45  	if err != nil {
    46  		return err
    47  	}
    48  
    49  	user, err := cmd.Config.CurrentUser()
    50  	if err != nil {
    51  		return err
    52  	}
    53  
    54  	domain := cmd.RequiredArgs.Domain
    55  
    56  	cmd.UI.DisplayTextWithFlavor("Creating shared domain {{.Domain}} as {{.User}}...",
    57  		map[string]interface{}{
    58  			"Domain": domain,
    59  			"User":   user.Name,
    60  		})
    61  
    62  	warnings, err := cmd.Actor.CreateSharedDomain(domain, cmd.Internal)
    63  	cmd.UI.DisplayWarnings(warnings)
    64  	if err != nil {
    65  		return err
    66  	}
    67  
    68  	cmd.UI.DisplayOK()
    69  	cmd.UI.DisplayText("TIP: Domain '{{.Domain}}' is shared with all orgs. Run 'cf domains' to view available domains.",
    70  		map[string]interface{}{
    71  			"Domain": domain,
    72  		})
    73  	return nil
    74  }