summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2017-08-29 15:27:59 +0200
committerGitHub <noreply@github.com>2017-08-29 15:27:59 +0200
commit30e27ec2e67439287b2e488a6bbddbfa97ecd4fa (patch)
tree4361ab47557b8d331d5a989333baf17534143d67 /controller-server
parent2ea532505a5febacab4efff7ed165f05899d317e (diff)
parent44cd92e6ff96b2e40c990fc18cad8c56a85fe73d (diff)
Merge pull request #3252 from vespa-engine/mpolden/application-serialization-fix
Application serialization fix
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java5
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java13
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java11
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) {