github.com/loafoe/cli@v7.1.0+incompatible/command/v7/delete_private_domain_command.go (about) 1 package v7 2 3 import ( 4 "fmt" 5 6 "code.cloudfoundry.org/cli/actor/actionerror" 7 "code.cloudfoundry.org/cli/command/flag" 8 ) 9 10 type DeletePrivateDomainCommand struct { 11 BaseCommand 12 13 RequiredArgs flag.Domain `positional-args:"yes"` 14 Force bool `short:"f" description:"Force deletion without confirmation"` 15 usage interface{} `usage:"CF_NAME delete-private-domain DOMAIN [-f]"` 16 relatedCommands interface{} `related_commands:"delete-shared-domain, domains, unshare-private-domain"` 17 } 18 19 func (cmd DeletePrivateDomainCommand) Execute(args []string) error { 20 domainName := cmd.RequiredArgs.Domain 21 err := cmd.SharedActor.CheckTarget(true, false) 22 if err != nil { 23 return err 24 } 25 26 currentUser, err := cmd.Config.CurrentUser() 27 if err != nil { 28 return err 29 } 30 31 cmd.UI.DisplayTextWithFlavor("Deleting private domain {{.DomainName}} as {{.Username}}...", map[string]interface{}{ 32 "DomainName": domainName, 33 "Username": currentUser.Name, 34 }) 35 36 domain, warnings, err := cmd.Actor.GetDomainByName(domainName) 37 cmd.UI.DisplayWarnings(warnings) 38 39 if err != nil { 40 if _, ok := err.(actionerror.DomainNotFoundError); ok { 41 cmd.UI.DisplayWarning("Domain '{{.DomainName}}' does not exist.", map[string]interface{}{ 42 "DomainName": cmd.RequiredArgs.Domain, 43 }) 44 cmd.UI.DisplayOK() 45 return nil 46 } 47 return err 48 } 49 50 if domain.Shared() { 51 return fmt.Errorf("Domain '%s' is a shared domain, not a private domain.", domainName) 52 } 53 54 cmd.UI.DisplayText("Deleting the private domain will remove associated routes which will make apps with this domain unreachable.") 55 56 if !cmd.Force { 57 response, promptErr := cmd.UI.DisplayBoolPrompt(false, "Really delete the private domain {{.DomainName}}?", map[string]interface{}{ 58 "DomainName": domainName, 59 }) 60 61 if promptErr != nil { 62 return promptErr 63 } 64 65 if !response { 66 cmd.UI.DisplayText("'{{.DomainName}}' has not been deleted.", map[string]interface{}{ 67 "DomainName": domainName, 68 }) 69 return nil 70 } 71 } 72 cmd.UI.DisplayTextWithFlavor("Deleting private domain {{.DomainName}} as {{.Username}}...", map[string]interface{}{ 73 "DomainName": domainName, 74 "Username": currentUser.Name, 75 }) 76 77 warnings, err = cmd.Actor.DeleteDomain(domain) 78 cmd.UI.DisplayWarnings(warnings) 79 80 if err != nil { 81 return err 82 } 83 84 cmd.UI.DisplayOK() 85 86 cmd.UI.DisplayText("TIP: Run 'cf domains' to view available domains.") 87 88 return nil 89 }