ctr: shim state for secondary tasks

The v2 shim interface supports grouping, so a single shim can manage
multiple tasks.  Prior to this change, the `shim state` command could
only query the state of the primary task (task that shares the same ID
as the shim).

Signed-off-by: Samuel Karp <samuelkarp@google.com>
This commit is contained in:
Samuel Karp 2024-08-07 16:14:48 -07:00
parent 58cf6e2830
commit d59e8a8404
No known key found for this signature in database
GPG Key ID: 997C5A3CD3167CB5

View File

@ -67,7 +67,7 @@ var Command = &cli.Command{
Flags: []cli.Flag{
&cli.StringFlag{
Name: "id",
Usage: "Container id",
Usage: "shim ID",
},
},
Subcommands: []*cli.Command{
@ -115,14 +115,26 @@ var deleteCommand = &cli.Command{
var stateCommand = &cli.Command{
Name: "state",
Usage: "Get the state of all the processes of the task",
Usage: "Get the state of all main process of the task",
Flags: []cli.Flag{
&cli.StringFlag{
Name: "task-id",
Aliases: []string{"t"},
Usage: "task ID",
},
},
Action: func(cliContext *cli.Context) error {
service, err := getTaskService(cliContext)
if err != nil {
return err
}
id := cliContext.String("task-id")
if id == "" {
id = cliContext.String("id")
}
r, err := service.State(context.Background(), &task.StateRequest{
ID: cliContext.String("id"),
ID: id,
})
if err != nil {
return err