diff options
5 files changed, 34 insertions, 47 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java index 031fce88354..113a4512331 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java @@ -42,11 +42,8 @@ public class ClusterMembership { } } - ClusterSpec.Type type = ClusterSpec.Type.valueOf(components[0]); - if (type.isContent()) { - stateful = true; // TODO(mpolden): Serialization compatibility. Remove after December 2020 - } - this.cluster = ClusterSpec.specification(type, ClusterSpec.Id.from(components[1])) + this.cluster = ClusterSpec.specification(ClusterSpec.Type.valueOf(components[0]), + ClusterSpec.Id.from(components[1])) .group(ClusterSpec.Group.from(Integer.parseInt(components[2]))) .vespaVersion(vespaVersion) .exclusive(exclusive) diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/ClusterMembershipTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/ClusterMembershipTest.java index fc1cdd74169..3bbdf7cff28 100644 --- a/config-provisioning/src/test/java/com/yahoo/config/provision/ClusterMembershipTest.java +++ b/config-provisioning/src/test/java/com/yahoo/config/provision/ClusterMembershipTest.java @@ -40,7 +40,7 @@ public class ClusterMembershipTest { } { Optional<DockerImage> dockerImageRepo = Optional.of(DockerImage.fromString("docker.foo.com:4443/vespa/bar")); - ClusterMembership instance = ClusterMembership.from("combined/id1/4/37/exclusive/containerId1", Vtag.currentVersion, dockerImageRepo); + ClusterMembership instance = ClusterMembership.from("combined/id1/4/37/exclusive/stateful/containerId1", Vtag.currentVersion, dockerImageRepo); ClusterMembership serialized = ClusterMembership.from(instance.stringValue(), Vtag.currentVersion, dockerImageRepo); assertTrue(serialized.cluster().isStateful()); assertEquals(instance, serialized); @@ -56,14 +56,6 @@ public class ClusterMembershipTest { } @Test - public void testLegacyFormat() { // TODO(mpolden): Remove after December 2020 - ClusterMembership instance = ClusterMembership.from("content/id1/4/37/exclusive", Vtag.currentVersion, Optional.empty()); - ClusterMembership serialized = ClusterMembership.from(instance.stringValue(), Vtag.currentVersion, Optional.empty()); - assertEquals(instance, serialized); - assertTrue(serialized.cluster().isStateful()); - } - - @Test public void testServiceInstance() { ClusterSpec cluster = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("id1")).vespaVersion("6.42").build(); assertContentService(ClusterMembership.from(cluster, 37)); @@ -80,7 +72,7 @@ public class ClusterMembershipTest { @Test public void testServiceInstanceWithGroupFromString() { - assertContentServiceWithGroup(ClusterMembership.from("content/id1/4/37", Vtag.currentVersion, Optional.empty())); + assertContentServiceWithGroup(ClusterMembership.from("content/id1/4/37/stateful", Vtag.currentVersion, Optional.empty())); } @Test @@ -100,7 +92,7 @@ public class ClusterMembershipTest { @Test public void testServiceInstanceWithGroupAndRetireFromString() { - assertContentServiceWithGroupAndRetire(ClusterMembership.from("content/id1/4/37/retired", Vtag.currentVersion, Optional.empty())); + assertContentServiceWithGroupAndRetire(ClusterMembership.from("content/id1/4/37/retired/stateful", Vtag.currentVersion, Optional.empty())); } private void assertContainerService(ClusterMembership instance) { diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/HostFilterTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/HostFilterTest.java index 66ca1170487..91d4ae17042 100644 --- a/config-provisioning/src/test/java/com/yahoo/config/provision/HostFilterTest.java +++ b/config-provisioning/src/test/java/com/yahoo/config/provision/HostFilterTest.java @@ -4,13 +4,11 @@ package com.yahoo.config.provision; import com.yahoo.component.Vtag; import org.junit.Test; -import java.util.Arrays; import java.util.Collections; import java.util.Optional; -import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; /** * @author bratseth @@ -29,20 +27,20 @@ public class HostFilterTest { assertFalse(type.matches("anyhost", "flavor", membership("container/anytype/0/0"))); assertFalse(id.matches("anyhost", "flavor", membership("container/anytype/0/0"))); - assertTrue( all.matches("anyhost", "flavor", membership("content/anytype/0/0"))); - assertFalse(hostname.matches("anyhost", "flavor", membership("content/anytype/0/0"))); - assertTrue( type.matches("anyhost", "flavor", membership("content/anytype/0/0"))); - assertFalse( id.matches("anyhost", "flavor", membership("content/anytype/0/0"))); + assertTrue( all.matches("anyhost", "flavor", membership("content/anytype/0/0/stateful"))); + assertFalse(hostname.matches("anyhost", "flavor", membership("content/anytype/0/0/stateful"))); + assertTrue( type.matches("anyhost", "flavor", membership("content/anytype/0/0/stateful"))); + assertFalse( id.matches("anyhost", "flavor", membership("content/anytype/0/0/stateful"))); - assertTrue( all.matches("host1", "flavor", membership("content/anytype/0/0"))); - assertTrue( hostname.matches("host1", "flavor", membership("content/anytype/0/0"))); - assertTrue( type.matches("host1", "flavor", membership("content/anytype/0/0"))); - assertFalse( id.matches("host1", "flavor", membership("content/anytype/0/0"))); + assertTrue( all.matches("host1", "flavor", membership("content/anytype/0/0/stateful"))); + assertTrue( hostname.matches("host1", "flavor", membership("content/anytype/0/0/stateful"))); + assertTrue( type.matches("host1", "flavor", membership("content/anytype/0/0/stateful"))); + assertFalse( id.matches("host1", "flavor", membership("content/anytype/0/0/stateful"))); - assertTrue( all.matches("host1", "flavor", membership("content/type1/0/0"))); - assertTrue( hostname.matches("host1", "flavor", membership("content/type1/0/0"))); - assertTrue( type.matches("host1", "flavor", membership("content/type1/0/0"))); - assertTrue( id.matches("host1", "flavor", membership("content/type1/0/0"))); + assertTrue( all.matches("host1", "flavor", membership("content/type1/0/0/stateful"))); + assertTrue( hostname.matches("host1", "flavor", membership("content/type1/0/0/stateful"))); + assertTrue( type.matches("host1", "flavor", membership("content/type1/0/0/stateful"))); + assertTrue( id.matches("host1", "flavor", membership("content/type1/0/0/stateful"))); } @Test @@ -52,22 +50,22 @@ public class HostFilterTest { Collections.singletonList(ClusterSpec.Type.content), Collections.singletonList(ClusterSpec.Id.from("type1"))); - assertFalse(typeAndId.matches("anyhost", "flavor", membership("content/anyType/0/0"))); + assertFalse(typeAndId.matches("anyhost", "flavor", membership("content/anyType/0/0/stateful"))); assertFalse(typeAndId.matches("anyhost", "flavor", membership("container/type1/0/0"))); - assertTrue(typeAndId.matches("anyhost", "flavor", membership("content/type1/0/0"))); + assertTrue(typeAndId.matches("anyhost", "flavor", membership("content/type1/0/0/stateful"))); } @Test public void testMultiConditionFilterFromStrings() { HostFilter typeAndId = HostFilter.from("host1 host2, host3,host4", " , ,flavor", null, "type1 "); - assertFalse(typeAndId.matches("anotherhost", "flavor", membership("content/type1/0/0"))); - assertTrue(typeAndId.matches("host1", "flavor", membership("content/type1/0/0"))); - assertTrue(typeAndId.matches("host2", "flavor", membership("content/type1/0/0"))); - assertTrue(typeAndId.matches("host3", "flavor", membership("content/type1/0/0"))); - assertTrue(typeAndId.matches("host4", "flavor", membership("content/type1/0/0"))); - assertFalse(typeAndId.matches("host1", "flavor", membership("content/type2/0/0"))); - assertFalse(typeAndId.matches("host4", "differentflavor", membership("content/type1/0/0"))); + assertFalse(typeAndId.matches("anotherhost", "flavor", membership("content/type1/0/0/stateful"))); + assertTrue(typeAndId.matches("host1", "flavor", membership("content/type1/0/0/stateful"))); + assertTrue(typeAndId.matches("host2", "flavor", membership("content/type1/0/0/stateful"))); + assertTrue(typeAndId.matches("host3", "flavor", membership("content/type1/0/0/stateful"))); + assertTrue(typeAndId.matches("host4", "flavor", membership("content/type1/0/0/stateful"))); + assertFalse(typeAndId.matches("host1", "flavor", membership("content/type2/0/0/stateful"))); + assertFalse(typeAndId.matches("host4", "differentflavor", membership("content/type1/0/0/stateful"))); } private Optional<ClusterMembership> membership(String membershipString) { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java index 86507508e68..5dfd1193581 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java @@ -226,7 +226,7 @@ public class CapacityCheckerTester { return m; } public String toString() { - return String.format("%s/%s/%s/%d%s", clustertype, clusterid, group, index, retired ? "/retired" : ""); + return String.format("%s/%s/%s/%d%s%s", clustertype, clusterid, group, index, retired ? "/retired" : "", clustertype.isContent() ? "/stateful" : ""); } } static class OwnerModel { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java index 8b9d60aeaf4..e5333ea4186 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java @@ -79,7 +79,7 @@ public class NodeSerializerTest { node = node.allocate(ApplicationId.from(TenantName.from("myTenant"), ApplicationName.from("myApplication"), InstanceName.from("myInstance")), - ClusterMembership.from("content/myId/0/0", Vtag.currentVersion, Optional.empty()), + ClusterMembership.from("content/myId/0/0/stateful", Vtag.currentVersion, Optional.empty()), requestedResources, clock.instant()); assertEquals(1, node.history().events().size()); @@ -134,7 +134,7 @@ public class NodeSerializerTest { " \"applicationId\" : \"myApplication\",\n" + " \"tenantId\" : \"myTenant\",\n" + " \"instanceId\" : \"myInstance\",\n" + - " \"serviceId\" : \"content/myId/0/0\",\n" + + " \"serviceId\" : \"content/myId/0/0/stateful\",\n" + " \"restartGeneration\" : 3,\n" + " \"currentRestartGeneration\" : 4,\n" + " \"removable\" : true,\n" + @@ -167,7 +167,7 @@ public class NodeSerializerTest { node = node.allocate(ApplicationId.from(TenantName.from("myTenant"), ApplicationName.from("myApplication"), InstanceName.from("myInstance")), - ClusterMembership.from("content/myId/0/0", Vtag.currentVersion, Optional.empty()), + ClusterMembership.from("content/myId/0/0/stateful", Vtag.currentVersion, Optional.empty()), node.flavor().resources(), clock.instant()); assertEquals(1, node.history().events().size()); @@ -217,7 +217,7 @@ public class NodeSerializerTest { node = node.allocate(ApplicationId.from(TenantName.from("myTenant"), ApplicationName.from("myApplication"), InstanceName.from("myInstance")), - ClusterMembership.from("content/myId/0/0", Vtag.currentVersion, Optional.empty()), + ClusterMembership.from("content/myId/0/0/stateful", Vtag.currentVersion, Optional.empty()), node.flavor().resources(), clock.instant()); @@ -315,7 +315,7 @@ public class NodeSerializerTest { " \"hostname\" : \"myHostname\",\n" + " \"ipAddresses\" : [\"127.0.0.1\"],\n" + " \"instance\": {\n" + - " \"serviceId\": \"content/myId/0/0\",\n" + + " \"serviceId\": \"content/myId/0/0/stateful\",\n" + " \"wantedVespaVersion\": \"6.42.2\"\n" + " }\n" + "}"; @@ -408,7 +408,7 @@ public class NodeSerializerTest { node = node.allocate(ApplicationId.from(TenantName.from("myTenant"), ApplicationName.from("myApplication"), InstanceName.from("myInstance")), - ClusterMembership.from("content/myId/0/0", Vtag.currentVersion, Optional.empty()), + ClusterMembership.from("content/myId/0/0/stateful", Vtag.currentVersion, Optional.empty()), node.flavor().resources(), clock.instant()); assertTrue(node.allocation().isPresent()); |