11package client
22
33import (
4- "net/url"
5- "time"
6-
4+ "github.com/docker/docker/api/client/lib"
75 Cli "github.com/docker/docker/cli"
86 "github.com/docker/docker/opts"
7+ "github.com/docker/docker/pkg/jsonmessage"
98 flag "github.com/docker/docker/pkg/mflag"
109 "github.com/docker/docker/pkg/parsers/filters"
11- "github.com/docker/docker/pkg/timeutils"
1210)
1311
1412// CmdEvents prints a live stream of real time events from the server.
@@ -24,10 +22,7 @@ func (cli *DockerCli) CmdEvents(args ...string) error {
2422
2523 cmd .ParseFlags (args , true )
2624
27- var (
28- v = url.Values {}
29- eventFilterArgs = filters .NewArgs ()
30- )
25+ eventFilterArgs := filters .NewArgs ()
3126
3227 // Consolidate all filter flags, and sanity check them early.
3328 // They'll get process in the daemon/server.
@@ -38,34 +33,18 @@ func (cli *DockerCli) CmdEvents(args ...string) error {
3833 return err
3934 }
4035 }
41- ref := time .Now ()
42- if * since != "" {
43- ts , err := timeutils .GetTimestamp (* since , ref )
44- if err != nil {
45- return err
46- }
47- v .Set ("since" , ts )
48- }
49- if * until != "" {
50- ts , err := timeutils .GetTimestamp (* until , ref )
51- if err != nil {
52- return err
53- }
54- v .Set ("until" , ts )
55- }
56- if eventFilterArgs .Len () > 0 {
57- filterJSON , err := filters .ToParam (eventFilterArgs )
58- if err != nil {
59- return err
60- }
61- v .Set ("filters" , filterJSON )
62- }
63- sopts := & streamOpts {
64- rawTerminal : true ,
65- out : cli .out ,
36+
37+ options := lib.EventsOptions {
38+ Since : * since ,
39+ Until : * until ,
40+ Filters : eventFilterArgs ,
6641 }
67- if _ , err := cli .stream ("GET" , "/events?" + v .Encode (), sopts ); err != nil {
42+
43+ responseBody , err := cli .client .Events (options )
44+ if err != nil {
6845 return err
6946 }
70- return nil
47+ defer responseBody .Close ()
48+
49+ return jsonmessage .DisplayJSONMessagesStream (responseBody , cli .out , cli .outFd , cli .isTerminalOut )
7150}
0 commit comments