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  }