github.com/loafoe/cli@v7.1.0+incompatible/command/v7/terminate_task_command.go (about) 1 package v7 2 3 import ( 4 "code.cloudfoundry.org/cli/command/flag" 5 "code.cloudfoundry.org/cli/command/translatableerror" 6 ) 7 8 type TerminateTaskCommand struct { 9 BaseCommand 10 11 RequiredArgs flag.TerminateTaskArgs `positional-args:"yes"` 12 usage interface{} `usage:"CF_NAME terminate-task APP_NAME TASK_ID\n\nEXAMPLES:\n CF_NAME terminate-task my-app 3"` 13 relatedCommands interface{} `related_commands:"tasks"` 14 } 15 16 func (cmd TerminateTaskCommand) Execute(args []string) error { 17 sequenceID, err := flag.ParseStringToInt(cmd.RequiredArgs.SequenceID) 18 if err != nil { 19 return translatableerror.ParseArgumentError{ 20 ArgumentName: "TASK_ID", 21 ExpectedType: "integer", 22 } 23 } 24 25 if err != nil { 26 return err 27 } 28 29 err = cmd.SharedActor.CheckTarget(true, true) 30 if err != nil { 31 return err 32 } 33 34 space := cmd.Config.TargetedSpace() 35 36 user, err := cmd.Config.CurrentUser() 37 if err != nil { 38 return err 39 } 40 41 application, warnings, err := cmd.Actor.GetApplicationByNameAndSpace(cmd.RequiredArgs.AppName, space.GUID) 42 cmd.UI.DisplayWarnings(warnings) 43 if err != nil { 44 return err 45 } 46 47 task, warnings, err := cmd.Actor.GetTaskBySequenceIDAndApplication(sequenceID, application.GUID) 48 cmd.UI.DisplayWarnings(warnings) 49 if err != nil { 50 return err 51 } 52 53 cmd.UI.DisplayTextWithFlavor("Terminating task {{.TaskSequenceID}} of app {{.AppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.CurrentUser}}...", 54 map[string]interface{}{ 55 "TaskSequenceID": cmd.RequiredArgs.SequenceID, 56 "AppName": cmd.RequiredArgs.AppName, 57 "OrgName": cmd.Config.TargetedOrganization().Name, 58 "SpaceName": space.Name, 59 "CurrentUser": user.Name, 60 }) 61 62 _, warnings, err = cmd.Actor.TerminateTask(task.GUID) 63 cmd.UI.DisplayWarnings(warnings) 64 if err != nil { 65 return err 66 } 67 68 cmd.UI.DisplayOK() 69 70 return nil 71 }