aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2019-09-30 13:03:01 +0200
committerJon Marius Venstad <venstad@gmail.com>2019-09-30 13:03:01 +0200
commit72cd6dd731053752b081c0e0ded263bfdf5cc5af (patch)
tree2f3f0c4828a478a97478e5549049bb8d3b0a1fa2 /controller-server
parent0b6dbe0614cf19e76a41d293239310be7cb64b30 (diff)
Simplify using ImmutableSortedMap
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java8
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java13
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/CuratorDb.java29
3 files changed, 13 insertions, 37 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java
index 6b297e51134..61d982a92de 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.hosted.controller;
import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSortedMap;
import com.yahoo.component.Version;
import com.yahoo.config.application.api.DeploymentSpec;
import com.yahoo.config.application.api.ValidationOverrides;
@@ -27,6 +28,7 @@ import java.util.Objects;
import java.util.Optional;
import java.util.OptionalInt;
import java.util.OptionalLong;
+import java.util.function.Function;
import java.util.stream.Collectors;
/**
@@ -80,11 +82,7 @@ public class Application {
this.pemDeployKey = Objects.requireNonNull(pemDeployKey, "pemDeployKey cannot be null");
this.projectId = Objects.requireNonNull(projectId, "projectId cannot be null");
this.internal = internal;
- this.instances = ImmutableMap.copyOf((Iterable<Map.Entry<InstanceName, Instance>>)
- instances.stream()
- .map(instance -> Map.entry(instance.name(), instance))
- .sorted(Comparator.comparing(Map.Entry::getKey))
- ::iterator);
+ this.instances = ImmutableSortedMap.copyOf(instances.stream().collect(Collectors.toMap(Instance::name, Function.identity())));
}
public TenantAndApplicationId id() { return id; }
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 1bba1baa91b..376048143d9 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
@@ -4,17 +4,17 @@ package com.yahoo.vespa.hosted.controller.deployment;
import com.yahoo.config.application.api.DeploymentSpec;
import com.yahoo.config.application.api.DeploymentSpec.Step;
import com.yahoo.config.provision.ApplicationId;
+import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.log.LogLevel;
import com.yahoo.vespa.hosted.controller.Application;
-import com.yahoo.vespa.hosted.controller.Instance;
import com.yahoo.vespa.hosted.controller.ApplicationController;
import com.yahoo.vespa.hosted.controller.Controller;
+import com.yahoo.vespa.hosted.controller.Instance;
import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId;
import com.yahoo.vespa.hosted.controller.api.integration.BuildService;
import com.yahoo.vespa.hosted.controller.api.integration.BuildService.JobState;
import com.yahoo.vespa.hosted.controller.api.integration.deployment.ApplicationVersion;
import com.yahoo.vespa.hosted.controller.api.integration.deployment.JobType;
-import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.vespa.hosted.controller.application.ApplicationList;
import com.yahoo.vespa.hosted.controller.application.Change;
import com.yahoo.vespa.hosted.controller.application.Deployment;
@@ -43,7 +43,6 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import static com.yahoo.vespa.hosted.controller.api.integration.BuildService.BuildJob;
-import static com.yahoo.vespa.hosted.controller.api.integration.BuildService.JobState.disabled;
import static com.yahoo.vespa.hosted.controller.api.integration.BuildService.JobState.idle;
import static com.yahoo.vespa.hosted.controller.api.integration.BuildService.JobState.queued;
import static com.yahoo.vespa.hosted.controller.api.integration.BuildService.JobState.running;
@@ -71,6 +70,14 @@ import static java.util.stream.Collectors.toList;
*/
public class DeploymentTrigger {
+ /*
+ * Instance orchestration TODO jonmv.
+ * Store new production application packages under non-instance path
+ * Read production packages from non-instance path, with fallback
+ * Deprecate and redirect some instance qualified paths in application/v4
+ * Orchestrate deployment across instances.
+ */
+
public static final Duration maxPause = Duration.ofDays(3);
private final static Logger log = Logger.getLogger(DeploymentTrigger.class.getName());
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/CuratorDb.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/CuratorDb.java
index df0fc4b4f36..9501ac5a7f9 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/CuratorDb.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/CuratorDb.java
@@ -378,35 +378,6 @@ public class CuratorDb {
writeApplication(application);
}
- /**
- * Migration plan:
- *
- * Add filter for reading only Instance from old application path RELEASED
- * Write Instance to instance and old application path RELEASED
- *
- * Lock on application level for instance mutations RELEASED
- *
- * Write Instance to instance and application and old application paths DONE TO CHANGE DONE
- * Read Instance from instance path DONE TO REMOVE DONE
- * Duplicate Application from Instance, with helper classes DONE
- * Write Application to instance and application and old application paths DONE TO CHANGE DONE
- * Read Application from instance path DONE TO REMOVE DONE
- * Use Application where applicable DONE !!!
- * Lock instances and application on same level: tenant + application DONE TO CHANGE DONE
- * When reading an application, read all instances, and aggregate them DONE
- * Write application with instances to application path DONE
- * Write all instances of an application to old application path DONE
- * Remove everything under instance root DONE
- * Stop locking applications on instance level DONE
- *
- * Read Application with instances from application path (with filter) DONE
- *
- * Stop writing Instance to old application path DONE
- * Remove unused parts of Instance (Used only for legacy serialization)
- * Store new production application packages under non-instance path
- * Read production packages from non-instance path, with fallback
- */
-
// -------------- Job Runs ------------------------------------------------
public void writeLastRun(Run run) {