From 2a54e5d16eab48d97698cf254fc29ec7b6ce467b Mon Sep 17 00:00:00 2001 From: Allen Sun Date: Sat, 23 Sep 2017 12:08:38 +0800 Subject: [PATCH] add node/service/secret/config specific event filter Signed-off-by: Allen Sun Upstream-commit: 4611ecd3cdc9b2738f58a136b79f752add223f3f Component: engine --- components/engine/api/swagger.yaml | 8 ++++++-- components/engine/daemon/events/filter.go | 4 ++++ components/engine/docs/api/version-history.md | 3 ++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/components/engine/api/swagger.yaml b/components/engine/api/swagger.yaml index 275c2e9cec..afec91e72a 100644 --- a/components/engine/api/swagger.yaml +++ b/components/engine/api/swagger.yaml @@ -6941,16 +6941,20 @@ paths: description: | A JSON encoded value of filters (a `map[string][]string`) to process on the event list. Available filters: + - `config=` config name or ID - `container=` container name or ID - `daemon=` daemon name or ID - `event=` event type - `image=` image name or ID - `label=` image or container label - `network=` network name or ID + - `node=` node ID - `plugin`= plugin name or ID - `scope`= local or swarm - - `type=` object to filter by, one of `container`, `image`, `volume`, `network`, `daemon`, `plugin`, `node`, `service` or `secret` - - `volume=` volume name or ID + - `secret=` secret name or ID + - `service=` service name or ID + - `type=` object to filter by, one of `container`, `image`, `volume`, `network`, `daemon`, `plugin`, `node`, `service`, `secret` or `config` + - `volume=` volume name type: "string" tags: ["System"] /system/df: diff --git a/components/engine/daemon/events/filter.go b/components/engine/daemon/events/filter.go index 645f1ca917..5a3163deda 100644 --- a/components/engine/daemon/events/filter.go +++ b/components/engine/daemon/events/filter.go @@ -27,6 +27,10 @@ func (ef *Filter) Include(ev events.Message) bool { ef.matchVolume(ev) && ef.matchNetwork(ev) && ef.matchImage(ev) && + ef.matchNode(ev) && + ef.matchService(ev) && + ef.matchSecret(ev) && + ef.matchConfig(ev) && ef.matchLabels(ev.Actor.Attributes) } diff --git a/components/engine/docs/api/version-history.md b/components/engine/docs/api/version-history.md index 1144e95447..a8507ce465 100644 --- a/components/engine/docs/api/version-history.md +++ b/components/engine/docs/api/version-history.md @@ -18,7 +18,8 @@ keywords: "API, Docker, rcli, REST, documentation" [Docker Engine API v1.33](https://docs.docker.com/engine/api/v1.33/) documentation - +* `GET /events` now supports filtering 4 more kinds of events: `config`, `node`, +`secret` and `service`. ## v1.32 API changes