From c84d3b733d3f6d0f97509df9a66de9559ceab66d Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Thu, 16 Apr 2020 16:58:19 -0400 Subject: [PATCH 01/16] Allow filtering by event type --- .../dockerjava/core/util/FiltersBuilder.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java b/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java index 73b369ca7..4f2cccefb 100644 --- a/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java +++ b/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java @@ -1,5 +1,7 @@ package com.github.dockerjava.core.util; +import com.github.dockerjava.api.model.EventType; + import com.google.common.base.Strings; import java.util.ArrayList; @@ -64,6 +66,19 @@ public List getContainer() { return getFilter("container"); } + /** + * Filter by event types + * + * @param eventTypes + * array of event types + */ + public FiltersBuilder withEventTypes(EventType... eventTypes) { + for (EventType eventType: eventTypes) { + withFilter("type", eventType.getValue()); + } + return this; + } + /** * Filter by labels * From e88c9d9f17398c725636cbe90285bf3f53df16c1 Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Thu, 16 Apr 2020 22:58:27 -0400 Subject: [PATCH 02/16] Update EventsCmdImpl.java --- .../com/github/dockerjava/core/command/EventsCmdImpl.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java b/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java index 230f6dd5a..5126d0298 100644 --- a/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java +++ b/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java @@ -7,6 +7,7 @@ import com.github.dockerjava.api.command.EventsCmd; import com.github.dockerjava.api.model.Event; +import com.github.dockerjava.api.model.EventType; import com.github.dockerjava.core.util.FiltersBuilder; /** @@ -56,6 +57,13 @@ public EventsCmd withEventFilter(String... event) { this.filters.withFilter("event", event); return this; } + + @Override + public EventsCmd withEventTypeFilter(EventType... eventTypes) { + checkNotNull(eventTypes, "event types have not been specified"); + this.filters.withEventTypes(eventTypes); + return this; + } @Override public EventsCmd withLabelFilter(String... label) { From fd89922efab2053dacd4794c0c4b318b952b91bb Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Thu, 16 Apr 2020 23:00:43 -0400 Subject: [PATCH 03/16] Update EventsCmd.java --- .../java/com/github/dockerjava/api/command/EventsCmd.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java b/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java index c52706226..6a52cdc37 100644 --- a/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java +++ b/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java @@ -6,6 +6,7 @@ import javax.annotation.CheckForNull; import com.github.dockerjava.api.model.Event; +import com.github.dockerjava.api.model.EventType; /** * Get events @@ -33,6 +34,12 @@ public interface EventsCmd extends AsyncDockerCmd { */ EventsCmd withEventFilter(String... event); + /** + * @param eventTypes + * - event types to filter + */ + EventsCmd withEventTypeFilter(EventTypes... eventTypes); + /** * @param image * - image to filter From 4f7902107bd2bac9eceb1595e7e65d1bec52fcd8 Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Thu, 16 Apr 2020 23:02:12 -0400 Subject: [PATCH 04/16] Update EventsCmd.java --- .../main/java/com/github/dockerjava/api/command/EventsCmd.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java b/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java index 6a52cdc37..eb1d3a862 100644 --- a/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java +++ b/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java @@ -38,7 +38,7 @@ public interface EventsCmd extends AsyncDockerCmd { * @param eventTypes * - event types to filter */ - EventsCmd withEventTypeFilter(EventTypes... eventTypes); + EventsCmd withEventTypeFilter(EventType... eventTypes); /** * @param image From e95af2912db5803716d4424bae978ee4b73cabf7 Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Thu, 16 Apr 2020 23:58:13 -0400 Subject: [PATCH 05/16] Update EventsCmdImpl.java --- .../java/com/github/dockerjava/core/command/EventsCmdImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java b/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java index 5126d0298..061f69b1d 100644 --- a/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java +++ b/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java @@ -57,7 +57,7 @@ public EventsCmd withEventFilter(String... event) { this.filters.withFilter("event", event); return this; } - + @Override public EventsCmd withEventTypeFilter(EventType... eventTypes) { checkNotNull(eventTypes, "event types have not been specified"); From 540e3d5abe13384c42ced140e14fb9ee4271da5c Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Fri, 17 Apr 2020 01:45:22 -0400 Subject: [PATCH 06/16] Update FiltersBuilder.java --- .../com/github/dockerjava/core/util/FiltersBuilder.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java b/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java index 4f2cccefb..7d23b6c5c 100644 --- a/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java +++ b/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java @@ -12,6 +12,8 @@ import java.util.Map; import java.util.Map.Entry; import java.util.regex.Pattern; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * Representation of Docker filters. @@ -73,9 +75,10 @@ public List getContainer() { * array of event types */ public FiltersBuilder withEventTypes(EventType... eventTypes) { - for (EventType eventType: eventTypes) { - withFilter("type", eventType.getValue()); - } + withFilter("type", + Stream.of(eventTypes) + .map(EventType::getValue) + .collect(Collectors.toList())); return this; } From 2b098a516231146871ef78006b416b76f3f954d6 Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Sat, 23 May 2020 21:05:02 -0400 Subject: [PATCH 07/16] default --- .../com/github/dockerjava/api/command/EventsCmd.java | 11 ++++++++++- .../github/dockerjava/core/command/EventsCmdImpl.java | 7 ------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java b/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java index eb1d3a862..9eb162066 100644 --- a/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java +++ b/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java @@ -2,6 +2,7 @@ import java.util.List; import java.util.Map; +import java.util.stream.Stream; import javax.annotation.CheckForNull; @@ -35,10 +36,18 @@ public interface EventsCmd extends AsyncDockerCmd { EventsCmd withEventFilter(String... event); /** + * This provides a type safe version of {@link #withEventFilter(String...)}. + * * @param eventTypes * - event types to filter */ - EventsCmd withEventTypeFilter(EventType... eventTypes); + default EventsCmd withEventTypeFilter(final EventType... eventTypes) { + return withEventFilter( + Stream.of(eventTypes) + .map(EventType::getValue) + .toArray(String[]::new) + ); + } /** * @param image diff --git a/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java b/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java index 061f69b1d..3fe2441d7 100644 --- a/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java +++ b/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java @@ -58,13 +58,6 @@ public EventsCmd withEventFilter(String... event) { return this; } - @Override - public EventsCmd withEventTypeFilter(EventType... eventTypes) { - checkNotNull(eventTypes, "event types have not been specified"); - this.filters.withEventTypes(eventTypes); - return this; - } - @Override public EventsCmd withLabelFilter(String... label) { checkNotNull(label, "label have not been specified"); From 2358bf2f266b00e5ca8ad117086afa393c405662 Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Sat, 23 May 2020 21:09:33 -0400 Subject: [PATCH 08/16] Implements withEventTypeFilter with string https://github.com/docker-java/docker-java/pull/1367#pullrequestreview-417304293 --- .../com/github/dockerjava/api/command/EventsCmd.java | 12 +++++++++--- .../dockerjava/core/command/EventsCmdImpl.java | 7 +++++++ .../github/dockerjava/core/util/FiltersBuilder.java | 3 +-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java b/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java index 9eb162066..edb3cdf84 100644 --- a/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java +++ b/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java @@ -36,13 +36,19 @@ public interface EventsCmd extends AsyncDockerCmd { EventsCmd withEventFilter(String... event); /** - * This provides a type safe version of {@link #withEventFilter(String...)}. + * @param eventTypes + * - event types to filter + */ + EventsCmd withEventTypeFilter(String... eventTypes); + + /** + * This provides a type safe version of {@link #withEventTypeFilter(String...)}. * * @param eventTypes * - event types to filter */ - default EventsCmd withEventTypeFilter(final EventType... eventTypes) { - return withEventFilter( + default EventsCmd withEventTypeFilter(EventType... eventTypes) { + return withEventTypeFilter( Stream.of(eventTypes) .map(EventType::getValue) .toArray(String[]::new) diff --git a/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java b/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java index 3fe2441d7..1a64bc13f 100644 --- a/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java +++ b/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java @@ -58,6 +58,13 @@ public EventsCmd withEventFilter(String... event) { return this; } + @Override + public EventsCmd withEventTypeFilter(String... eventTypes) { + checkNotNull(eventTypes, "event types have not been specified"); + this.filters.withEventTypes(eventTypes); + return this; + } + @Override public EventsCmd withLabelFilter(String... label) { checkNotNull(label, "label have not been specified"); diff --git a/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java b/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java index 7d23b6c5c..29e883ce4 100644 --- a/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java +++ b/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java @@ -74,10 +74,9 @@ public List getContainer() { * @param eventTypes * array of event types */ - public FiltersBuilder withEventTypes(EventType... eventTypes) { + public FiltersBuilder withEventTypes(String... eventTypes) { withFilter("type", Stream.of(eventTypes) - .map(EventType::getValue) .collect(Collectors.toList())); return this; } From 7f22b5dd27b6618d6b31c61533071bac73ffc7d8 Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Sat, 23 May 2020 21:19:03 -0400 Subject: [PATCH 09/16] fixed imports --- .../java/com/github/dockerjava/core/command/EventsCmdImpl.java | 1 - .../java/com/github/dockerjava/core/util/FiltersBuilder.java | 2 -- 2 files changed, 3 deletions(-) diff --git a/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java b/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java index 1a64bc13f..d6cca6899 100644 --- a/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java +++ b/docker-java-core/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java @@ -7,7 +7,6 @@ import com.github.dockerjava.api.command.EventsCmd; import com.github.dockerjava.api.model.Event; -import com.github.dockerjava.api.model.EventType; import com.github.dockerjava.core.util.FiltersBuilder; /** diff --git a/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java b/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java index 29e883ce4..28283a941 100644 --- a/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java +++ b/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java @@ -1,7 +1,5 @@ package com.github.dockerjava.core.util; -import com.github.dockerjava.api.model.EventType; - import com.google.common.base.Strings; import java.util.ArrayList; From 260e9f465ffabcb4ba9faa1055783ddedee4aada Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Sun, 24 May 2020 13:43:20 -0400 Subject: [PATCH 10/16] Update docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java Co-authored-by: Sergei Egorov --- .../main/java/com/github/dockerjava/api/command/EventsCmd.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java b/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java index edb3cdf84..03f6f623d 100644 --- a/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java +++ b/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java @@ -36,8 +36,7 @@ public interface EventsCmd extends AsyncDockerCmd { EventsCmd withEventFilter(String... event); /** - * @param eventTypes - * - event types to filter + * @param eventTypes event types to filter */ EventsCmd withEventTypeFilter(String... eventTypes); From 93e750fd60fca6e3da1658dc29bfcc62baaebe88 Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Sun, 24 May 2020 13:43:27 -0400 Subject: [PATCH 11/16] Update docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java Co-authored-by: Sergei Egorov --- .../main/java/com/github/dockerjava/api/command/EventsCmd.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java b/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java index 03f6f623d..34a0c5ad5 100644 --- a/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java +++ b/docker-java-api/src/main/java/com/github/dockerjava/api/command/EventsCmd.java @@ -43,8 +43,7 @@ public interface EventsCmd extends AsyncDockerCmd { /** * This provides a type safe version of {@link #withEventTypeFilter(String...)}. * - * @param eventTypes - * - event types to filter + * @param eventTypes event types to filter */ default EventsCmd withEventTypeFilter(EventType... eventTypes) { return withEventTypeFilter( From fabc97c3988eabb32ec9f27587a75ed5700715f2 Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Mon, 25 May 2020 00:07:21 -0400 Subject: [PATCH 12/16] Update docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java Co-authored-by: Sergei Egorov --- .../java/com/github/dockerjava/core/util/FiltersBuilder.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java b/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java index 28283a941..aa167fe38 100644 --- a/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java +++ b/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java @@ -69,8 +69,7 @@ public List getContainer() { /** * Filter by event types * - * @param eventTypes - * array of event types + * @param eventTypes an array of event types */ public FiltersBuilder withEventTypes(String... eventTypes) { withFilter("type", From 0cc4ee0d1a400453e6b85da02a3893eb8d789e6a Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Mon, 25 May 2020 00:08:38 -0400 Subject: [PATCH 13/16] Update docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java Co-authored-by: Sergei Egorov --- .../java/com/github/dockerjava/core/util/FiltersBuilder.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java b/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java index aa167fe38..0d6c1d268 100644 --- a/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java +++ b/docker-java-core/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java @@ -72,9 +72,7 @@ public List getContainer() { * @param eventTypes an array of event types */ public FiltersBuilder withEventTypes(String... eventTypes) { - withFilter("type", - Stream.of(eventTypes) - .collect(Collectors.toList())); + withFilter("type", Stream.of(eventTypes).collect(Collectors.toList())); return this; } From 536af45f3509fd2cc5bd419626d6cdddd60b63ab Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Wed, 3 Jun 2020 07:36:06 -0400 Subject: [PATCH 14/16] Added IT --- .../github/dockerjava/cmd/EventsCmdIT.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/docker-java/src/test/java/com/github/dockerjava/cmd/EventsCmdIT.java b/docker-java/src/test/java/com/github/dockerjava/cmd/EventsCmdIT.java index 897c6fd25..9fd11883f 100644 --- a/docker-java/src/test/java/com/github/dockerjava/cmd/EventsCmdIT.java +++ b/docker-java/src/test/java/com/github/dockerjava/cmd/EventsCmdIT.java @@ -3,6 +3,7 @@ import com.github.dockerjava.api.async.ResultCallback; import com.github.dockerjava.api.command.CreateContainerResponse; import com.github.dockerjava.api.model.Event; +import com.github.dockerjava.api.model.EventType; import com.github.dockerjava.utils.TestUtils; import org.junit.Test; import org.slf4j.Logger; @@ -113,6 +114,31 @@ public void testEventStreamingWithFilter() throws Exception { } } + @Test + public void testEventStreamingWithEventTypeFilter() throws Exception { + assumeNotSwarm("", dockerRule); + + String startTime = getEpochTime(); + int expectedEvents = 1; + + EventsTestCallback eventCallback = new EventsTestCallback(expectedEvents); + + dockerRule.getClient().eventsCmd() + .withSince(startTime) + .withEventTypeFilter(EventType.CONTAINER) + .withEventFilter("start") + .exec(eventCallback); + + generateEvents(); + + List events = eventCallback.awaitExpectedEvents(30, TimeUnit.SECONDS); + + // we should only get "start" events here + for (Event event : events) { + assertThat("Received event: " + event, event.getAction(), is("start")); + } + } + /** * This method generates some events and returns the number of events being generated */ From ae4841011840f6cdbd06e90ced1a1b2e34b720e7 Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Wed, 3 Jun 2020 07:56:17 -0400 Subject: [PATCH 15/16] Added IT --- .../github/dockerjava/cmd/EventsCmdIT.java | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/docker-java/src/test/java/com/github/dockerjava/cmd/EventsCmdIT.java b/docker-java/src/test/java/com/github/dockerjava/cmd/EventsCmdIT.java index 9fd11883f..040ed6369 100644 --- a/docker-java/src/test/java/com/github/dockerjava/cmd/EventsCmdIT.java +++ b/docker-java/src/test/java/com/github/dockerjava/cmd/EventsCmdIT.java @@ -115,7 +115,7 @@ public void testEventStreamingWithFilter() throws Exception { } @Test - public void testEventStreamingWithEventTypeFilter() throws Exception { + public void testEventStreamingWithContainerEventTypeFilter() throws Exception { assumeNotSwarm("", dockerRule); String startTime = getEpochTime(); @@ -136,6 +136,32 @@ public void testEventStreamingWithEventTypeFilter() throws Exception { // we should only get "start" events here for (Event event : events) { assertThat("Received event: " + event, event.getAction(), is("start")); + assertThat("Received event: " + event, event.getType(), is(EventType.CONTAINER)); + } + } + + @Test + public void testEventStreamingWithImageEventTypeFilter() throws Exception { + assumeNotSwarm("", dockerRule); + + String startTime = getEpochTime(); + int expectedEvents = 1; + + EventsTestCallback eventCallback = new EventsTestCallback(expectedEvents); + + dockerRule.getClient().eventsCmd() + .withSince(startTime) + .withEventTypeFilter(EventType.IMAGE) + .exec(eventCallback); + + generateEvents(); + + List events = eventCallback.awaitExpectedEvents(30, TimeUnit.SECONDS); + + // we should only get "pull" events here + for (Event event : events) { + assertThat("Received event: " + event, event.getAction(), is("pull")); + assertThat("Received event: " + event, event.getType(), is(EventType.IMAGE)); } } From 6be0a638847d1c090736d3dcd5edfc8311c0227c Mon Sep 17 00:00:00 2001 From: Sergei Egorov Date: Thu, 4 Jun 2020 11:24:07 +0200 Subject: [PATCH 16/16] Update EventsCmdIT.java --- .../github/dockerjava/cmd/EventsCmdIT.java | 65 +++++++------------ 1 file changed, 23 insertions(+), 42 deletions(-) diff --git a/docker-java/src/test/java/com/github/dockerjava/cmd/EventsCmdIT.java b/docker-java/src/test/java/com/github/dockerjava/cmd/EventsCmdIT.java index 040ed6369..2a16e5474 100644 --- a/docker-java/src/test/java/com/github/dockerjava/cmd/EventsCmdIT.java +++ b/docker-java/src/test/java/com/github/dockerjava/cmd/EventsCmdIT.java @@ -11,6 +11,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @@ -115,53 +116,33 @@ public void testEventStreamingWithFilter() throws Exception { } @Test - public void testEventStreamingWithContainerEventTypeFilter() throws Exception { + public void testEventStreamingWithEventTypeFilter() throws Exception { assumeNotSwarm("", dockerRule); String startTime = getEpochTime(); - int expectedEvents = 1; - - EventsTestCallback eventCallback = new EventsTestCallback(expectedEvents); - - dockerRule.getClient().eventsCmd() - .withSince(startTime) - .withEventTypeFilter(EventType.CONTAINER) - .withEventFilter("start") - .exec(eventCallback); - generateEvents(); + String endTime = getEpochTime(); - List events = eventCallback.awaitExpectedEvents(30, TimeUnit.SECONDS); - - // we should only get "start" events here - for (Event event : events) { - assertThat("Received event: " + event, event.getAction(), is("start")); - assertThat("Received event: " + event, event.getType(), is(EventType.CONTAINER)); - } - } - - @Test - public void testEventStreamingWithImageEventTypeFilter() throws Exception { - assumeNotSwarm("", dockerRule); - - String startTime = getEpochTime(); - int expectedEvents = 1; - - EventsTestCallback eventCallback = new EventsTestCallback(expectedEvents); - - dockerRule.getClient().eventsCmd() - .withSince(startTime) - .withEventTypeFilter(EventType.IMAGE) - .exec(eventCallback); - - generateEvents(); - - List events = eventCallback.awaitExpectedEvents(30, TimeUnit.SECONDS); - - // we should only get "pull" events here - for (Event event : events) { - assertThat("Received event: " + event, event.getAction(), is("pull")); - assertThat("Received event: " + event, event.getType(), is(EventType.IMAGE)); + for (EventType eventType : EventType.values()) { + List events = new CopyOnWriteArrayList<>(); + try ( + ResultCallback.Adapter eventCallback = dockerRule.getClient().eventsCmd() + .withSince(startTime) + .withUntil(endTime) + .withEventTypeFilter(eventType) + .exec(new ResultCallback.Adapter() { + @Override + public void onNext(Event event) { + events.add(event); + } + }) + ) { + eventCallback.awaitCompletion(30, TimeUnit.SECONDS); + + for (Event event : events) { + assertThat("Received event: " + event, event.getType(), is(eventType)); + } + } } }