github.com/sleungcy-sap/cli@v7.1.0+incompatible/command/v6/v3_cancel_zdt_push_command.go (about) 1 package v6 2 3 import ( 4 "errors" 5 6 "code.cloudfoundry.org/cli/actor/sharedaction" 7 "code.cloudfoundry.org/cli/actor/v3action" 8 "code.cloudfoundry.org/cli/command" 9 "code.cloudfoundry.org/cli/command/flag" 10 "code.cloudfoundry.org/cli/command/v6/shared" 11 ) 12 13 //go:generate counterfeiter . V3CancelZdtPushActor 14 15 type V3CancelZdtPushActor interface { 16 CancelDeploymentByAppNameAndSpace(appName string, spaceGUID string) (v3action.Warnings, error) 17 } 18 19 type V3CancelZdtPushCommand struct { 20 RequiredArgs flag.AppName `positional-args:"yes"` 21 UI command.UI 22 Config command.Config 23 CancelZdtPushActor V3CancelZdtPushActor 24 SharedActor command.SharedActor 25 usage interface{} `usage:"CF_NAME v3-cancel-zdt-push APP_NAME"` 26 } 27 28 func (cmd *V3CancelZdtPushCommand) Setup(config command.Config, ui command.UI) error { 29 cmd.UI = ui 30 cmd.Config = config 31 sharedActor := sharedaction.NewActor(config) 32 33 ccClient, uaaClient, err := shared.NewV3BasedClients(config, ui, true) 34 if err != nil { 35 return err 36 } 37 38 cmd.CancelZdtPushActor = v3action.NewActor(ccClient, config, sharedActor, uaaClient) 39 cmd.SharedActor = sharedActor 40 41 return nil 42 } 43 44 func (cmd V3CancelZdtPushCommand) Execute(args []string) error { 45 cmd.UI.DisplayWarning(command.ExperimentalWarning) 46 47 err := cmd.validateArgs() 48 if err != nil { 49 return err 50 } 51 52 err = cmd.SharedActor.CheckTarget(true, true) 53 if err != nil { 54 return err 55 } 56 57 _, err = cmd.Config.CurrentUser() 58 if err != nil { 59 return err 60 } 61 62 warnings, err := cmd.CancelZdtPushActor.CancelDeploymentByAppNameAndSpace(cmd.RequiredArgs.AppName, cmd.Config.TargetedSpace().GUID) 63 64 cmd.UI.DisplayWarnings(warnings) 65 if err != nil { 66 return err 67 } 68 69 cmd.UI.DisplayText("Deployment cancelled, rolling back") 70 return nil 71 } 72 73 func (cmd V3CancelZdtPushCommand) validateArgs() error { 74 if cmd.RequiredArgs.AppName == "" { 75 return errors.New("No app name given") 76 } 77 return nil 78 }