github.com/asifdxtreme/cli@v6.1.3-0.20150123051144-9ead8700b4ae+incompatible/cf/commands/domain/create_domain.go (about) 1 package domain 2 3 import ( 4 "github.com/cloudfoundry/cli/cf/api" 5 "github.com/cloudfoundry/cli/cf/command_metadata" 6 "github.com/cloudfoundry/cli/cf/configuration/core_config" 7 . "github.com/cloudfoundry/cli/cf/i18n" 8 "github.com/cloudfoundry/cli/cf/requirements" 9 "github.com/cloudfoundry/cli/cf/terminal" 10 "github.com/codegangsta/cli" 11 ) 12 13 type CreateDomain struct { 14 ui terminal.UI 15 config core_config.Reader 16 domainRepo api.DomainRepository 17 orgReq requirements.OrganizationRequirement 18 } 19 20 func NewCreateDomain(ui terminal.UI, config core_config.Reader, domainRepo api.DomainRepository) (cmd *CreateDomain) { 21 cmd = new(CreateDomain) 22 cmd.ui = ui 23 cmd.config = config 24 cmd.domainRepo = domainRepo 25 return 26 } 27 28 func (cmd *CreateDomain) Metadata() command_metadata.CommandMetadata { 29 return command_metadata.CommandMetadata{ 30 Name: "create-domain", 31 Description: T("Create a domain in an org for later use"), 32 Usage: T("CF_NAME create-domain ORG DOMAIN"), 33 } 34 } 35 36 func (cmd *CreateDomain) GetRequirements(requirementsFactory requirements.Factory, c *cli.Context) (reqs []requirements.Requirement, err error) { 37 if len(c.Args()) != 2 { 38 cmd.ui.FailWithUsage(c) 39 } 40 41 cmd.orgReq = requirementsFactory.NewOrganizationRequirement(c.Args()[0]) 42 reqs = []requirements.Requirement{ 43 requirementsFactory.NewLoginRequirement(), 44 cmd.orgReq, 45 } 46 return 47 } 48 49 func (cmd *CreateDomain) Run(c *cli.Context) { 50 domainName := c.Args()[1] 51 owningOrg := cmd.orgReq.GetOrganization() 52 53 cmd.ui.Say(T("Creating domain {{.DomainName}} for org {{.OrgName}} as {{.Username}}...", 54 map[string]interface{}{ 55 "DomainName": terminal.EntityNameColor(domainName), 56 "OrgName": terminal.EntityNameColor(owningOrg.Name), 57 "Username": terminal.EntityNameColor(cmd.config.Username())})) 58 59 _, apiErr := cmd.domainRepo.Create(domainName, owningOrg.Guid) 60 if apiErr != nil { 61 cmd.ui.Failed(apiErr.Error()) 62 return 63 } 64 65 cmd.ui.Ok() 66 }