github.com/wanddynosios/cli/v8@v8.7.9-0.20240221182337-1a92e3a7017f/command/v7/create_private_domain_command.go (about) 1 package v7 2 3 import ( 4 "fmt" 5 6 "code.cloudfoundry.org/cli/api/cloudcontroller/ccerror" 7 "code.cloudfoundry.org/cli/command/flag" 8 ) 9 10 type CreatePrivateDomainCommand struct { 11 BaseCommand 12 13 RequiredArgs flag.OrgDomain `positional-args:"yes"` 14 usage interface{} `usage:"CF_NAME create-private-domain ORG DOMAIN"` 15 relatedCommands interface{} `related_commands:"create-shared-domain, domains, share-private-domain"` 16 } 17 18 func (cmd CreatePrivateDomainCommand) Execute(args []string) error { 19 err := cmd.SharedActor.CheckTarget(false, false) 20 if err != nil { 21 return err 22 } 23 24 user, err := cmd.Actor.GetCurrentUser() 25 if err != nil { 26 return err 27 } 28 29 domain := cmd.RequiredArgs.Domain 30 orgName := cmd.RequiredArgs.Organization 31 32 cmd.UI.DisplayTextWithFlavor("Creating private domain {{.Domain}} for org {{.Organization}} as {{.User}}...", 33 map[string]interface{}{ 34 "Domain": domain, 35 "User": user.Name, 36 "Organization": orgName, 37 }) 38 39 warnings, err := cmd.Actor.CreatePrivateDomain(domain, orgName) 40 41 cmd.UI.DisplayWarnings(warnings) 42 if err != nil { 43 if e, ok := err.(ccerror.UnprocessableEntityError); ok { 44 inUse := fmt.Sprintf("The domain name \"%s\" is already in use", domain) 45 if e.Message == inUse { 46 cmd.UI.DisplayWarning(err.Error()) 47 cmd.UI.DisplayOK() 48 return nil 49 } 50 } 51 return err 52 } 53 54 cmd.UI.DisplayOK() 55 56 cmd.UI.DisplayText("TIP: Domain '{{.Domain}}' is a private domain. Run 'cf share-private-domain' to share this domain with a different org.", 57 map[string]interface{}{ 58 "Domain": domain, 59 }) 60 return nil 61 }