diff options
8 files changed, 25 insertions, 13 deletions
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 d766507c75f..1f77b96244f 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 @@ -5,29 +5,31 @@ import com.yahoo.cloud.config.LogforwarderConfig; import com.yahoo.config.model.producer.AbstractConfigProducer; import com.yahoo.vespa.model.AbstractService; -import java.util.ArrayList; -import java.util.List; - public class LogForwarder extends AbstractService implements LogforwarderConfig.Producer { public static class Config { public final String deploymentServer; public final String clientName; public final String splunkHome; + public final Integer phoneHomeInterval; - private Config(String ds, String cn, String sh) { + private Config(String ds, String cn, String sh, Integer phi) { this.deploymentServer = ds; this.clientName = cn; this.splunkHome = sh; + this.phoneHomeInterval = phi; } public Config withDeploymentServer(String ds) { - return new Config(ds, clientName, splunkHome); + return new Config(ds, clientName, splunkHome, phoneHomeInterval); } public Config withClientName(String cn) { - return new Config(deploymentServer, cn, splunkHome); + return new Config(deploymentServer, cn, splunkHome, phoneHomeInterval); } public Config withSplunkHome(String sh) { - return new Config(deploymentServer, clientName, sh); + return new Config(deploymentServer, clientName, sh, phoneHomeInterval); + } + public Config withPhoneHomeInterval(Integer phi) { + return new Config(deploymentServer, clientName, splunkHome, phi); } } @@ -45,7 +47,7 @@ public class LogForwarder extends AbstractService implements LogforwarderConfig. } public static Config cfg() { - return new Config(null, null, null); + return new Config(null, null, null, null); } /** @@ -72,6 +74,9 @@ public class LogForwarder extends AbstractService implements LogforwarderConfig. if (config.splunkHome != null) { builder.splunkHome(config.splunkHome); } + if (config.phoneHomeInterval != null) { + builder.phoneHomeInterval(config.phoneHomeInterval); + } } } 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 bae9c52b06e..9de777a96ef 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 @@ -117,7 +117,8 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu LogForwarder.Config cfg = LogForwarder.cfg() .withSplunkHome(e.stringAttribute("splunk-home")) .withDeploymentServer(e.stringAttribute("deployment-server")) - .withClientName(e.stringAttribute("client-name")); + .withClientName(e.stringAttribute("client-name")) + .withPhoneHomeInterval(e.integerAttribute("phone-home-interval")); admin.setLogForwarderConfig(cfg); } } diff --git a/config-model/src/main/resources/schema/admin.rnc b/config-model/src/main/resources/schema/admin.rnc index 3729f3ab57c..7a3e2916f94 100644 --- a/config-model/src/main/resources/schema/admin.rnc +++ b/config-model/src/main/resources/schema/admin.rnc @@ -97,6 +97,7 @@ LogForwarding = element logforwarding { element splunk { attribute splunk-home { xsd:string }? & attribute deployment-server { xsd:string } & - attribute client-name { xsd:string } + attribute client-name { xsd:string } & + attribute phone-home-interval { xsd:positiveInteger }? } } 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 6d65c2a472e..b7ceb0923b7 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 @@ -266,7 +266,7 @@ public class AdminTestCase { " <admin version='2.0'>" + " <adminserver hostalias='node0' />" + " <logforwarding>" + - " <splunk deployment-server='foo:123' client-name='foocli'/>" + + " <splunk deployment-server='foo:123' client-name='foocli' phone-home-interval='900' />" + " </logforwarding>" + " </admin>" + "</services>"; 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 3896b6d799a..fc10e941091 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 @@ -147,7 +147,7 @@ public class DedicatedAdminV4Test { " <slobroks><nodes count='2' dedicated='true'/></slobroks>" + " <logservers><nodes count='1' dedicated='true'/></logservers>" + " <logforwarding>" + - " <splunk deployment-server='foo:123' client-name='foocli'/>" + + " <splunk deployment-server='foo:123' client-name='foocli' phone-home-interval='900'/>" + " </logforwarding>" + " </admin>" + "</services>"; @@ -173,6 +173,7 @@ public class DedicatedAdminV4Test { assertEquals("foo:123", config.deploymentServer()); assertEquals("foocli", config.clientName()); assertEquals("/opt/splunkforwarder", config.splunkHome()); + assertEquals(900, config.phoneHomeInterval()); } // Other host's forwarder @@ -183,6 +184,8 @@ public class DedicatedAdminV4Test { assertEquals("foo:123", config.deploymentServer()); assertEquals("foocli", config.clientName()); + assertEquals("/opt/splunkforwarder", config.splunkHome()); + assertEquals(900, config.phoneHomeInterval()); } } diff --git a/config-model/src/test/schema-test-files/services.xml b/config-model/src/test/schema-test-files/services.xml index d5a02949cf3..2bbd98f72ac 100644 --- a/config-model/src/test/schema-test-files/services.xml +++ b/config-model/src/test/schema-test-files/services.xml @@ -26,7 +26,7 @@ </consumer> </metrics> <logforwarding> - <splunk deployment-server="foo:8989" client-name="foobar" splunk-home="/opt/splunk"/> + <splunk deployment-server="foo:8989" client-name="foobar" splunk-home="/opt/splunk" phone-home-interval="900"/> </logforwarding> </admin> diff --git a/configdefinitions/src/vespa/logforwarder.def b/configdefinitions/src/vespa/logforwarder.def index 7a924616aaa..ab56589298f 100644 --- a/configdefinitions/src/vespa/logforwarder.def +++ b/configdefinitions/src/vespa/logforwarder.def @@ -6,3 +6,4 @@ namespace=cloud.config deploymentServer string default="" clientName string default="" splunkHome string default="/opt/splunkforwarder" +phoneHomeInterval int default=60 diff --git a/logforwarder/src/apps/vespa-logforwarder-start/cf-handler.cpp b/logforwarder/src/apps/vespa-logforwarder-start/cf-handler.cpp index 5517017eefa..fa702070f73 100644 --- a/logforwarder/src/apps/vespa-logforwarder-start/cf-handler.cpp +++ b/logforwarder/src/apps/vespa-logforwarder-start/cf-handler.cpp @@ -69,6 +69,7 @@ CfHandler::doConfigure() fprintf(fp, "[deployment-client]\n"); fprintf(fp, "clientName = %s\n", config.clientName.c_str()); + fprintf(fp, "phoneHomeIntervalInSecs = %s\n", config.phoneHomeInterval.c_str); fprintf(fp, "\n"); fprintf(fp, "[target-broker:deploymentServer]\n"); fprintf(fp, "targetUri = %s\n", config.deploymentServer.c_str()); |