diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2017-08-29 15:27:59 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-29 15:27:59 +0200 |
commit | 30e27ec2e67439287b2e488a6bbddbfa97ecd4fa (patch) | |
tree | 4361ab47557b8d331d5a989333baf17534143d67 /controller-server | |
parent | 2ea532505a5febacab4efff7ed165f05899d317e (diff) | |
parent | 44cd92e6ff96b2e40c990fc18cad8c56a85fe73d (diff) |
Merge pull request #3252 from vespa-engine/mpolden/application-serialization-fix
Application serialization fix
Diffstat (limited to 'controller-server')
3 files changed, 14 insertions, 15 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java index 3cd70c1ec46..ce1fee4dd14 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java @@ -119,6 +119,9 @@ public class DeploymentTrigger { if ( ! application.deploying().isPresent() ) continue; if (application.deploymentJobs().hasFailures()) continue; if (application.deploymentJobs().inProgress()) continue; + if (application.deploymentSpec().steps().stream().noneMatch(step -> step instanceof DeploymentSpec.Delay)) { + continue; // Application does not have any delayed deployments + } Optional<JobStatus> lastSuccessfulJob = application.deploymentJobs().jobStatus().values() .stream() @@ -131,7 +134,7 @@ public class DeploymentTrigger { try (Lock lock = applications().lock(application.id())) { application = applications().require(application.id()); application = trigger(nextAfter(lastSuccessfulJob.get().type(), application), application, - "Delayed by deployment spec", lock); + "Resuming delayed deployment", lock); applications().store(application, lock); } } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java index 014c63a6779..96c2f8ebbb9 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java @@ -12,6 +12,7 @@ import com.yahoo.slime.ArrayTraverser; import com.yahoo.slime.Cursor; import com.yahoo.slime.Inspector; import com.yahoo.slime.Slime; +import com.yahoo.slime.Type; import com.yahoo.vespa.config.SlimeUtils; import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.application.ApplicationRevision; @@ -229,7 +230,8 @@ public class ApplicationSerializer { } private Optional<Change> changeFromSlime(Inspector object) { - if ( ! object.valid()) return Optional.empty(); + // TODO: Remove NIX check after Sep 2017 + if ( ! object.valid() || object.type() == Type.NIX) return Optional.empty(); Inspector versionFieldValue = object.field(versionField); if (versionFieldValue.valid()) return Optional.of(new Change.VersionChange(Version.fromString(versionFieldValue.asString()))); @@ -241,14 +243,7 @@ public class ApplicationSerializer { private List<JobStatus> jobStatusListFromSlime(Inspector array) { List<JobStatus> jobStatusList = new ArrayList<>(); - array.traverse((ArrayTraverser) (int i, Inspector item) -> { - // TODO: This zone has been removed. Remove after Aug 2017 - String jobId = item.field(jobTypeField).asString(); - if ("production-ap-aue-1".equals(jobId)) { - return; - } - jobStatusList.add(jobStatusFromSlime(item)); - }); + array.traverse((ArrayTraverser) (int i, Inspector item) -> jobStatusList.add(jobStatusFromSlime(item))); return jobStatusList; } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java index 645e38d0f2d..836ea246f1a 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java @@ -133,9 +133,9 @@ public class ApplicationSerializerTest { assertEquals(JobError.unknown, applicationWithFailingJob.deploymentJobs().jobStatus().get(DeploymentJobs.JobType.systemTest).jobError().get()); } - // TODO: Remove after Aug 2017 + // TODO: Tests NIX check: Remove after Sep 2017 @Test - public void serializeWithRemovedZone() throws Exception { + public void serializeLegacyDeployingField() { String json = "{\n" + " \"id\": \"t1:a1:i1\",\n" + " \"deploymentSpecField\": \"<deployment version='1.0'/>\",\n" + @@ -149,7 +149,7 @@ public class ApplicationSerializerTest { " \"lastTriggered\": 8\n" + " },\n" + " {\n" + - " \"jobType\": \"production-ap-aue-1\",\n" + + " \"jobType\": \"production-us-west-1\",\n" + " \"version\": \"5.6.7\",\n" + " \"completionTime\": 7,\n" + " \"lastTriggered\": 8\n" + @@ -162,10 +162,11 @@ public class ApplicationSerializerTest { " }\n" + " ],\n" + " \"selfTriggering\": false\n" + - " }\n" + + " },\n" + + " \"deployingField\": null\n" + "}\n"; Application app = applicationSerializer.fromSlime(SlimeUtils.jsonToSlime(json.getBytes(StandardCharsets.UTF_8))); - assertEquals(2, app.deploymentJobs().jobStatus().size()); + assertFalse("No change present", app.deploying().isPresent()); } private Slime applicationSlime(boolean error) { |