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