summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@oath.com>2018-05-28 16:35:06 +0200
committerValerij Fredriksen <valerijf@oath.com>2018-05-28 16:35:06 +0200
commit3586bd9b5dae8360da8b420fd731a9deadf0d2d8 (patch)
tree6bdda8a569854a23ab995f6686821ec4d3a6466c /controller-server
parent7ff8489a90a5701361d7de5efe7f60bb8a7dd834 (diff)
Ignore removed job types
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java9
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java13
2 files changed, 15 insertions, 7 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java
index 49498786bb8..d3193fd486d 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java
@@ -180,10 +180,15 @@ public class DeploymentJobs {
return zone(system).map(ZoneId::region);
}
- public static JobType fromJobName(String jobName) {
+ public static Optional<JobType> fromOptionalJobName(String jobName) {
return Stream.of(values())
.filter(jobType -> jobType.jobName.equals(jobName))
- .findAny().orElseThrow(() -> new IllegalArgumentException("Unknown job name '" + jobName + "'"));
+ .findAny();
+ }
+
+ public static JobType fromJobName(String jobName) {
+ return fromOptionalJobName(jobName)
+ .orElseThrow(() -> new IllegalArgumentException("Unknown job name '" + jobName + "'"));
}
/** Returns the job type for the given zone */
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 531078b7eca..21eea21ba68 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
@@ -382,22 +382,25 @@ public class ApplicationSerializer {
private List<JobStatus> jobStatusListFromSlime(Inspector array) {
List<JobStatus> jobStatusList = new ArrayList<>();
- array.traverse((ArrayTraverser) (int i, Inspector item) -> jobStatusList.add(jobStatusFromSlime(item)));
+ array.traverse((ArrayTraverser) (int i, Inspector item) -> jobStatusFromSlime(item).ifPresent(jobStatusList::add));
return jobStatusList;
}
- private JobStatus jobStatusFromSlime(Inspector object) {
- DeploymentJobs.JobType jobType = DeploymentJobs.JobType.fromJobName(object.field(jobTypeField).asString());
+ private Optional<JobStatus> jobStatusFromSlime(Inspector object) {
+ // if the job type has since been removed, ignore it
+ Optional<DeploymentJobs.JobType> jobType =
+ DeploymentJobs.JobType.fromOptionalJobName(object.field(jobTypeField).asString());
+ if (! jobType.isPresent()) return Optional.empty();
Optional<JobError> jobError = Optional.empty();
if (object.field(errorField).valid())
jobError = Optional.of(JobError.valueOf(object.field(errorField).asString()));
- return new JobStatus(jobType, jobError,
+ return Optional.of(new JobStatus(jobType.get(), jobError,
jobRunFromSlime(object.field(lastTriggeredField)),
jobRunFromSlime(object.field(lastCompletedField)),
jobRunFromSlime(object.field(firstFailingField)),
- jobRunFromSlime(object.field(lastSuccessField)));
+ jobRunFromSlime(object.field(lastSuccessField))));
}
private Optional<JobStatus.JobRun> jobRunFromSlime(Inspector object) {