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…
	
	Add table
		Add a link
		
	
		Reference in a new issue