(deps commandDeps)
| 1960 | } |
| 1961 | |
| 1962 | func newTaskRunRecoverCommand(deps commandDeps) *cobra.Command { |
| 1963 | var ( |
| 1964 | reason string |
| 1965 | metadataRaw string |
| 1966 | ) |
| 1967 | |
| 1968 | cmd := &cobra.Command{ |
| 1969 | Use: "recover <run-id>", |
| 1970 | Short: "Recover one needs_attention task run", |
| 1971 | Args: cobra.ExactArgs(1), |
| 1972 | Example: ` # Re-enqueue one run stuck in needs_attention |
| 1973 | agh task run recover run-123 --reason "operator recovery"`, |
| 1974 | RunE: func(cmd *cobra.Command, args []string) error { |
| 1975 | runIDs, err := requiredTaskRunIDs(args) |
| 1976 | if err != nil { |
| 1977 | return err |
| 1978 | } |
| 1979 | request := RecoverTaskRunRequest{Reason: strings.TrimSpace(reason)} |
| 1980 | if cmd.Flags().Changed("metadata") { |
| 1981 | request.Metadata, err = parseAgentTaskJSONFlag("metadata", metadataRaw) |
| 1982 | if err != nil { |
| 1983 | return err |
| 1984 | } |
| 1985 | } |
| 1986 | client, err := clientFromDeps(deps) |
| 1987 | if err != nil { |
| 1988 | return err |
| 1989 | } |
| 1990 | record, err := client.RecoverTaskRun(cmd.Context(), runIDs[0], request) |
| 1991 | if err != nil { |
| 1992 | return err |
| 1993 | } |
| 1994 | return writeCommandOutput(cmd, recoverTaskRunBundle(&record)) |
| 1995 | }, |
| 1996 | } |
| 1997 | cmd.Flags(). |
| 1998 | StringVar(&reason, "reason", "", "Optional recovery reason recorded in the audit event") |
| 1999 | cmd.Flags().StringVar(&metadataRaw, "metadata", "", "Optional recovery metadata JSON") |
| 2000 | return cmd |
| 2001 | } |
| 2002 | |
| 2003 | func newTaskPauseCommand(deps commandDeps) *cobra.Command { |
| 2004 | var reason string |
no test coverage detected