github.com/DaAlbrecht/cf-cli@v0.0.0-20231128151943-1fe19bb400b9/command/v7/create_shared_domain_command.go (about)

     1  package v7
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/command/flag"
     5  )
     6  
     7  type CreateSharedDomainCommand struct {
     8  	BaseCommand
     9  
    10  	RequiredArgs    flag.Domain `positional-args:"yes"`
    11  	RouterGroup     string      `long:"router-group" description:"Routes for this domain will use routers in the specified router group"`
    12  	Internal        bool        `long:"internal" description:"Applications that use internal routes communicate directly on the container network"`
    13  	usage           interface{} `usage:"CF_NAME create-shared-domain DOMAIN [--router-group ROUTER_GROUP_NAME | --internal]"`
    14  	relatedCommands interface{} `related_commands:"create-private-domain, domains"`
    15  }
    16  
    17  func (cmd CreateSharedDomainCommand) Execute(args []string) error {
    18  	err := cmd.SharedActor.CheckTarget(false, false)
    19  	if err != nil {
    20  		return err
    21  	}
    22  
    23  	user, err := cmd.Actor.GetCurrentUser()
    24  	if err != nil {
    25  		return err
    26  	}
    27  
    28  	domain := cmd.RequiredArgs.Domain
    29  
    30  	cmd.UI.DisplayTextWithFlavor("Creating shared domain {{.Domain}} as {{.User}}...",
    31  		map[string]interface{}{
    32  			"Domain": domain,
    33  			"User":   user.Name,
    34  		})
    35  
    36  	warnings, err := cmd.Actor.CreateSharedDomain(domain, cmd.Internal, cmd.RouterGroup)
    37  	cmd.UI.DisplayWarnings(warnings)
    38  	if err != nil {
    39  		return err
    40  	}
    41  
    42  	cmd.UI.DisplayOK()
    43  	cmd.UI.DisplayText("TIP: Domain '{{.Domain}}' is shared with all orgs. Run 'cf domains' to view available domains.",
    44  		map[string]interface{}{
    45  			"Domain": domain,
    46  		})
    47  	return nil
    48  }