github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/command/v7/create_private_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 "code.cloudfoundry.org/clock" 10 ) 11 12 //go:generate counterfeiter . CreatePrivateDomainActor 13 14 type CreatePrivateDomainActor interface { 15 CreatePrivateDomain(domainName string, orgName string) (v7action.Warnings, error) 16 } 17 18 type CreatePrivateDomainCommand struct { 19 RequiredArgs flag.OrgDomain `positional-args:"yes"` 20 usage interface{} `usage:"CF_NAME create-private-domain ORG DOMAIN"` 21 relatedCommands interface{} `related_commands:"create-shared-domain, domains, share-private-domain"` 22 23 UI command.UI 24 Config command.Config 25 Actor CreatePrivateDomainActor 26 SharedActor command.SharedActor 27 } 28 29 func (cmd *CreatePrivateDomainCommand) 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.GetNewClientsAndConnectToCF(config, ui, "") 36 if err != nil { 37 return err 38 } 39 cmd.Actor = v7action.NewActor(ccClient, config, sharedActor, uaaClient, clock.NewClock()) 40 return nil 41 } 42 43 func (cmd CreatePrivateDomainCommand) 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 orgName := cmd.RequiredArgs.Organization 56 57 cmd.UI.DisplayTextWithFlavor("Creating private domain {{.Domain}} for org {{.Organization}} as {{.User}}...", 58 map[string]interface{}{ 59 "Domain": domain, 60 "User": user.Name, 61 "Organization": orgName, 62 }) 63 64 warnings, err := cmd.Actor.CreatePrivateDomain(domain, orgName) 65 cmd.UI.DisplayWarnings(warnings) 66 if err != nil { 67 return err 68 } 69 70 cmd.UI.DisplayOK() 71 72 cmd.UI.DisplayText("TIP: Domain '{{.Domain}}' is a private domain. Run 'cf share-private-domain' to share this domain with a different org.", 73 map[string]interface{}{ 74 "Domain": domain, 75 }) 76 return nil 77 }