diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2020-09-09 21:05:00 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-09 21:05:00 +0200 |
commit | ab846de9105f1868a0537cf8dab39b65d05e329a (patch) | |
tree | d234e597408be35840bed7fd6a589410adf28997 /config-provisioning/src/main | |
parent | d61eb7de6d4070293684dce5b6ea55138604b668 (diff) |
Revert "Remove deprecated methods and unnecessary compatibility code"
Diffstat (limited to 'config-provisioning/src/main')
7 files changed, 160 insertions, 3 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java index 45465fa91c4..779b6854e21 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java @@ -110,6 +110,11 @@ public class ClusterMembership { @Override public String toString() { return stringValue(); } + // TODO: Remove when 7.208 is the latest model in use + public static ClusterMembership from(String stringValue, Version vespaVersion) { + return new ClusterMembership(stringValue, vespaVersion, Optional.empty()); + } + public static ClusterMembership from(String stringValue, Version vespaVersion, Optional<DockerImage> dockerImageRepo) { return new ClusterMembership(stringValue, vespaVersion, dockerImageRepo); } diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java index 63a163135db..5b76163e97f 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java @@ -20,7 +20,7 @@ public final class ClusterSpec { /** The group id of these hosts, or empty if this is represents a request for hosts */ private final Optional<Group> groupId; private final Version vespaVersion; - private final boolean exclusive; + private boolean exclusive; private final Optional<Id> combinedId; private final Optional<DockerImage> dockerImageRepo; @@ -109,7 +109,7 @@ public final class ClusterSpec { public ClusterSpec build() { if (specification) { - if (groupId.isEmpty()) throw new IllegalArgumentException("groupId is required to be set when creating a ClusterSpec with specification()"); + if (groupId.isEmpty()) throw new IllegalArgumentException("groupIs is required to be set when creating a ClusterSpec with specification()"); if (vespaVersion == null) throw new IllegalArgumentException("vespaVersion is required to be set when creating a ClusterSpec with specification()"); } else if (groupId.isPresent()) throw new IllegalArgumentException("groupId is not allowed to be set when creating a ClusterSpec with request()"); @@ -141,6 +141,13 @@ public final class ClusterSpec { return this; } + @Deprecated + // TODO: Remove after 7.208 is oldest version in use + public Builder dockerImageRepo(Optional<String> dockerImageRepo) { + this.dockerImageRepo = dockerImageRepo.map(DockerImage::fromString); + return this; + } + public Builder dockerImageRepository(Optional<DockerImage> dockerImageRepo) { this.dockerImageRepo = dockerImageRepo; return this; diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java index 6a7158c1c21..50156d1baa1 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java @@ -109,6 +109,27 @@ public class Flavor { public Optional<FlavorOverrides> flavorOverrides() { return flavorOverrides; } + // TODO: Remove when models older than 7.226 are gone + @Deprecated + public double getMinMainMemoryAvailableGb() { return resources.memoryGb(); } + + // TODO: Remove when models older than 7.226 are gone + @Deprecated + public double getMinDiskAvailableGb() { return resources.diskGb(); } + + // TODO: Remove when models older than 7.226 are gone + @Deprecated + public boolean hasFastDisk() { return resources.diskSpeed() == NodeResources.DiskSpeed.fast; } + + // TODO: Remove when models older than 7.226 are gone + @Deprecated + public double getBandwidthGbps() { return resources.bandwidthGbps(); } + + /** Returns the number of cores available in this flavor, not scaled for speed. */ + // TODO: Remove when models older than 7.226 are gone + @Deprecated + public double getMinCpuCores() { return minCpuCores; } + public Type getType() { return type; } /** Convenience, returns getType() == Type.DOCKER_CONTAINER */ diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java b/config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java index 81c01cd2e7f..6bc3809bd54 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java @@ -3,6 +3,7 @@ package com.yahoo.config.provision; import com.yahoo.component.Version; +import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -82,6 +83,109 @@ public class HostSpec implements Comparable<HostSpec> { this.dockerImageRepo = Objects.requireNonNull(dockerImageRepo, "Docker image repo cannot be null but can be empty"); } + // TODO: Remove when models older than 7.226 are gone + @Deprecated + public HostSpec(String hostname, Optional<ClusterMembership> membership) { + this(hostname, new ArrayList<>(), + NodeResources.unspecified(), NodeResources.unspecified(), NodeResources.unspecified(), + membership, + Optional.empty(), Optional.empty(), Optional.empty()); + } + + // TODO: Remove when models older than 7.226 are gone + @Deprecated + public HostSpec(String hostname, ClusterMembership membership, Flavor flavor, Optional<Version> version) { + this(hostname, new ArrayList<>(), + flavor.resources(), flavor.resources(), NodeResources.unspecified(), + Optional.of(membership), version, Optional.empty(), Optional.empty()); + } + + // TODO: Remove when models older than 7.226 are gone + @Deprecated + public HostSpec(String hostname, List<String> aliases) { + this(hostname, aliases, + NodeResources.unspecified(), NodeResources.unspecified(), NodeResources.unspecified(), + Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()); + } + + // TODO: Remove when models older than 7.226 are gone + @Deprecated + public HostSpec(String hostname, List<String> aliases, Flavor flavor) { + this(hostname, aliases, + flavor.resources(), flavor.resources(), NodeResources.unspecified(), + Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()); + } + + // TODO: Remove when models older than 7.226 are gone + @Deprecated + public HostSpec(String hostname, List<String> aliases, ClusterMembership membership) { + this(hostname, aliases, + NodeResources.unspecified(), NodeResources.unspecified(), NodeResources.unspecified(), + Optional.of(membership), + Optional.empty(), Optional.empty(), Optional.empty()); + } + + // TODO: Remove when models older than 7.226 are gone + @Deprecated + public HostSpec(String hostname, List<String> aliases, Optional<Flavor> flavor, Optional<ClusterMembership> membership) { + this(hostname, aliases, + flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()), + flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()), + NodeResources.unspecified(), + membership, Optional.empty(), Optional.empty(), Optional.empty()); + } + + // TODO: Remove when models older than 7.226 are gone + @Deprecated + public HostSpec(String hostname, List<String> aliases, Optional<Flavor> flavor, + Optional<ClusterMembership> membership, Optional<Version> version) { + this(hostname, aliases, + flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()), + flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()), + NodeResources.unspecified(), + membership, version, + Optional.empty(), Optional.empty()); + } + + // TODO: Remove when models older than 7.226 are gone + @Deprecated + public HostSpec(String hostname, List<String> aliases, Optional<Flavor> flavor, + Optional<ClusterMembership> membership, Optional<Version> version, + Optional<NetworkPorts> networkPorts) { + this(hostname, aliases, + flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()), + flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()), + NodeResources.unspecified(), + membership, version, networkPorts, + Optional.empty()); + } + + // TODO: Remove when models older than 7.226 are gone + @Deprecated + public HostSpec(String hostname, List<String> aliases, + Optional<Flavor> flavor, + Optional<ClusterMembership> membership, Optional<Version> version, + Optional<NetworkPorts> networkPorts, Optional<NodeResources> requestedResources) { + this(hostname, aliases, + flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()), + flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()), + requestedResources.orElse(NodeResources.unspecified()), + membership, version, networkPorts, Optional.empty()); + } + + // TODO: Remove when models older than 7.226 are gone + @Deprecated + public HostSpec(String hostname, List<String> aliases, Optional<Flavor> flavor, + Optional<ClusterMembership> membership, Optional<Version> version, + Optional<NetworkPorts> networkPorts, Optional<NodeResources> requestedResources, + Optional<DockerImage> dockerImageRepo) { + this(hostname, aliases, + flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()), + flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()), + requestedResources.orElse(NodeResources.unspecified()), + membership, version, networkPorts, dockerImageRepo); + } + /** Returns the name identifying this host */ public String hostname() { return hostname; } @@ -95,7 +199,7 @@ public class HostSpec implements Comparable<HostSpec> { public NodeResources advertisedResources() { return advertisedResources; } /** A flavor contained the advertised resources of this host */ - // TODO: Remove when models older than 7.285 are gone + // TODO: Remove when models older than 7.226 are gone public Optional<Flavor> flavor() { return advertisedResources.asOptional().map(resources -> new Flavor(resources)); } diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/NodeType.java b/config-provisioning/src/main/java/com/yahoo/config/provision/NodeType.java index 1d4265172a3..fc267bbac29 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/NodeType.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/NodeType.java @@ -45,6 +45,12 @@ public enum NodeType { this.description = description; } + // TODO: Remove when no version older than 7.247 is live + @Deprecated + public boolean isDockerHost() { + return !childNodeTypes.isEmpty(); + } + public boolean isHost() { return !childNodeTypes.isEmpty(); } diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java index 708b02d6f30..f616174de1a 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java @@ -67,6 +67,10 @@ public class Zone { } /** Returns the current cloud */ + // TODO: For compatibility with older config models. Remove after June 2020 + public CloudName cloud() { return cloud.name(); } + + /** Returns the current cloud */ public Cloud getCloud() { return cloud; } /** Returns the current system */ diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializer.java b/config-provisioning/src/main/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializer.java index a071daa7427..e4913643e8d 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializer.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializer.java @@ -4,6 +4,7 @@ package com.yahoo.config.provision.serialization; import com.yahoo.config.provision.AllocatedHosts; import com.yahoo.config.provision.ClusterMembership; import com.yahoo.config.provision.DockerImage; +import com.yahoo.config.provision.Flavor; import com.yahoo.config.provision.HostSpec; import com.yahoo.config.provision.NodeResources; import com.yahoo.slime.ArrayTraverser; @@ -90,6 +91,7 @@ public class AllocatedHostsSerializer { object.setString(hostSpecDockerImageRepoKey, repo.repository()); }); }); + host.flavor().ifPresent(flavor -> toSlime(flavor, object)); // TODO: Remove this line when 7.272 has been released toSlime(host.realResources(), object.setObject(realResourcesKey)); toSlime(host.advertisedResources(), object.setObject(advertisedResourcesKey)); host.requestedResources().ifPresent(resources -> toSlime(resources, object.setObject(requestedResourcesKey))); @@ -104,6 +106,13 @@ public class AllocatedHostsSerializer { aliases.addString(alias); } + private static void toSlime(Flavor flavor, Cursor object) { + if (flavor.isConfigured()) + object.setString(flavorKey, flavor.name()); + else + toSlime(flavor.resources(), object.setObject(resourcesKey)); + } + private static void toSlime(NodeResources resources, Cursor resourcesObject) { resourcesObject.setDouble(vcpuKey, resources.vcpu()); resourcesObject.setDouble(memoryKey, resources.memoryGb()); @@ -185,6 +194,7 @@ public class AllocatedHostsSerializer { } private static NodeResources.StorageType storageTypeFromSlime(Inspector storageType) { + if ( ! storageType.valid()) return NodeResources.StorageType.getDefault(); // TODO: Remove this line after December 2019 switch (storageType.asString()) { case "remote" : return NodeResources.StorageType.remote; case "local" : return NodeResources.StorageType.local; |