summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2020-01-09 09:37:12 +0100
committerJon Bratseth <bratseth@verizonmedia.com>2020-01-09 09:37:12 +0100
commit28d393fde0efe435a8dfa6dade5a4644989cb4c3 (patch)
treebde315f1a244ca96dec8637716507bf7e1016499 /config-model/src/main/java
parent919fd85dae2ed0de98b8a336755d9cf5fc66a6d1 (diff)
Improve file distribution error message
Diffstat (limited to 'config-model/src/main/java')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java4
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/producer/AbstractConfigProducer.java9
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java2
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/test/TestRoot.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/ConfigProducer.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java14
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java12
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java16
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java4
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java12
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java4
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/generic/service/ServiceCluster.java4
15 files changed, 39 insertions, 52 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java b/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java
index aede68a1dd1..1cc5c93c28a 100644
--- a/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java
+++ b/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java
@@ -223,7 +223,7 @@ public class ApplicationConfigProducerRoot extends AbstractConfigProducer<Abstra
@Override
public void getConfig(ModelConfig.Builder builder) {
builder.vespaVersion(vespaVersion.toFullString());
- for (HostResource modelHost : getHostSystem().getHosts()) {
+ for (HostResource modelHost : hostSystem().getHosts()) {
builder.hosts(new Hosts.Builder()
.name(modelHost.getHostname())
.services(getServices(modelHost))
@@ -278,7 +278,7 @@ public class ApplicationConfigProducerRoot extends AbstractConfigProducer<Abstra
}
@Override
- public HostSystem getHostSystem() {
+ public HostSystem hostSystem() {
return hostSystem;
}
diff --git a/config-model/src/main/java/com/yahoo/config/model/producer/AbstractConfigProducer.java b/config-model/src/main/java/com/yahoo/config/model/producer/AbstractConfigProducer.java
index c2834847423..48c21f370f4 100644
--- a/config-model/src/main/java/com/yahoo/config/model/producer/AbstractConfigProducer.java
+++ b/config-model/src/main/java/com/yahoo/config/model/producer/AbstractConfigProducer.java
@@ -265,13 +265,8 @@ public abstract class AbstractConfigProducer<CHILD extends AbstractConfigProduce
}
}
- /**
- * Returns the one and only HostSystem of the root node
- * Must be overridden by root node.
- */
- public HostSystem getHostSystem() {
- return getRoot().getHostSystem();
- }
+ /** Returns the one and only HostSystem of the root node. Must be overridden by root node. */
+ public HostSystem hostSystem() { return getRoot().hostSystem(); }
public AbstractConfigProducerRoot getRoot() {
return parent == null ? null : parent.getRoot();
diff --git a/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java b/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java
index 74ab4504136..13f271ebe9d 100644
--- a/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java
+++ b/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java
@@ -123,7 +123,7 @@ public class MockRoot extends AbstractConfigProducerRoot {
return fileDistributor;
}
- public HostSystem getHostSystem() {
+ public HostSystem hostSystem() {
return hostSystem;
}
diff --git a/config-model/src/main/java/com/yahoo/config/model/test/TestRoot.java b/config-model/src/main/java/com/yahoo/config/model/test/TestRoot.java
index 25c97cba04b..81f5d303d56 100644
--- a/config-model/src/main/java/com/yahoo/config/model/test/TestRoot.java
+++ b/config-model/src/main/java/com/yahoo/config/model/test/TestRoot.java
@@ -61,6 +61,6 @@ public class TestRoot {
* @return A list of hosts.
*/
public List<HostResource> getHosts() {
- return model.getHostSystem().getHosts();
+ return model.hostSystem().getHosts();
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/ConfigProducer.java b/config-model/src/main/java/com/yahoo/vespa/model/ConfigProducer.java
index dc1fb0506f0..bf86bc4a453 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/ConfigProducer.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/ConfigProducer.java
@@ -23,7 +23,7 @@ public interface ConfigProducer extends com.yahoo.config.ConfigInstance.Producer
String getConfigId();
/** Returns the one and only HostSystem of the root node */
- HostSystem getHostSystem();
+ HostSystem hostSystem();
/** Returns the user configs of this */
UserConfigRepo getUserConfigs();
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java b/config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java
index 3ac5f794426..eda562bea5a 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java
@@ -63,8 +63,8 @@ public class HostSystem extends AbstractConfigProducer<Host> {
/**
* Returns the host with the given hostname.
*
- * @param name the hostname of the host.
- * @return the host with the given hostname.
+ * @param name the hostname of the host
+ * @return the host with the given hostname, or null if no such host
*/
public HostResource getHostByHostname(String name) {
// TODO: please eliminate the following ugly hack
@@ -106,12 +106,10 @@ public class HostSystem extends AbstractConfigProducer<Host> {
@Override
public String toString() {
- StringBuilder sb = new StringBuilder();
- for (HostResource host : hostname2host.values()) {
- sb.append(host).append(",");
- }
- if (sb.length() > 0) sb.deleteCharAt(sb.length() - 1);
- return sb.toString();
+ return "hosts [" + hostname2host.values().stream()
+ .map(host -> host.getHostname())
+ .collect(Collectors.joining(", ")) +
+ "]";
}
public HostResource getHost(String hostAlias) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java
index 08956b272f6..ad61e0f48a3 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java
@@ -176,7 +176,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri
- HostSystem hostSystem = root.getHostSystem();
+ HostSystem hostSystem = root.hostSystem();
if (complete) { // create a a completed, frozen model
configModelRepo.readConfigModels(deployState, this, builder, root, configModelRegistry);
addServiceClusters(deployState, builder);
@@ -261,16 +261,16 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri
}
/** Returns the one and only HostSystem of this VespaModel */
- public HostSystem getHostSystem() {
- return root.getHostSystem();
+ public HostSystem hostSystem() {
+ return root.hostSystem();
}
/** Return a collection of all hostnames used in this application */
@Override
public Set<HostInfo> getHosts() {
- return getHostSystem().getHosts().stream()
- .map(HostResource::getHostInfo)
- .collect(Collectors.toCollection(LinkedHashSet::new));
+ return hostSystem().getHosts().stream()
+ .map(HostResource::getHostInfo)
+ .collect(Collectors.toCollection(LinkedHashSet::new));
}
public FileDistributor getFileDistributor() {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
index d31c411a39e..7484e0cd9a0 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
@@ -262,27 +262,21 @@ public class Admin extends AbstractConfigProducer implements Serializable {
private void addFileDistribution(HostResource host) {
FileDistributor fileDistributor = fileDistribution.getFileDistributor();
- HostResource deployHost = getHostSystem().getHostByHostname(fileDistributor.fileSourceHost());
- if (deployHostIsMissing(deployHost)) {
- throw new RuntimeException("Could not find host in the application's host system: '" +
- fileDistributor.fileSourceHost() + "'. Hostsystem=" + getHostSystem());
- }
+ HostResource hostResource = hostSystem().getHostByHostname(fileDistributor.fileSourceHost());
+ if (hostResource == null && ! multitenant)
+ throw new IllegalArgumentException("Could not find " + host + " in the application's " + hostSystem());
FileDistributionConfigProvider configProvider =
new FileDistributionConfigProvider(fileDistribution,
fileDistributor,
- host == deployHost,
+ host == hostResource,
host.getHost());
fileDistribution.addFileDistributionConfigProducer(host.getHost(), configProvider);
}
- private boolean deployHostIsMissing(HostResource deployHost) {
- return !multitenant && deployHost == null;
- }
-
// If not configured by user: Use default setup: max 3 slobroks, 1 on the default configserver host
private List<Slobrok> createDefaultSlobrokSetup(DeployLogger deployLogger) {
- List<HostResource> hosts = getHostSystem().getHosts();
+ List<HostResource> hosts = hostSystem().getHosts();
List<Slobrok> slobs = new ArrayList<>();
if (logserver != null) {
Slobrok slobrok = new Slobrok(this, 0);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java
index 9de777a96ef..a115b25cbd9 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java
@@ -55,7 +55,7 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu
List<Configserver> getConfigServersFromSpec(DeployLogger deployLogger, AbstractConfigProducer parent) {
List<Configserver> configservers = new ArrayList<>();
for (ConfigServerSpec spec : configServerSpecs) {
- HostSystem hostSystem = parent.getHostSystem();
+ HostSystem hostSystem = parent.hostSystem();
HostResource host = new HostResource(Host.createConfigServerHost(hostSystem, spec.getHostName()));
hostSystem.addBoundHost(host);
Configserver configserver = new Configserver(parent, spec.getHostName(), spec.getConfigServerPort());
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java
index fbd3f353d95..61d0cd7cd1e 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java
@@ -62,7 +62,7 @@ public class DomAdminV4Builder extends DomAdminBuilderBase {
private void assignSlobroks(DeployLogger deployLogger, NodesSpecification nodesSpecification, Admin admin) {
if (nodesSpecification.isDedicated()) {
- createSlobroks(deployLogger, admin, allocateHosts(admin.getHostSystem(), "slobroks", nodesSpecification));
+ createSlobroks(deployLogger, admin, allocateHosts(admin.hostSystem(), "slobroks", nodesSpecification));
}
else {
createSlobroks(deployLogger, admin, pickContainerHostsForSlobrok(nodesSpecification.count(), 2));
@@ -73,7 +73,7 @@ public class DomAdminV4Builder extends DomAdminBuilderBase {
if (nodesSpecification.count() > 1) throw new IllegalArgumentException("You can only request a single log server");
if (deployState.getProperties().applicationId().instance().isTester()) return; // No logserver is needed on tester applications
if (nodesSpecification.isDedicated()) {
- Collection<HostResource> hosts = allocateHosts(admin.getHostSystem(), "logserver", nodesSpecification);
+ Collection<HostResource> hosts = allocateHosts(admin.hostSystem(), "logserver", nodesSpecification);
if (hosts.isEmpty()) return; // No log server can be created (and none is needed)
Logserver logserver = createLogserver(deployState.getDeployLogger(), admin, hosts);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java
index 2718db46be9..97b78e1b9b1 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java
@@ -122,7 +122,7 @@ public class VespaDomBuilder extends VespaModelBuilder {
T t = doBuild(deployState, ancestor, producerSpec);
if (t instanceof AbstractService) {
- initializeService((AbstractService)t, deployState, ancestor.getHostSystem(), producerSpec);
+ initializeService((AbstractService)t, deployState, ancestor.hostSystem(), producerSpec);
} else {
initializeProducer(t, deployState, producerSpec);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index 16ecf5f761c..3e9ebaeccd4 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -607,7 +607,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
/** Creates a single host when there is no nodes tag */
private HostResource allocateSingleNodeHost(ApplicationContainerCluster cluster, DeployLogger logger, Element containerElement, ConfigModelContext context) {
DeployState deployState = context.getDeployState();
- HostSystem hostSystem = cluster.getHostSystem();
+ HostSystem hostSystem = cluster.hostSystem();
if (deployState.isHosted()) {
Optional<HostResource> singleContentHost = getHostResourceFromContentClusters(cluster, containerElement, context);
if (singleContentHost.isPresent()) { // there is a content cluster; put the container on its first node
@@ -631,7 +631,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
private List<ApplicationContainer> createNodesFromNodeCount(ApplicationContainerCluster cluster, Element nodesElement, ConfigModelContext context) {
NodesSpecification nodesSpecification = NodesSpecification.from(new ModelElement(nodesElement), context);
- Map<HostResource, ClusterMembership> hosts = nodesSpecification.provision(cluster.getRoot().getHostSystem(),
+ Map<HostResource, ClusterMembership> hosts = nodesSpecification.provision(cluster.getRoot().hostSystem(),
ClusterSpec.Type.container,
ClusterSpec.Id.from(cluster.getName()),
log);
@@ -645,8 +645,8 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
context.getDeployState().getWantedNodeVespaVersion(),
false);
Map<HostResource, ClusterMembership> hosts =
- cluster.getRoot().getHostSystem().allocateHosts(clusterSpec,
- Capacity.fromRequiredNodeType(type), 1, log);
+ cluster.getRoot().hostSystem().allocateHosts(clusterSpec,
+ Capacity.fromRequiredNodeType(type), 1, log);
return createNodesFromHosts(context.getDeployLogger(), hosts, cluster);
}
@@ -663,7 +663,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
Map<HostResource, ClusterMembership> hosts =
StorageGroup.provisionHosts(nodeSpecification,
referenceId,
- cluster.getRoot().getHostSystem(),
+ cluster.getRoot().hostSystem(),
context.getDeployLogger());
return createNodesFromHosts(context.getDeployLogger(), hosts, cluster);
}
@@ -690,7 +690,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
Map<HostResource, ClusterMembership> hosts =
StorageGroup.provisionHosts(nodesSpec,
contentServices.get(0).getAttribute("id"),
- cluster.getRoot().getHostSystem(),
+ cluster.getRoot().hostSystem(),
context.getDeployLogger());
return Optional.of(hosts.keySet().iterator().next());
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java b/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java
index 6b000835a22..adfc703f747 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java
@@ -284,7 +284,7 @@ public class StorageGroup {
private StorageNode buildSingleNode(DeployState deployState, ContentCluster parent) {
int distributionKey = 0;
StorageNode sNode = new StorageNode(parent.getStorageNodes(), 1.0, distributionKey , false);
- sNode.setHostResource(parent.getHostSystem().getHost(Container.SINGLENODE_CONTAINER_SERVICESPEC));
+ sNode.setHostResource(parent.hostSystem().getHost(Container.SINGLENODE_CONTAINER_SERVICESPEC));
PersistenceEngine provider = parent.getPersistence().create(deployState, sNode, storageGroup, null);
new Distributor(parent.getDistributorNodes(), distributionKey, null, provider);
return sNode;
@@ -302,7 +302,7 @@ public class StorageGroup {
throw new IllegalArgumentException("Specifying individual groups is not supported on hosted applications");
Map<HostResource, ClusterMembership> hostMapping =
nodeRequirement.isPresent() ?
- provisionHosts(nodeRequirement.get(), owner.getStorageNodes().getClusterName(), owner.getRoot().getHostSystem(), deployLogger) :
+ provisionHosts(nodeRequirement.get(), owner.getStorageNodes().getClusterName(), owner.getRoot().hostSystem(), deployLogger) :
Collections.emptyMap();
Map<Optional<ClusterSpec.Group>, Map<HostResource, ClusterMembership>> hostGroups = collectAllocatedSubgroups(hostMapping);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
index 4925a13c4d2..1a0c3a875fb 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
@@ -345,7 +345,7 @@ public class ContentCluster extends AbstractConfigProducer implements
}
private Collection<HostResource> getControllerHosts(NodesSpecification nodesSpecification, Admin admin, String clusterName, ConfigModelContext context) {
- return nodesSpecification.provision(admin.getHostSystem(), ClusterSpec.Type.admin, ClusterSpec.Id.from(clusterName), context.getDeployLogger()).keySet();
+ return nodesSpecification.provision(admin.hostSystem(), ClusterSpec.Type.admin, ClusterSpec.Id.from(clusterName), context.getDeployLogger()).keySet();
}
private List<HostResource> drawControllerHosts(int count, StorageGroup rootGroup, Collection<ContainerModel> containers) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/generic/service/ServiceCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/generic/service/ServiceCluster.java
index 76f3415a666..7d304968bc7 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/generic/service/ServiceCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/generic/service/ServiceCluster.java
@@ -42,9 +42,9 @@ public class ServiceCluster extends AbstractConfigProducer {
}
@Override
- public HostSystem getHostSystem() {
+ public HostSystem hostSystem() {
if (hostSystem!=null) return hostSystem;
- return super.getHostSystem();
+ return super.hostSystem();
}
/**