Add watch command to ctr
This command dump events matching a given container id or all events if no id is provided. Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
This commit is contained in:
parent
d0ab285704
commit
d8412061d2
1 changed files with 39 additions and 0 deletions
|
@ -52,6 +52,7 @@ var containersCommand = cli.Command{
|
||||||
resumeCommand,
|
resumeCommand,
|
||||||
startCommand,
|
startCommand,
|
||||||
statsCommand,
|
statsCommand,
|
||||||
|
watchCommand,
|
||||||
},
|
},
|
||||||
Action: listContainers,
|
Action: listContainers,
|
||||||
}
|
}
|
||||||
|
@ -271,6 +272,44 @@ func attachStdio(s stdio) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var watchCommand = cli.Command{
|
||||||
|
Name: "watch",
|
||||||
|
Usage: "print container events",
|
||||||
|
Action: func(context *cli.Context) {
|
||||||
|
c := getClient(context)
|
||||||
|
id := context.Args().First()
|
||||||
|
if id != "" {
|
||||||
|
resp, err := c.State(netcontext.Background(), &types.StateRequest{Id: id})
|
||||||
|
if err != nil {
|
||||||
|
fatal(err.Error(), 1)
|
||||||
|
}
|
||||||
|
for _, c := range resp.Containers {
|
||||||
|
if c.Id == id {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if id == "" {
|
||||||
|
fatal("Invalid container id", 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
events, reqErr := c.Events(netcontext.Background(), &types.EventsRequest{})
|
||||||
|
if reqErr != nil {
|
||||||
|
fatal(reqErr.Error(), 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
for {
|
||||||
|
e, err := events.Recv()
|
||||||
|
if err != nil {
|
||||||
|
fatal(err.Error(), 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if id == "" || e.Id == id {
|
||||||
|
fmt.Printf("%#v\n", e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
var pauseCommand = cli.Command{
|
var pauseCommand = cli.Command{
|
||||||
Name: "pause",
|
Name: "pause",
|
||||||
Usage: "pause a container",
|
Usage: "pause a container",
|
||||||
|
|
Loading…
Reference in a new issue