// getEventFilter returns a filters.Filter for a set of filters func (daemon *Daemon) getEventFilter(filter filters.Args) *events.Filter { // incoming container filter can be name, id or partial id, convert to // a full container id for _, cn := range filter.Get("container") { c, err := daemon.GetContainer(cn) filter.Del("container", cn) if err == nil { filter.Add("container", c.ID) } } return events.NewFilter(filter, daemon.GetLabels) }
// GetEventFilter returns a filters.Filter for a set of filters func (daemon *Daemon) GetEventFilter(filter filters.Args) *events.Filter { // incoming container filter can be name, id or partial id, convert to // a full container id for i, cn := range filter["container"] { c, err := daemon.Get(cn) if err != nil { filter["container"][i] = "" } else { filter["container"][i] = c.ID } } return events.NewFilter(filter, daemon.GetLabels) }
// SubscribeToEvents returns the currently record of events, a channel to stream new events from, and a function to cancel the stream of events. func (daemon *Daemon) SubscribeToEvents(since, sinceNano int64, filter filters.Args) ([]eventtypes.Message, chan interface{}) { ef := events.NewFilter(filter) return daemon.EventsService.SubscribeTopic(since, sinceNano, ef) }
// SubscribeToEvents returns the currently record of events, a channel to stream new events from, and a function to cancel the stream of events. func (daemon *Daemon) SubscribeToEvents(since, until time.Time, filter filters.Args) ([]events.Message, chan interface{}) { ef := daemonevents.NewFilter(filter) return daemon.EventsService.SubscribeTopic(since, until, ef) }