From 1046ee18242acf29b71b6e901f7ab4b1e1e5199c Mon Sep 17 00:00:00 2001 From: HÃ¥kon Hallingstad Date: Thu, 6 Jun 2019 00:19:08 +0200 Subject: Move ZoneFilterMock next to ZoneRegistryMock --- .../config/provision/zone/ZoneFilterMock.java | 90 --------------------- .../controller/integration/ZoneFilterMock.java | 93 ++++++++++++++++++++++ .../controller/integration/ZoneRegistryMock.java | 1 - 3 files changed, 93 insertions(+), 91 deletions(-) delete mode 100644 config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneFilterMock.java create mode 100644 controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneFilterMock.java diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneFilterMock.java b/config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneFilterMock.java deleted file mode 100644 index 1ad4c227d81..00000000000 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneFilterMock.java +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.config.provision.zone; - -import com.yahoo.config.provision.CloudName; -import com.yahoo.config.provision.Environment; -import com.yahoo.config.provision.RegionName; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.function.Predicate; -import java.util.stream.Collectors; - -/** - * A ZoneList implementation which assumes all zones are controllerManaged. - * - * @author jonmv - */ -public class ZoneFilterMock implements ZoneList { - - private final List zones; - private final boolean negate; - - private ZoneFilterMock(List zones, boolean negate) { - this.negate = negate; - this.zones = zones; - } - - public static ZoneFilter from(Collection zones) { - return new ZoneFilterMock(new ArrayList<>(zones), false); - } - - @Override - public ZoneList not() { - return new ZoneFilterMock(zones, ! negate); - } - - @Override - public ZoneList all() { - return filter(zoneId -> true); - } - - @Override - public ZoneList controllerUpgraded() { - return all(); - } - - @Override - public ZoneList directlyRouted() { - return all(); - } - - @Override - public ZoneList reachable() { - return all(); - } - - @Override - public ZoneList in(Environment... environments) { - return filter(zoneId -> new HashSet<>(Arrays.asList(environments)).contains(zoneId.environment())); - } - - @Override - public ZoneList in(RegionName... regions) { - return filter(zoneId -> new HashSet<>(Arrays.asList(regions)).contains(zoneId.region())); - } - - @Override - public ZoneList among(ZoneId... zones) { - return filter(zoneId -> new HashSet<>(Arrays.asList(zones)).contains(zoneId)); - } - - @Override - public List ids() { - return Collections.unmodifiableList(zones); - } - - @Override - public ZoneList ofCloud(CloudName cloud) { - return filter(zoneId -> zoneId.cloud().equals(cloud)); - } - - private ZoneFilterMock filter(Predicate condition) { - return new ZoneFilterMock(zones.stream().filter(negate ? condition.negate() : condition).collect(Collectors.toList()), false); - } - -} diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneFilterMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneFilterMock.java new file mode 100644 index 00000000000..e6846144192 --- /dev/null +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneFilterMock.java @@ -0,0 +1,93 @@ +// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.hosted.controller.integration; + +import com.yahoo.config.provision.CloudName; +import com.yahoo.config.provision.Environment; +import com.yahoo.config.provision.RegionName; +import com.yahoo.config.provision.zone.ZoneFilter; +import com.yahoo.config.provision.zone.ZoneId; +import com.yahoo.config.provision.zone.ZoneList; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +/** + * A ZoneList implementation which assumes all zones are controllerManaged. + * + * @author jonmv + */ +public class ZoneFilterMock implements ZoneList { + + private final List zones; + private final boolean negate; + + private ZoneFilterMock(List zones, boolean negate) { + this.negate = negate; + this.zones = zones; + } + + public static ZoneFilter from(Collection zones) { + return new ZoneFilterMock(new ArrayList<>(zones), false); + } + + @Override + public ZoneList not() { + return new ZoneFilterMock(zones, ! negate); + } + + @Override + public ZoneList all() { + return filter(zoneId -> true); + } + + @Override + public ZoneList controllerUpgraded() { + return all(); + } + + @Override + public ZoneList directlyRouted() { + return all(); + } + + @Override + public ZoneList reachable() { + return all(); + } + + @Override + public ZoneList in(Environment... environments) { + return filter(zoneId -> new HashSet<>(Arrays.asList(environments)).contains(zoneId.environment())); + } + + @Override + public ZoneList in(RegionName... regions) { + return filter(zoneId -> new HashSet<>(Arrays.asList(regions)).contains(zoneId.region())); + } + + @Override + public ZoneList among(ZoneId... zones) { + return filter(zoneId -> new HashSet<>(Arrays.asList(zones)).contains(zoneId)); + } + + @Override + public List ids() { + return Collections.unmodifiableList(zones); + } + + @Override + public ZoneList ofCloud(CloudName cloud) { + return filter(zoneId -> zoneId.cloud().equals(cloud)); + } + + private ZoneFilterMock filter(Predicate condition) { + return new ZoneFilterMock(zones.stream().filter(negate ? condition.negate() : condition).collect(Collectors.toList()), false); + } + +} diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java index 12b0f2a930a..23ee245772c 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java @@ -12,7 +12,6 @@ import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.zone.UpgradePolicy; import com.yahoo.config.provision.zone.ZoneFilter; -import com.yahoo.config.provision.zone.ZoneFilterMock; import com.yahoo.config.provision.zone.ZoneId; import com.yahoo.vespa.athenz.api.AthenzService; import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId; -- cgit v1.2.3