From a2d18b375631d010432089ed18db327c9e4f26bf Mon Sep 17 00:00:00 2001 From: Jakub Dudycz Date: Fri, 20 Jul 2018 16:37:02 +0200 Subject: Fix consul request timeout issue Fix timeout issue when using consul blocking query calls by switching to standard requests peformed in given interval Closes ONAP-628 Change-Id: Ifaf7ddfa27045015a7a90c178e0d6d38955c0c58 Signed-off-by: Jakub Dudycz Issue-ID: DCAEGEN2-601 --- .../veshv/main/ArgBasedServerConfiguration.kt | 21 ++++++++++++--- .../org/onap/dcae/collectors/veshv/main/main.kt | 4 ++- .../veshv/main/ArgBasedServerConfigurationTest.kt | 31 ++++++++++++++++------ 3 files changed, 43 insertions(+), 13 deletions(-) (limited to 'hv-collector-main/src') diff --git a/hv-collector-main/src/main/kotlin/org/onap/dcae/collectors/veshv/main/ArgBasedServerConfiguration.kt b/hv-collector-main/src/main/kotlin/org/onap/dcae/collectors/veshv/main/ArgBasedServerConfiguration.kt index 35ca09d8..a11fe3d4 100644 --- a/hv-collector-main/src/main/kotlin/org/onap/dcae/collectors/veshv/main/ArgBasedServerConfiguration.kt +++ b/hv-collector-main/src/main/kotlin/org/onap/dcae/collectors/veshv/main/ArgBasedServerConfiguration.kt @@ -22,6 +22,7 @@ package org.onap.dcae.collectors.veshv.main import org.apache.commons.cli.CommandLine import org.apache.commons.cli.DefaultParser import org.onap.dcae.collectors.veshv.domain.SecurityConfiguration +import org.onap.dcae.collectors.veshv.model.ConfigurationProviderParams import org.onap.dcae.collectors.veshv.model.ServerConfiguration import org.onap.dcae.collectors.veshv.utils.commandline.ArgBasedConfiguration import org.onap.dcae.collectors.veshv.utils.commandline.CommandLineOption.* @@ -30,6 +31,7 @@ import java.time.Duration internal object DefaultValues { const val PORT = 6061 const val CONSUL_FIRST_REQUEST_DELAY = 10L + const val CONSUL_REQUEST_INTERVAL = 5L const val CONFIG_URL = "" const val PRIVATE_KEY_FILE = "/etc/ves-hv/server.key" const val CERT_FILE = "/etc/ves-hv/server.crt" @@ -42,6 +44,7 @@ internal class ArgBasedServerConfiguration : ArgBasedConfiguration) = private fun createServer(config: ServerConfiguration): Server { val sink = if (config.dummyMode) AdapterFactory.loggingSink() else AdapterFactory.kafkaSink() val collectorProvider = CollectorFactory( - AdapterFactory.consulConfigurationProvider(config.configurationUrl, config.firstRequestDelay), sink, MicrometerMetrics() + AdapterFactory.consulConfigurationProvider(config.configurationProviderParams), + sink, + MicrometerMetrics() ).createVesHvCollectorProvider() return ServerFactory.createNettyTcpServer(config, collectorProvider) diff --git a/hv-collector-main/src/test/kotlin/org/onap/dcae/collectors/veshv/main/ArgBasedServerConfigurationTest.kt b/hv-collector-main/src/test/kotlin/org/onap/dcae/collectors/veshv/main/ArgBasedServerConfigurationTest.kt index 0498344c..6da605f4 100644 --- a/hv-collector-main/src/test/kotlin/org/onap/dcae/collectors/veshv/main/ArgBasedServerConfigurationTest.kt +++ b/hv-collector-main/src/test/kotlin/org/onap/dcae/collectors/veshv/main/ArgBasedServerConfigurationTest.kt @@ -39,6 +39,7 @@ object ArgBasedServerConfigurationTest : Spek({ lateinit var cut: ArgBasedServerConfiguration val configurationUrl = "http://test-address/test" val firstRequestDelay = "10" + val requestInterval = "5" val listenPort = "6969" val pk = Paths.get("/", "etc", "ves", "pk.pem") val cert = Paths.get("/", "etc", "ssl", "certs", "ca-bundle.crt") @@ -63,6 +64,7 @@ object ArgBasedServerConfigurationTest : Spek({ "--listen-port", listenPort, "--config-url", configurationUrl, "--first-request-delay", firstRequestDelay, + "--request-interval", requestInterval, "--private-key-file", pk.toFile().absolutePath, "--cert-file", cert.toFile().absolutePath, "--trust-cert-file", trustCert.toFile().absolutePath) @@ -73,11 +75,18 @@ object ArgBasedServerConfigurationTest : Spek({ } it("should set proper first consul request delay") { - assertThat(result.firstRequestDelay).isEqualTo(Duration.ofSeconds(10)) + assertThat(result.configurationProviderParams.firstRequestDelay) + .isEqualTo(Duration.ofSeconds(10)) + } + + it("should set proper consul request interval") { + assertThat(result.configurationProviderParams.requestInterval) + .isEqualTo(Duration.ofSeconds(5)) } it("should set proper config url") { - assertThat(result.configurationUrl).isEqualTo(configurationUrl) + assertThat(result.configurationProviderParams.configurationUrl) + .isEqualTo(configurationUrl) } it("should set proper security configuration") { @@ -85,8 +94,6 @@ object ArgBasedServerConfigurationTest : Spek({ SecurityConfiguration(sslDisable = true, privateKey = pk, cert = cert, trustedCert = trustCert) ) } - - } given("some parameters are present in the short form") { @@ -101,11 +108,13 @@ object ArgBasedServerConfigurationTest : Spek({ } it("should set proper first consul request delay") { - assertThat(result.firstRequestDelay).isEqualTo(Duration.ofSeconds(10)) + assertThat(result.configurationProviderParams.firstRequestDelay) + .isEqualTo(Duration.ofSeconds(10)) } it("should set proper config url") { - assertThat(result.configurationUrl).isEqualTo(configurationUrl) + assertThat(result.configurationProviderParams.configurationUrl) + .isEqualTo(configurationUrl) } } @@ -121,14 +130,20 @@ object ArgBasedServerConfigurationTest : Spek({ } it("should set default config url") { - assertThat(result.configurationUrl).isEqualTo(DefaultValues.CONFIG_URL) + assertThat(result.configurationProviderParams.configurationUrl) + .isEqualTo(DefaultValues.CONFIG_URL) } it("should set default first consul request delay") { - assertThat(result.firstRequestDelay) + assertThat(result.configurationProviderParams.firstRequestDelay) .isEqualTo(Duration.ofSeconds(DefaultValues.CONSUL_FIRST_REQUEST_DELAY)) } + it("should set default consul request interval") { + assertThat(result.configurationProviderParams.requestInterval) + .isEqualTo(Duration.ofSeconds(DefaultValues.CONSUL_REQUEST_INTERVAL)) + } + on("security config") { val securityConfiguration = result.securityConfiguration -- cgit 1.2.3-korg