(deps commandDeps)
| 2001 | } |
| 2002 | |
| 2003 | func newTaskPauseCommand(deps commandDeps) *cobra.Command { |
| 2004 | var reason string |
| 2005 | var metadataRaw string |
| 2006 | |
| 2007 | cmd := &cobra.Command{ |
| 2008 | Use: "pause <task-id>", |
| 2009 | Short: "Pause new runs for one task", |
| 2010 | Args: cobra.ExactArgs(1), |
| 2011 | Example: ` # Pause a noisy task while current claims finish |
| 2012 | agh task pause task-123 --reason "provider incident"`, |
| 2013 | RunE: func(cmd *cobra.Command, args []string) error { |
| 2014 | taskID, err := requiredTaskID(args[0]) |
| 2015 | if err != nil { |
| 2016 | return err |
| 2017 | } |
| 2018 | request := PauseTaskRequest{Reason: strings.TrimSpace(reason)} |
| 2019 | if request.Reason == "" { |
| 2020 | return errors.New("cli: --reason is required") |
| 2021 | } |
| 2022 | if cmd.Flags().Changed("metadata") { |
| 2023 | request.Metadata, err = parseAgentTaskJSONFlag("metadata", metadataRaw) |
| 2024 | if err != nil { |
| 2025 | return err |
| 2026 | } |
| 2027 | } |
| 2028 | client, err := clientFromDeps(deps) |
| 2029 | if err != nil { |
| 2030 | return err |
| 2031 | } |
| 2032 | record, err := client.PauseTask(cmd.Context(), taskID, request) |
| 2033 | if err != nil { |
| 2034 | return err |
| 2035 | } |
| 2036 | return writeCommandOutput(cmd, taskBundle(&record)) |
| 2037 | }, |
| 2038 | } |
| 2039 | cmd.Flags().StringVar(&reason, "reason", "", "Task-pause reason") |
| 2040 | cmd.Flags().StringVar(&metadataRaw, "metadata", "", "Optional task-pause metadata JSON") |
| 2041 | mustMarkFlagRequired(cmd, "reason") |
| 2042 | return cmd |
| 2043 | } |
| 2044 | |
| 2045 | func newTaskResumeCommand(deps commandDeps) *cobra.Command { |
| 2046 | var metadataRaw string |
no test coverage detected