summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorMorten Tokle <morten.tokle@gmail.com>2019-02-04 10:44:38 +0100
committerGitHub <noreply@github.com>2019-02-04 10:44:38 +0100
commita00c6cab38b2b361a587e479f7bbdef8862d03d9 (patch)
tree03dbc0ae0c98a9d5cab733c77dc4b1088192753e /configserver
parentf8aa71a4948a9489ec2313ee44f3facc76e77899 (diff)
parent955ebb989ec0c61cbcdf8fe439f7cde9094120fe (diff)
Merge pull request #8364 from vespa-engine/mpolden/rotations-element
Add support for rotations element
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/test/apps/hosted/services.xml8
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java25
2 files changed, 29 insertions, 4 deletions
diff --git a/configserver/src/test/apps/hosted/services.xml b/configserver/src/test/apps/hosted/services.xml
index 2025a177430..7c2920958a2 100644
--- a/configserver/src/test/apps/hosted/services.xml
+++ b/configserver/src/test/apps/hosted/services.xml
@@ -6,7 +6,7 @@
<nodes count='1'/>
</admin>
- <jdisc version="1.0">
+ <container version="1.0">
<http>
<filtering>
<access-control domain="foo" write="true" />
@@ -15,7 +15,11 @@
</http>
<search/>
<nodes count='1'/>
- </jdisc>
+ <rotations>
+ <rotation id='us-cluster'/>
+ <rotation id='eu-cluster'/>
+ </rotations>
+ </container>
<content id="music" version="1.0">
<redundancy>1</redundancy>
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java
index d64cf963be7..143b9b34a35 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.config.server.deploy;
import com.google.common.collect.ImmutableSet;
import com.google.common.io.Files;
import com.yahoo.cloud.config.ConfigserverConfig;
+import com.yahoo.component.Version;
import com.yahoo.config.model.api.ConfigChangeAction;
import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.api.ModelCreateResult;
@@ -14,12 +15,13 @@ import com.yahoo.config.model.provision.Host;
import com.yahoo.config.model.provision.Hosts;
import com.yahoo.config.model.provision.InMemoryProvisioner;
import com.yahoo.config.provision.ApplicationId;
+import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.Environment;
+import com.yahoo.config.provision.HostSpec;
import com.yahoo.config.provision.RegionName;
-import com.yahoo.component.Version;
+import com.yahoo.config.provision.RotationName;
import com.yahoo.config.provision.Zone;
import com.yahoo.test.ManualClock;
-
import com.yahoo.vespa.config.server.configchange.MockRestartAction;
import com.yahoo.vespa.config.server.configchange.RestartActions;
import com.yahoo.vespa.config.server.http.v2.PrepareResult;
@@ -36,6 +38,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Optional;
+import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
@@ -294,6 +297,24 @@ public class HostedDeployTest {
assertThat(actions.get(0).getMessages(), equalTo(ImmutableSet.of("change", "other change")));
}
+ @Test
+ public void testDeployWithClusterRotations() {
+ CountingModelFactory modelFactory = DeployTester.createModelFactory(Version.fromString("4.5.6"), Clock.systemUTC());
+ DeployTester tester = new DeployTester(Collections.singletonList(modelFactory), createConfigserverConfig());
+ ApplicationId applicationId = tester.applicationId();
+
+ tester.deployApp("src/test/apps/hosted/", "4.5.6", Instant.now());
+ Set<HostSpec> containers = tester.getAllocatedHostsOf(applicationId).getHosts().stream()
+ .filter(h -> h.membership().get().cluster().type() == ClusterSpec.Type.container)
+ .collect(Collectors.toSet());
+ assertFalse("Allocated container hosts", containers.isEmpty());
+
+ Set<RotationName> expected = Set.of(RotationName.from("eu-cluster"), RotationName.from("us-cluster"));
+ for (HostSpec container : containers) {
+ assertEquals(expected, container.membership().get().cluster().rotations());
+ }
+ }
+
private static ConfigserverConfig createConfigserverConfig() {
return new ConfigserverConfig(new ConfigserverConfig.Builder()
.configServerDBDir(Files.createTempDir().getAbsolutePath())