github.com/orange-cloudfoundry/cli@v7.1.0+incompatible/command/v7/tasks_command.go (about) 1 package v7 2 3 import ( 4 "strconv" 5 "time" 6 7 "code.cloudfoundry.org/cli/actor/v7action" 8 "code.cloudfoundry.org/cli/command/flag" 9 "code.cloudfoundry.org/cli/util/ui" 10 ) 11 12 type TasksCommand struct { 13 BaseCommand 14 15 RequiredArgs flag.AppName `positional-args:"yes"` 16 usage interface{} `usage:"CF_NAME tasks APP_NAME"` 17 relatedCommands interface{} `related_commands:"apps, logs, run-task, terminate-task"` 18 } 19 20 func (cmd TasksCommand) Execute(args []string) error { 21 err := cmd.SharedActor.CheckTarget(true, true) 22 if err != nil { 23 return err 24 } 25 26 space := cmd.Config.TargetedSpace() 27 28 user, err := cmd.Config.CurrentUser() 29 if err != nil { 30 return err 31 } 32 33 application, warnings, err := cmd.Actor.GetApplicationByNameAndSpace(cmd.RequiredArgs.AppName, space.GUID) 34 cmd.UI.DisplayWarnings(warnings) 35 if err != nil { 36 return err 37 } 38 39 cmd.UI.DisplayTextWithFlavor("Getting tasks for app {{.AppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.CurrentUser}}...", map[string]interface{}{ 40 "AppName": cmd.RequiredArgs.AppName, 41 "OrgName": cmd.Config.TargetedOrganization().Name, 42 "SpaceName": space.Name, 43 "CurrentUser": user.Name, 44 }) 45 cmd.UI.DisplayNewline() 46 47 tasks, warnings, err := cmd.Actor.GetApplicationTasks(application.GUID, v7action.Descending) 48 cmd.UI.DisplayWarnings(warnings) 49 if err != nil { 50 return err 51 } 52 53 if len(tasks) == 0 { 54 cmd.UI.DisplayText("No tasks found for application.") 55 return nil 56 } 57 58 table := [][]string{ 59 { 60 cmd.UI.TranslateText("id"), 61 cmd.UI.TranslateText("name"), 62 cmd.UI.TranslateText("state"), 63 cmd.UI.TranslateText("start time"), 64 cmd.UI.TranslateText("command"), 65 }, 66 } 67 for _, task := range tasks { 68 t, err := time.Parse(time.RFC3339, task.CreatedAt) 69 if err != nil { 70 return err 71 } 72 73 if task.Command == "" { 74 task.Command = "[hidden]" 75 } 76 77 table = append(table, []string{ 78 strconv.FormatInt(task.SequenceID, 10), 79 task.Name, 80 cmd.UI.TranslateText(string(task.State)), 81 t.Format(time.RFC1123), 82 task.Command, 83 }) 84 } 85 86 cmd.UI.DisplayTableWithHeader("", table, ui.DefaultTableSpacePadding) 87 88 return nil 89 }