github.com/sleungcy/cli@v7.1.0+incompatible/command/v7/cancel_deployment_command.go (about)

     1  package v7
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/command/flag"
     5  )
     6  
     7  type CancelDeploymentCommand struct {
     8  	BaseCommand
     9  
    10  	RequiredArgs    flag.AppName `positional-args:"yes"`
    11  	usage           interface{}  `usage:"CF_NAME cancel-deployment APP_NAME\n\nEXAMPLES:\n   cf cancel-deployment my-app"`
    12  	relatedCommands interface{}  `related_commands:"app, push"`
    13  }
    14  
    15  func (cmd *CancelDeploymentCommand) Execute(args []string) error {
    16  	err := cmd.SharedActor.CheckTarget(true, true)
    17  	if err != nil {
    18  		return err
    19  	}
    20  
    21  	userName, err := cmd.Config.CurrentUserName()
    22  	if err != nil {
    23  		return err
    24  	}
    25  
    26  	cmd.UI.DisplayTextWithFlavor(
    27  		"Canceling deployment for app {{.AppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.UserName}}...",
    28  		map[string]interface{}{
    29  			"AppName":   cmd.RequiredArgs.AppName,
    30  			"OrgName":   cmd.Config.TargetedOrganization().Name,
    31  			"SpaceName": cmd.Config.TargetedSpace().Name,
    32  			"UserName":  userName,
    33  		},
    34  	)
    35  
    36  	application, warnings, err := cmd.Actor.GetApplicationByNameAndSpace(cmd.RequiredArgs.AppName, cmd.Config.TargetedSpace().GUID)
    37  	cmd.UI.DisplayWarnings(warnings)
    38  	if err != nil {
    39  		return err
    40  	}
    41  
    42  	deployment, warnings, err := cmd.Actor.GetLatestActiveDeploymentForApp(application.GUID)
    43  	cmd.UI.DisplayWarnings(warnings)
    44  	if err != nil {
    45  		return err
    46  	}
    47  
    48  	warnings, err = cmd.Actor.CancelDeployment(deployment.GUID)
    49  	cmd.UI.DisplayWarnings(warnings)
    50  	if err != nil {
    51  		return err
    52  	}
    53  
    54  	cmd.UI.DisplayOK()
    55  	cmd.UI.DisplayText("TIP: Run 'cf app {{.AppName}}' to view app status.", map[string]interface{}{"AppName": cmd.RequiredArgs.AppName})
    56  	return nil
    57  }