github.com/mook-as/cf-cli@v7.0.0-beta.28.0.20200120190804-b91c115fae48+incompatible/command/v7/share_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 . SharePrivateDomainActor 13 14 type SharePrivateDomainActor interface { 15 SharePrivateDomain(domainName string, orgName string) (v7action.Warnings, error) 16 } 17 18 type SharePrivateDomainCommand struct { 19 RequiredArgs flag.OrgDomain `positional-args:"yes"` 20 usage interface{} `usage:"CF_NAME share-private-domain ORG DOMAIN"` 21 relatedCommands interface{} `related_commands:"create-private-domain, domains, unshare-private-domain"` 22 23 UI command.UI 24 Config command.Config 25 Actor SharePrivateDomainActor 26 SharedActor command.SharedActor 27 } 28 29 func (cmd *SharePrivateDomainCommand) 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 SharePrivateDomainCommand) 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("Sharing domain {{.Domain}} with 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.SharePrivateDomain(domain, orgName) 65 cmd.UI.DisplayWarnings(warnings) 66 if err != nil { 67 return err 68 } 69 70 cmd.UI.DisplayOK() 71 72 return nil 73 }