diff options
author | Piotr Jaszczyk <piotr.jaszczyk@nokia.com> | 2019-03-21 09:10:11 +0100 |
---|---|---|
committer | Piotr Jaszczyk <piotr.jaszczyk@nokia.com> | 2019-03-21 09:13:51 +0100 |
commit | d418dd43e7812ea2cdebf188bf5ab51a997df90c (patch) | |
tree | 60c33ac48330cca76bf8379ec5ed6fa48eac3e22 | |
parent | 30afcb56b0c6c4529fdaf68d7b061eee44d68d16 (diff) |
Include basic configuration in Docker image
Makes the collector start out of the box, even without valid CBS
configuration.
Note: the basic configuration will need to be changed later.
Issue-ID: DCAEGEN2-1340
Change-Id: I3c2b502f253677e78a4f4990002e683613b8869e
Signed-off-by: Piotr Jaszczyk <piotr.jaszczyk@nokia.com>
10 files changed, 103 insertions, 6 deletions
diff --git a/development/configuration/configuration.json b/development/configuration/base.json index 8e55cf39..5233f02c 100644 --- a/development/configuration/configuration.json +++ b/development/configuration/base.json @@ -10,7 +10,6 @@ "requestIntervalSec": 5 }, "security": { - "sslDisable": false, "keys": { "keyStoreFile": "/etc/ves-hv/ssl/server.p12", "keyStorePassword": "onaponap", diff --git a/development/docker-compose.yml b/development/docker-compose.yml index 85500cbb..df00dcd5 100644 --- a/development/docker-compose.yml +++ b/development/docker-compose.yml @@ -73,7 +73,6 @@ services: ports: - "6060:6060" - "6061:6061/tcp" - command: ["--configuration-file /etc/ves-hv/configuration/configuration.json"] environment: JAVA_OPTS: "-Dio.netty.leakDetection.level=paranoid -Dlogback.configurationFile=/etc/ONAP/dcae-hv-ves-collector/logback.xml" CONSUL_HOST: "consul-server" diff --git a/sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/api/ConfigurationModule.kt b/sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/api/ConfigurationModule.kt index 5b547a28..9f8c552b 100644 --- a/sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/api/ConfigurationModule.kt +++ b/sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/api/ConfigurationModule.kt @@ -37,7 +37,7 @@ class ConfigurationModule { fun hvVesConfigurationUpdates(args: Array<String>): Flux<HvVesConfiguration> = Flux.just(cmd.parse(args)) .throwOnLeft { MissingArgumentException(it.message, it.cause) } - .map { configReader.loadConfig(it.reader()) } + .map { it.reader().use(configReader::loadConfig) } .map { configValidator.validate(it) } .throwOnLeft { ValidationException(it.message) } } diff --git a/sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/impl/ConfigurationValidator.kt b/sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/impl/ConfigurationValidator.kt index 6c74c33f..83f56924 100644 --- a/sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/impl/ConfigurationValidator.kt +++ b/sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/impl/ConfigurationValidator.kt @@ -53,7 +53,7 @@ internal class ConfigurationValidator { .let { createCbsConfiguration(it).bind() } val securityConfiguration = partialConfig.security.bind() - .let { createSecurityConfiguration(it).bind() } + .let { createSecurityConfiguration(it) } val collectorConfiguration = partialConfig.collector.bind() .let { createCollectorConfig(it).bind() } @@ -94,7 +94,11 @@ internal class ConfigurationValidator { } private fun createSecurityConfiguration(partial: PartialSecurityConfig) = - partial.keys.map { SecurityConfiguration(Some(it)) } + partial.keys + .fold( + { SecurityConfiguration(None) }, + { SecurityConfiguration(Some(it)) } + ) private fun createCollectorConfig(partial: PartialCollectorConfig) = partial.mapBinding { diff --git a/sources/hv-collector-configuration/src/test/kotlin/org/onap/dcae/collectors/veshv/config/impl/ConfigurationValidatorTest.kt b/sources/hv-collector-configuration/src/test/kotlin/org/onap/dcae/collectors/veshv/config/impl/ConfigurationValidatorTest.kt index 12396d23..beb5df61 100644 --- a/sources/hv-collector-configuration/src/test/kotlin/org/onap/dcae/collectors/veshv/config/impl/ConfigurationValidatorTest.kt +++ b/sources/hv-collector-configuration/src/test/kotlin/org/onap/dcae/collectors/veshv/config/impl/ConfigurationValidatorTest.kt @@ -20,6 +20,7 @@ package org.onap.dcae.collectors.veshv.config.impl import arrow.core.None +import arrow.core.Option import arrow.core.Some import com.nhaarman.mockitokotlin2.mock import org.assertj.core.api.Assertions.assertThat @@ -134,5 +135,57 @@ internal object ConfigurationValidatorTest : Spek({ ) } } + + describe("validating configuration with security disabled") { + val idleTimeoutSec = 10 + val firstReqDelaySec = 10 + val securityKeys: Option<SecurityKeys> = None + val routing = routing { }.build() + + val config = PartialConfiguration( + Some(PartialServerConfig( + Some(1), + Some(idleTimeoutSec), + Some(2) + )), + Some(PartialCbsConfig( + Some(firstReqDelaySec), + Some(3) + )), + Some(PartialSecurityConfig( + securityKeys + )), + Some(PartialCollectorConfig( + Some(true), + Some(4), + Some(emptyList()), + Some(routing) + )), + Some(LogLevel.INFO) + ) + + it("should create valid configuration") { + val result = cut.validate(config) + result.fold( + { + fail("Configuration should have been created successfully but was $it") + }, + { + assertThat(it.server.idleTimeout) + .isEqualTo(Duration.ofSeconds(idleTimeoutSec.toLong())) + + assertThat(it.security.keys) + .isEqualTo(securityKeys) + + assertThat(it.cbs.firstRequestDelay) + .isEqualTo(Duration.ofSeconds(firstReqDelaySec.toLong())) + + assertThat(it.collector.routing) + .isEqualTo(routing) + } + ) + } + } + } }) diff --git a/sources/hv-collector-configuration/src/test/kotlin/org/onap/dcae/collectors/veshv/config/impl/FileConfigurationReaderTest.kt b/sources/hv-collector-configuration/src/test/kotlin/org/onap/dcae/collectors/veshv/config/impl/FileConfigurationReaderTest.kt index ab99f13c..8267e304 100644 --- a/sources/hv-collector-configuration/src/test/kotlin/org/onap/dcae/collectors/veshv/config/impl/FileConfigurationReaderTest.kt +++ b/sources/hv-collector-configuration/src/test/kotlin/org/onap/dcae/collectors/veshv/config/impl/FileConfigurationReaderTest.kt @@ -103,6 +103,18 @@ internal object FileConfigurationReaderTest : Spek({ } } + it("parses disabled security configuration") { + val input = """{ + "security": { + } + }""".trimIndent() + val config = cut.loadConfig(StringReader(input)) + + assertThat(config.security.nonEmpty()).isTrue() + val security = config.security.orNull() as PartialSecurityConfig + assertThat(security.keys.nonEmpty()).isFalse() + } + it("parses invalid log level string to empty option") { val input = """{ "logLevel": something diff --git a/sources/hv-collector-main/Dockerfile b/sources/hv-collector-main/Dockerfile index 3322059c..a1e89a73 100644 --- a/sources/hv-collector-main/Dockerfile +++ b/sources/hv-collector-main/Dockerfile @@ -12,8 +12,11 @@ RUN apt-get update \ WORKDIR /opt/ves-hv-collector ENTRYPOINT ["./entry.sh"] +CMD ["--configuration-file /etc/ves-hv/configuration/base.json"] COPY target/libs/external/* ./ COPY target/libs/internal/* ./ -COPY src/main/scripts/*.sh ./ +COPY src/main/docker/*.sh ./ +COPY src/main/docker/base.json /etc/ves-hv/configuration/base.json + COPY target/hv-collector-main-*.jar ./ diff --git a/sources/hv-collector-main/src/main/docker/base.json b/sources/hv-collector-main/src/main/docker/base.json new file mode 100644 index 00000000..7f88cb6e --- /dev/null +++ b/sources/hv-collector-main/src/main/docker/base.json @@ -0,0 +1,27 @@ +{ + "logLevel": "INFO", + "server": { + "listenPort": 6061, + "idleTimeoutSec": 60, + "maxPayloadSizeBytes": 1048576 + }, + "cbs": { + "firstRequestDelaySec": 10, + "requestIntervalSec": 5 + }, + "security": { + }, + "collector": { + "dummyMode": false, + "maxRequestSizeBytes": 1048576, + "kafkaServers": [ + "message-router-kafka:9092" + ], + "routing": [ + { + "fromDomain": "perf3gpp", + "toTopic": "HV_VES_PERF3GPP" + } + ] + } +} diff --git a/sources/hv-collector-main/src/main/scripts/entry.sh b/sources/hv-collector-main/src/main/docker/entry.sh index a612e393..a612e393 100755 --- a/sources/hv-collector-main/src/main/scripts/entry.sh +++ b/sources/hv-collector-main/src/main/docker/entry.sh diff --git a/sources/hv-collector-main/src/main/scripts/healthcheck.sh b/sources/hv-collector-main/src/main/docker/healthcheck.sh index db62eece..db62eece 100755 --- a/sources/hv-collector-main/src/main/scripts/healthcheck.sh +++ b/sources/hv-collector-main/src/main/docker/healthcheck.sh |