diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2019-09-30 13:03:01 +0200 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2019-09-30 13:03:01 +0200 |
commit | 72cd6dd731053752b081c0e0ded263bfdf5cc5af (patch) | |
tree | 2f3f0c4828a478a97478e5549049bb8d3b0a1fa2 /controller-server | |
parent | 0b6dbe0614cf19e76a41d293239310be7cb64b30 (diff) |
Simplify using ImmutableSortedMap
Diffstat (limited to 'controller-server')
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) { |