github.com/LukasHeimann/cloudfoundrycli/v8@v8.4.4/command/v7/delete_service_key_command.go (about) 1 package v7 2 3 import ( 4 "github.com/LukasHeimann/cloudfoundrycli/v8/actor/actionerror" 5 "github.com/LukasHeimann/cloudfoundrycli/v8/command/flag" 6 "github.com/LukasHeimann/cloudfoundrycli/v8/command/translatableerror" 7 "github.com/LukasHeimann/cloudfoundrycli/v8/command/v7/shared" 8 ) 9 10 type DeleteServiceKeyCommand struct { 11 BaseCommand 12 13 RequiredArgs flag.ServiceInstanceKey `positional-args:"yes"` 14 Force bool `short:"f" description:"Force deletion without confirmation"` 15 Wait bool `short:"w" long:"wait" description:"Wait for the operation to complete"` 16 relatedCommands interface{} `related_commands:"service-keys"` 17 } 18 19 func (cmd DeleteServiceKeyCommand) Execute(args []string) error { 20 if err := cmd.SharedActor.CheckTarget(true, true); err != nil { 21 return err 22 } 23 24 if !cmd.Force { 25 delete, err := cmd.displayPrompt() 26 if err != nil { 27 return err 28 } 29 30 if !delete { 31 cmd.UI.DisplayText("Delete cancelled") 32 return nil 33 } 34 } 35 36 if err := cmd.displayIntro(); err != nil { 37 return err 38 } 39 40 stream, warnings, err := cmd.Actor.DeleteServiceKeyByServiceInstanceAndName( 41 cmd.RequiredArgs.ServiceInstance, 42 cmd.RequiredArgs.ServiceKey, 43 cmd.Config.TargetedSpace().GUID, 44 ) 45 cmd.UI.DisplayWarnings(warnings) 46 switch err.(type) { 47 case nil: 48 case actionerror.ServiceKeyNotFoundError: 49 cmd.displayNotFound() 50 case actionerror.ServiceInstanceNotFoundError: 51 return translatableerror.ServiceInstanceNotFoundError{Name: cmd.RequiredArgs.ServiceInstance} 52 default: 53 return err 54 } 55 56 completed, err := shared.WaitForResult(stream, cmd.UI, cmd.Wait) 57 switch { 58 case err != nil: 59 return err 60 case completed: 61 cmd.UI.DisplayOK() 62 return nil 63 default: 64 cmd.UI.DisplayOK() 65 cmd.UI.DisplayText("Delete in progress.") 66 return nil 67 } 68 } 69 70 func (cmd DeleteServiceKeyCommand) Usage() string { 71 return `CF_NAME delete-service-key SERVICE_INSTANCE SERVICE_KEY [-f] [--wait]` 72 } 73 74 func (cmd DeleteServiceKeyCommand) Examples() string { 75 return `CF_NAME delete-service-key mydb mykey` 76 } 77 78 func (cmd DeleteServiceKeyCommand) displayPrompt() (bool, error) { 79 delete, err := cmd.UI.DisplayBoolPrompt( 80 false, 81 "Really delete the service key {{.ServiceKey}}?", 82 cmd.names(), 83 ) 84 if err != nil { 85 return false, err 86 } 87 88 return delete, nil 89 } 90 91 func (cmd DeleteServiceKeyCommand) displayIntro() error { 92 user, err := cmd.Actor.GetCurrentUser() 93 if err != nil { 94 return err 95 } 96 97 names := cmd.names() 98 names["User"] = user.Name 99 cmd.UI.DisplayTextWithFlavor( 100 "Deleting key {{.ServiceKey}} for service instance {{.ServiceInstance}} as {{.User}}...", 101 names, 102 ) 103 104 return nil 105 } 106 107 func (cmd DeleteServiceKeyCommand) displayNotFound() { 108 cmd.UI.DisplayNewline() 109 cmd.UI.DisplayText("Service key {{.ServiceKey}} does not exist for service instance {{.ServiceInstance}}.", cmd.names()) 110 } 111 112 func (cmd DeleteServiceKeyCommand) names() map[string]interface{} { 113 return map[string]interface{}{ 114 "ServiceInstance": cmd.RequiredArgs.ServiceInstance, 115 "ServiceKey": cmd.RequiredArgs.ServiceKey, 116 } 117 }