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,
|
||||
startCommand,
|
||||
statsCommand,
|
||||
watchCommand,
|
||||
},
|
||||
Action: listContainers,
|
||||
}
|
||||
|
@ -271,6 +272,44 @@ func attachStdio(s stdio) error {
|
|||
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{
|
||||
Name: "pause",
|
||||
Usage: "pause a container",
|
||||
|
|
Loading…
Reference in a new issue