github.com/jenspinney/cli@v6.42.1-0.20190207184520-7450c600020e+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  }