github.com/walkingsparrow/docker@v1.4.2-0.20151218153551-b708a2249bfa/api/client/lib/events.go (about) 1 package lib 2 3 import ( 4 "io" 5 "net/url" 6 "time" 7 8 "github.com/docker/docker/api/types" 9 "github.com/docker/docker/api/types/filters" 10 timetypes "github.com/docker/docker/api/types/time" 11 ) 12 13 // Events returns a stream of events in the daemon in a ReadCloser. 14 // It's up to the caller to close the stream. 15 func (cli *Client) Events(options types.EventsOptions) (io.ReadCloser, error) { 16 query := url.Values{} 17 ref := time.Now() 18 19 if options.Since != "" { 20 ts, err := timetypes.GetTimestamp(options.Since, ref) 21 if err != nil { 22 return nil, err 23 } 24 query.Set("since", ts) 25 } 26 if options.Until != "" { 27 ts, err := timetypes.GetTimestamp(options.Until, ref) 28 if err != nil { 29 return nil, err 30 } 31 query.Set("until", ts) 32 } 33 if options.Filters.Len() > 0 { 34 filterJSON, err := filters.ToParam(options.Filters) 35 if err != nil { 36 return nil, err 37 } 38 query.Set("filters", filterJSON) 39 } 40 41 serverResponse, err := cli.get("/events", query, nil) 42 if err != nil { 43 return nil, err 44 } 45 return serverResponse.body, nil 46 }