diff options
author | Martin Polden <mpolden@mpolden.no> | 2022-10-26 13:27:35 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2022-10-26 13:56:11 +0200 |
commit | bcb0d097aecfe498061c05bf9137a45922c7da6e (patch) | |
tree | 836912c9e3139409fca44e880f92e3f0c58f186d /node-repository | |
parent | 6d5b46dcf5d5dd845c22d3afaf582fd725a3b2a4 (diff) |
Fall back to default cloud account in node spec
Diffstat (limited to 'node-repository')
3 files changed, 10 insertions, 7 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java index e1657ec3358..2aa9ec7bd54 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java @@ -4,9 +4,9 @@ package com.yahoo.vespa.hosted.provision.provisioning; import com.yahoo.component.Version; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ClusterSpec; +import com.yahoo.config.provision.NodeAllocationException; import com.yahoo.config.provision.NodeResources; import com.yahoo.config.provision.NodeType; -import com.yahoo.config.provision.NodeAllocationException; import com.yahoo.transaction.Mutex; import com.yahoo.vespa.hosted.provision.LockedNodeList; import com.yahoo.vespa.hosted.provision.Node; diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java index ce87abd2dde..78da8b4ead8 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java @@ -103,12 +103,13 @@ public class NodeRepositoryProvisioner implements Provisioner { groups = target.groups(); resources = getNodeResources(cluster, target.nodeResources(), application, exclusive); - nodeSpec = NodeSpec.from(target.nodes(), resources, exclusive, actual.canFail(), requested.cloudAccount()); + nodeSpec = NodeSpec.from(target.nodes(), resources, exclusive, actual.canFail(), + requested.cloudAccount().or(() -> nodeRepository.zone().getCloud().account())); } else { groups = 1; // type request with multiple groups is not supported resources = getNodeResources(cluster, requested.minResources().nodeResources(), application, true); - nodeSpec = NodeSpec.from(requested.type()); + nodeSpec = NodeSpec.from(requested.type(), nodeRepository.zone().cloud().account()); } return asSortedHosts(preparer.prepare(application, cluster, nodeSpec, groups), resources); } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java index 90cd4a440f2..e490080a390 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java @@ -85,8 +85,8 @@ public interface NodeSpec { return new CountNodeSpec(nodeCount, resources, exclusive, canFail, cloudAccount); } - static NodeSpec from(NodeType type) { - return new TypeNodeSpec(type); + static NodeSpec from(NodeType type, Optional<CloudAccount> cloudAccount) { + return new TypeNodeSpec(type, cloudAccount); } /** A node spec specifying a node count and a flavor */ @@ -200,9 +200,11 @@ public interface NodeSpec { NodeType.controller, 3); private final NodeType type; + private final Optional<CloudAccount> cloudAccount; - public TypeNodeSpec(NodeType type) { + public TypeNodeSpec(NodeType type, Optional<CloudAccount> cloudAccount) { this.type = type; + this.cloudAccount = cloudAccount; } @Override @@ -258,7 +260,7 @@ public interface NodeSpec { @Override public Optional<CloudAccount> cloudAccount() { - return Optional.empty(); // Type spec does not support custom cloud accounts + return cloudAccount; } @Override |