aboutsummaryrefslogtreecommitdiffstats
path: root/config-provisioning/src/main/java/com/yahoo/config/provision/serialization
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-05-25 10:27:35 +0200
committerJon Bratseth <bratseth@gmail.com>2020-05-25 10:27:35 +0200
commit5d0663a1f2eddb94b01d6ef09ea5cb8d149d4ab0 (patch)
treeb0a024b4129cb4d24877cc5b0ecd01d881983ea6 /config-provisioning/src/main/java/com/yahoo/config/provision/serialization
parent3574f64e44a9d0ff9414cf1ff0566bb483a94260 (diff)
Revert "Merge pull request #13353 from vespa-engine/revert-13348-bratseth/real-resources-in-model"
This reverts commit 413ea623b5033593c2f2fe9951e1a685c8ff9dfc, reversing changes made to 5c0bfb06784075ac72c7891b7dce6454d85bdff8.
Diffstat (limited to 'config-provisioning/src/main/java/com/yahoo/config/provision/serialization')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializer.java61
1 files changed, 42 insertions, 19 deletions
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 9ba26be072c..96b189cefe6 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
@@ -45,6 +45,9 @@ public class AllocatedHostsSerializer {
private static final String aliasesKey = "aliases";
private static final String hostSpecMembershipKey = "membership";
+ private static final String realResourcesKey = "realResources";
+ private static final String advertisedResourcesKey = "advertisedResources";
+
// Flavor can be removed when all allocated nodes are docker nodes
private static final String flavorKey = "flavor";
@@ -90,7 +93,9 @@ public class AllocatedHostsSerializer {
object.setString(hostSpecDockerImageRepoKey, repo.repository());
});
});
- host.flavor().ifPresent(flavor -> toSlime(flavor, object));
+ host.flavor().ifPresent(flavor -> toSlime(flavor, object)); // TODO: Remove this line after June 2020
+ toSlime(host.realResources(), object.setObject(realResourcesKey));
+ toSlime(host.advertisedResources(), object.setObject(advertisedResourcesKey));
host.requestedResources().ifPresent(resources -> toSlime(resources, object.setObject(requestedResourcesKey)));
host.version().ifPresent(version -> object.setString(hostSpecCurrentVespaVersionKey, version.toFullString()));
host.networkPorts().ifPresent(ports -> NetworkPortsSerializer.toSlime(ports, object.setArray(hostSpecNetworkPortsKey)));
@@ -133,18 +138,25 @@ public class AllocatedHostsSerializer {
}
private static HostSpec hostFromSlime(Inspector object, Optional<NodeFlavors> nodeFlavors) {
- return new HostSpec(object.field(hostSpecHostNameKey).asString(),
- aliasesFromSlime(object),
- flavorFromSlime(object, nodeFlavors),
- object.field(hostSpecMembershipKey).valid() ? Optional.of(membershipFromSlime(object)) : Optional.empty(),
- optionalString(object.field(hostSpecCurrentVespaVersionKey)).map(com.yahoo.component.Version::new),
- NetworkPortsSerializer.fromSlime(object.field(hostSpecNetworkPortsKey)),
- nodeResourcesFromSlime(object.field(requestedResourcesKey)),
- optionalDockerImage(object.field(hostSpecDockerImageRepoKey)));
+ if (object.field(hostSpecMembershipKey).valid()) { // Hosted
+ return new HostSpec(object.field(hostSpecHostNameKey).asString(),
+ nodeResourcesFromSlime(object.field(realResourcesKey), object, nodeFlavors),
+ nodeResourcesFromSlime(object.field(advertisedResourcesKey), object, nodeFlavors),
+ optionalNodeResourcesFromSlime(object.field(requestedResourcesKey)), // TODO: Make non-optional after June 2020
+ membershipFromSlime(object),
+ optionalString(object.field(hostSpecCurrentVespaVersionKey)).map(com.yahoo.component.Version::new),
+ NetworkPortsSerializer.fromSlime(object.field(hostSpecNetworkPortsKey)),
+ optionalDockerImage(object.field(hostSpecDockerImageRepoKey)));
+ }
+ else {
+ return new HostSpec(object.field(hostSpecHostNameKey).asString(),
+ aliasesFromSlime(object),
+ NetworkPortsSerializer.fromSlime(object.field(hostSpecNetworkPortsKey)));
+ }
}
private static List<String> aliasesFromSlime(Inspector object) {
- if ( ! object.field(aliasesKey).valid()) return Collections.emptyList();
+ if ( ! object.field(aliasesKey).valid()) return List.of();
List<String> aliases = new ArrayList<>();
object.field(aliasesKey).traverse((ArrayTraverser)(index, alias) -> aliases.add(alias.asString()));
return aliases;
@@ -154,17 +166,28 @@ public class AllocatedHostsSerializer {
if (object.field(flavorKey).valid() && nodeFlavors.isPresent() && nodeFlavors.get().exists(object.field(flavorKey).asString()))
return nodeFlavors.get().getFlavor(object.field(flavorKey).asString());
else
- return nodeResourcesFromSlime(object.field(resourcesKey)).map(resources -> new Flavor(resources));
+ return Optional.empty();
+ }
+
+ private static NodeResources nodeResourcesFromSlime(Inspector resources) {
+ return new NodeResources(resources.field(vcpuKey).asDouble(),
+ resources.field(memoryKey).asDouble(),
+ resources.field(diskKey).asDouble(),
+ resources.field(bandwidthKey).asDouble(),
+ diskSpeedFromSlime(resources.field(diskSpeedKey)),
+ storageTypeFromSlime(resources.field(storageTypeKey)));
+ }
+
+ private static NodeResources optionalNodeResourcesFromSlime(Inspector resources) {
+ if ( ! resources.valid()) return NodeResources.unspecified();
+ return nodeResourcesFromSlime(resources);
}
- private static Optional<NodeResources> nodeResourcesFromSlime(Inspector resources) {
- if ( ! resources.valid()) return Optional.empty();
- return Optional.of(new NodeResources(resources.field(vcpuKey).asDouble(),
- resources.field(memoryKey).asDouble(),
- resources.field(diskKey).asDouble(),
- resources.field(bandwidthKey).asDouble(),
- diskSpeedFromSlime(resources.field(diskSpeedKey)),
- storageTypeFromSlime(resources.field(storageTypeKey))));
+ private static NodeResources nodeResourcesFromSlime(Inspector resources, Inspector parent,
+ Optional<NodeFlavors> nodeFlavors) {
+ if ( ! resources.valid()) // TODO: Remove the fallback using nodeFlavors after June 2020
+ return flavorFromSlime(parent, nodeFlavors).map(f -> f.resources()).orElse(NodeResources.unspecified);
+ return nodeResourcesFromSlime(resources);
}
private static NodeResources.DiskSpeed diskSpeedFromSlime(Inspector diskSpeed) {