github.com/mook-as/cf-cli@v7.0.0-beta.28.0.20200120190804-b91c115fae48+incompatible/command/v7/unshare_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 . UnsharePrivateDomainActor 13 14 type UnsharePrivateDomainActor interface { 15 UnsharePrivateDomain(domainName string, orgName string) (v7action.Warnings, error) 16 } 17 18 type UnsharePrivateDomainCommand struct { 19 RequiredArgs flag.OrgDomain `positional-args:"yes"` 20 usage interface{} `usage:"CF_NAME unshare-private-domain ORG DOMAIN"` 21 relatedCommands interface{} `related_commands:"delete-private-domain, domains"` 22 23 UI command.UI 24 Config command.Config 25 Actor UnsharePrivateDomainActor 26 SharedActor command.SharedActor 27 } 28 29 func (cmd *UnsharePrivateDomainCommand) 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 UnsharePrivateDomainCommand) 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("Warning: org {{.Organization}} will no longer be able to access private domain {{.Domain}}", 58 map[string]interface{}{ 59 "Domain": domain, 60 "Organization": orgName, 61 }) 62 63 response, err := cmd.UI.DisplayBoolPrompt(false, 64 "Really unshare private domain {{.Domain}}?", 65 map[string]interface{}{ 66 "Domain": domain, 67 }, 68 ) 69 70 if err != nil { 71 return err 72 } 73 74 if !response { 75 cmd.UI.DisplayTextWithFlavor("Domain {{.Domain}} has not been unshared from organization {{.Organization}}", 76 map[string]interface{}{ 77 "Domain": domain, 78 "Organization": orgName, 79 }) 80 return nil 81 } 82 83 cmd.UI.DisplayTextWithFlavor("Unsharing domain {{.Domain}} from org {{.Organization}} as {{.User}}...", 84 map[string]interface{}{ 85 "Domain": domain, 86 "User": user.Name, 87 "Organization": orgName, 88 }) 89 90 warnings, err := cmd.Actor.UnsharePrivateDomain(domain, orgName) 91 cmd.UI.DisplayWarnings(warnings) 92 if err != nil { 93 return err 94 } 95 96 cmd.UI.DisplayOK() 97 98 return nil 99 }