diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-09-09 11:35:57 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-09-09 11:35:57 +0200 |
commit | e4cfdab7d93fa14b933cbd91ec9d6b57073382dd (patch) | |
tree | 7c106fc22415fe5c75b20b0082134808477aecf5 /node-repository | |
parent | 75997a3a0dd8797d076caaa6506e319385331bdd (diff) |
Correct isRemoved -> removed and add more tests
Diffstat (limited to 'node-repository')
2 files changed, 61 insertions, 27 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java index 4a525882cd4..7fb3abb5b8e 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java @@ -44,7 +44,7 @@ public class NodeSerializer { private static final String hostnameKey = "hostname"; private static final String openStackIdKey = "openStackId"; private static final String parentHostnameKey = "parentHostname"; - private static final String configurationKey ="configuration"; + private static final String configurationKey ="configuration"; // TODO: Remove when 6.31 is deployed everywhere private static final String historyKey = "history"; private static final String instanceKey = "instance"; // legacy name, TODO: change to allocation with backwards compat private static final String rebootGenerationKey = "rebootGeneration"; @@ -118,8 +118,8 @@ public class NodeSerializer { object.setLong(restartGenerationKey, allocation.restartGeneration().wanted()); object.setLong(currentRestartGenerationKey, allocation.restartGeneration().current()); object.setBool(removableKey, allocation.isRemovable()); - allocation.membership().cluster().dockerImage().ifPresent( dockerImage -> - object.setString(dockerImageKey, dockerImage)); + allocation.membership().cluster().dockerImage() + .ifPresent( dockerImage -> object.setString(dockerImageKey, dockerImage)); } private void toSlime(History history, Cursor array) { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java index 5892b28468c..934b465b624 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java @@ -99,13 +99,52 @@ public class SerializationTest { } @Test - public void testRebootAndRestartandTypeNoCurrentValuesSerialization() { + public void testRebootAndRestartAndTypeNoCurrentValuesSerialization() { String nodeData = "{\n" + " \"type\" : \"tenant\",\n" + + " \"rebootGeneration\" : 1,\n" + + " \"currentRebootGeneration\" : 2,\n" + + " \"flavor\" : \"large\",\n" + + " \"history\" : [\n" + + " {\n" + + " \"type\" : \"reserved\",\n" + + " \"at\" : 1444391402611\n" + + " }\n" + + " ],\n" + + " \"instance\" : {\n" + + " \"applicationId\" : \"myApplication\",\n" + + " \"tenantId\" : \"myTenant\",\n" + + " \"instanceId\" : \"myInstance\",\n" + + " \"serviceId\" : \"content/myId/0\",\n" + + " \"restartGeneration\" : 3,\n" + + " \"currentRestartGeneration\" : 4,\n" + + " \"removable\" : true\n" + + " },\n" + + " \"openStackId\" : \"myId\",\n" + + " \"hostname\" : \"myHostname\"\n" + + "}"; + + Node node = nodeSerializer.fromJson(Node.State.provisioned, Utf8.toBytes(nodeData)); + + assertEquals("large", node.flavor().canonicalName()); + assertEquals(1, node.status().reboot().wanted()); + assertEquals(2, node.status().reboot().current()); + assertEquals(3, node.allocation().get().restartGeneration().wanted()); + assertEquals(4, node.allocation().get().restartGeneration().current()); + assertTrue(node.allocation().get().isRemovable()); + assertEquals(Node.Type.tenant, node.type()); + } + + // TODO: Remove when 6.31 is deployed everywhere + @Test + public void testLegacyFlavor() { + String nodeData = + "{\n" + + " \"type\" : \"tenant\",\n" + " \"rebootGeneration\" : 0,\n" + " \"configuration\" : {\n" + - " \"flavor\" : \"default\"\n" + + " \"flavor\" : \"large\"\n" + " },\n" + " \"history\" : [\n" + " {\n" + @@ -119,19 +158,15 @@ public class SerializationTest { " \"instanceId\" : \"myInstance\",\n" + " \"serviceId\" : \"content/myId/0\",\n" + " \"restartGeneration\" : 0,\n" + - " \"isRemovable\" : false\n" + + " \"removable\" : false\n" + " },\n" + " \"openStackId\" : \"myId\",\n" + - " \"hostname\" : \"myHostname\"\n" + + " \"hostname\" : \"myHostname\",\n" + + " \"hardwareFailure\" : true\n" + "}"; Node node = nodeSerializer.fromJson(Node.State.provisioned, Utf8.toBytes(nodeData)); - - assertEquals(0, node.status().reboot().wanted()); - assertEquals(0, node.status().reboot().current()); - assertEquals(0, node.allocation().get().restartGeneration().wanted()); - assertEquals(0, node.allocation().get().restartGeneration().current()); - assertEquals(Node.Type.tenant, node.type()); + assertEquals("large", node.flavor().canonicalName()); } // TODO: Remove when 6.28 is deployed everywhere @@ -156,7 +191,7 @@ public class SerializationTest { " \"instanceId\" : \"myInstance\",\n" + " \"serviceId\" : \"content/myId/0\",\n" + " \"restartGeneration\" : 0,\n" + - " \"isRemovable\" : false\n" + + " \"removable\" : false\n" + " },\n" + " \"openStackId\" : \"myId\",\n" + " \"hostname\" : \"myHostname\",\n" + @@ -189,7 +224,7 @@ public class SerializationTest { " \"instanceId\" : \"myInstance\",\n" + " \"serviceId\" : \"content/myId/0\",\n" + " \"restartGeneration\" : 0,\n" + - " \"isRemovable\" : false\n" + + " \"removable\" : false\n" + " },\n" + " \"openStackId\" : \"myId\",\n" + " \"hostname\" : \"myHostname\",\n" + @@ -228,7 +263,7 @@ public class SerializationTest { @Test public void testAssimilatedDeserialization() { - Node node = nodeSerializer.fromJson(Node.State.active, "{\"type\":\"tenant\",\"hostname\":\"assimilate2.vespahosted.corp.bf1.yahoo.com\",\"openStackId\":\"\",\"configuration\":{\"flavor\":\"ugccloud-container\"},\"instance\":{\"tenantId\":\"by_mortent\",\"applicationId\":\"ugc-assimilate\",\"instanceId\":\"default\",\"serviceId\":\"container/ugccloud-container/0/0\",\"restartGeneration\":0}}\n".getBytes()); + Node node = nodeSerializer.fromJson(Node.State.active, "{\"type\":\"tenant\",\"hostname\":\"assimilate2.vespahosted.corp.bf1.yahoo.com\",\"openStackId\":\"\",\"flavor\":\"ugccloud-container\",\"instance\":{\"tenantId\":\"by_mortent\",\"applicationId\":\"ugc-assimilate\",\"instanceId\":\"default\",\"serviceId\":\"container/ugccloud-container/0/0\",\"restartGeneration\":0}}\n".getBytes()); assertEquals(0, node.history().events().size()); assertTrue(node.allocation().isPresent()); assertEquals("ugccloud-container", node.allocation().get().membership().cluster().id().value()); @@ -242,10 +277,10 @@ public class SerializationTest { public void testSetFailCount() { Node node = createNode(); node = node.allocate(ApplicationId.from(TenantName.from("myTenant"), - ApplicationName.from("myApplication"), - InstanceName.from("myInstance")), - ClusterMembership.from("content/myId/0/0", Optional.empty()), - clock.instant()); + ApplicationName.from("myApplication"), + InstanceName.from("myInstance")), + ClusterMembership.from("content/myId/0/0", Optional.empty()), + clock.instant()); node = node.with(node.status().setFailCount(0)); Node copy2 = nodeSerializer.fromJson(Node.State.provisioned, nodeSerializer.toJson(node)); @@ -261,13 +296,12 @@ public class SerializationTest { ClusterMembership clusterMembership = ClusterMembership.from("content/myId/0", dockerImage); Node nodeWithAllocation = node.with( - new Allocation( - ApplicationId.from(TenantName.from("myTenant"), - ApplicationName.from("myApplication"), - InstanceName.from("myInstance")), - clusterMembership, - new Generation(0, 0), - false)); + new Allocation(ApplicationId.from(TenantName.from("myTenant"), + ApplicationName.from("myApplication"), + InstanceName.from("myInstance")), + clusterMembership, + new Generation(0, 0), + false)); Node deserializedNode = nodeSerializer.fromJson(State.provisioned, nodeSerializer.toJson(nodeWithAllocation)); assertEquals(dockerImage, deserializedNode.allocation().get().membership().cluster().dockerImage()); |