summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorArne Juul <arnej@yahoo-inc.com>2018-01-22 15:11:21 +0000
committerArne Juul <arnej@yahoo-inc.com>2018-01-22 15:11:21 +0000
commit93d76492642dbab93fca5b74db5e124f7e082653 (patch)
treec2718e793854b9c8312b98af91f15e27a610daa2 /config-model
parent3414caf51a124abce025c0fe93286c236afd9789 (diff)
postpone adding logforwarder until all hosts are determined
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java12
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/LogForwarder.java4
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java8
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java2
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java6
5 files changed, 19 insertions, 13 deletions
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 071b3090f99..eaa4f18e35a 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
@@ -48,6 +48,11 @@ public class Admin extends AbstractConfigProducer implements Serializable {
private final List<Slobrok> slobroks = new ArrayList<>();
private Configserver defaultConfigserver;
private Logserver logserver;
+ private LogForwarder.Config logForwarderConfig = null;
+
+ public void setLogForwarderConfig(LogForwarder.Config cfg) {
+ this.logForwarderConfig = cfg;
+ }
/**
* The single cluster controller cluster shared by all content clusters by default when not multitenant.
@@ -186,6 +191,9 @@ public class Admin extends AbstractConfigProducer implements Serializable {
addLogd(host);
addConfigProxy(host);
addFileDistribution(host);
+ if (logForwarderConfig != null) {
+ addLogForwarder(host);
+ }
}
private void addConfigSentinel(HostResource host, ApplicationId applicationId, Zone zone) {
@@ -194,6 +202,10 @@ public class Admin extends AbstractConfigProducer implements Serializable {
host.getHost().setConfigSentinel(configSentinel);
}
+ private void addLogForwarder(HostResource host) {
+ addAndInitializeService(host, new LogForwarder(host.getHost(), logForwarderConfig));
+ }
+
private void addLogd(HostResource host) {
addAndInitializeService(host, new Logd(host.getHost()));
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogForwarder.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogForwarder.java
index 4f766732e4e..2693a4c7409 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogForwarder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogForwarder.java
@@ -37,8 +37,8 @@ public class LogForwarder extends AbstractService implements LogforwarderConfig.
* Creates a new LogForwarder instance.
*/
// TODO: Use proper types?
- public LogForwarder(AbstractConfigProducer parent, int index, Config config) {
- super(parent, "logforwarder." + index);
+ public LogForwarder(AbstractConfigProducer parent, Config config) {
+ super(parent, "logforwarder");
this.config = config;
setProp("clustertype", "hosts");
setProp("clustername", "admin");
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 b9903ccd163..83e905929d2 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
@@ -120,18 +120,12 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu
void addLogForwarders(ModelElement logForwardingElement, Admin admin) {
if (logForwardingElement == null) return;
- int i = 0;
for (ModelElement e : logForwardingElement.getChildren("splunk")) {
LogForwarder.Config cfg = LogForwarder.cfg()
.withSplunkHome(e.getStringAttribute("splunk-home"))
.withDeploymentServer(e.getStringAttribute("deployment-server"))
.withClientName(e.getStringAttribute("client-name"));
- for (HostResource host : admin.getHostSystem().getHosts()) {
- LogForwarder logForwarder = new LogForwarder(admin, i, cfg);
- logForwarder.setHostResource(host);
- logForwarder.initService();
- i++;
- }
+ admin.setLogForwarderConfig(cfg);
}
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java
index fed9000f72b..223b50dd180 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java
@@ -270,7 +270,7 @@ public class AdminTestCase {
Set<String> configIds = vespaModel.getConfigIds();
// 1 logforwarder on each host
- assertTrue(configIds.toString(), configIds.contains("admin/logforwarder.0"));
+ assertTrue(configIds.toString(), configIds.contains("hosts/myhost0/logforwarder"));
}
@Test
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java
index 4c09fd8d713..999ebd8ad4e 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java
@@ -170,12 +170,12 @@ public class DedicatedAdminV4Test {
Set<String> configIds = model.getConfigIds();
// 1 logforwarder on each host
- IntStream.of(0, 1, 2).forEach(i -> assertTrue(configIds.toString(), configIds.contains("admin/logforwarder." + i)));
+ IntStream.of(0, 1, 2).forEach(i -> assertTrue(configIds.toString(), configIds.contains("hosts/myhost"+i+"/logforwarder")));
// First forwarder
{
LogforwarderConfig.Builder builder = new LogforwarderConfig.Builder();
- model.getConfig(builder, "admin/logforwarder.0");
+ model.getConfig(builder, "hosts/myhost0/logforwarder");
LogforwarderConfig config = new LogforwarderConfig(builder);
assertEquals("foo:123", config.deploymentServer());
@@ -186,7 +186,7 @@ public class DedicatedAdminV4Test {
// Other host's forwarder
{
LogforwarderConfig.Builder builder = new LogforwarderConfig.Builder();
- model.getConfig(builder, "admin/logforwarder.2");
+ model.getConfig(builder, "hosts/myhost2/logforwarder");
LogforwarderConfig config = new LogforwarderConfig(builder);
assertEquals("foo:123", config.deploymentServer());