aboutsummaryrefslogtreecommitdiffstats
path: root/sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/impl/ConfigurationValidator.kt
diff options
context:
space:
mode:
authorPiotr Jaszczyk <piotr.jaszczyk@nokia.com>2019-04-10 06:23:20 +0000
committerGerrit Code Review <gerrit@onap.org>2019-04-10 06:23:20 +0000
commitc9829d23c12b2824a0d56ee6efbd00ad67b9046e (patch)
tree383f11c46d941f5596e6f775b2c40d680e36aea8 /sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/impl/ConfigurationValidator.kt
parent8809461fd30a83335ede35b342fe4425d2df840d (diff)
parent325387e62a0793871dc1eb97f02a4ae90a977664 (diff)
Merge "Parse whole dynamic configuration"
Diffstat (limited to 'sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/impl/ConfigurationValidator.kt')
-rw-r--r--sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/impl/ConfigurationValidator.kt38
1 files changed, 28 insertions, 10 deletions
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 cfcc7d76..dddf0bed 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
@@ -23,19 +23,25 @@ import arrow.core.None
import arrow.core.Option
import arrow.core.Some
import arrow.core.getOrElse
+import arrow.core.toOption
import org.onap.dcae.collectors.veshv.config.api.model.CbsConfiguration
import org.onap.dcae.collectors.veshv.config.api.model.CollectorConfiguration
import org.onap.dcae.collectors.veshv.config.api.model.HvVesConfiguration
+import org.onap.dcae.collectors.veshv.config.api.model.Route
import org.onap.dcae.collectors.veshv.config.api.model.ServerConfiguration
import org.onap.dcae.collectors.veshv.config.api.model.ValidationException
import org.onap.dcae.collectors.veshv.ssl.boundary.SecurityConfiguration
-import org.onap.dcae.collectors.veshv.ssl.boundary.SecurityKeysPaths
import org.onap.dcae.collectors.veshv.utils.arrow.OptionUtils.binding
-import org.onap.dcae.collectors.veshv.utils.arrow.mapBinding
import org.onap.dcae.collectors.veshv.utils.arrow.doOnEmpty
+import org.onap.dcae.collectors.veshv.utils.arrow.mapBinding
import org.onap.dcae.collectors.veshv.utils.logging.LogLevel
import org.onap.dcae.collectors.veshv.utils.logging.Logger
+import org.onap.dcaegen2.services.sdk.security.ssl.ImmutableSecurityKeys
+import org.onap.dcaegen2.services.sdk.security.ssl.ImmutableSecurityKeysStore
+import org.onap.dcaegen2.services.sdk.security.ssl.Passwords
import java.io.File
+import java.nio.file.Path
+import java.time.Duration
/**
* @author Jakub Dudycz <jakub.dudycz@nokia.com>
@@ -88,16 +94,16 @@ internal class ConfigurationValidator {
partial.mapBinding {
ServerConfiguration(
it.listenPort.bind(),
- it.idleTimeoutSec.bind(),
- it.maxPayloadSizeBytes.bind()
+ it.maxPayloadSizeBytes.bind(),
+ Duration.ofSeconds(it.idleTimeoutSec.bind())
)
}
internal fun validatedCbsConfiguration(partial: PartialConfiguration) =
partial.mapBinding {
CbsConfiguration(
- it.firstRequestDelaySec.bind(),
- it.requestIntervalSec.bind()
+ Duration.ofSeconds(it.firstRequestDelaySec.bind()),
+ Duration.ofSeconds(it.requestIntervalSec.bind())
)
}
@@ -113,19 +119,31 @@ internal class ConfigurationValidator {
private fun createSecurityConfiguration(partial: PartialConfiguration): Option<SecurityConfiguration> =
partial.mapBinding {
SecurityConfiguration(
- Option.fromNullable(SecurityKeysPaths(
+ createSecurityKeys(
File(it.keyStoreFile.bind()).toPath(),
it.keyStorePassword.bind(),
File(it.trustStoreFile.bind()).toPath(),
it.trustStorePassword.bind()
- ).asImmutableSecurityKeys())
+ ).toOption()
)
}
+ private fun createSecurityKeys(keyStorePath: Path,
+ keyStorePassword: String,
+ trustStorePath: Path,
+ trustStorePassword: String) =
+ ImmutableSecurityKeys.builder()
+ .keyStore(ImmutableSecurityKeysStore.of(keyStorePath))
+ .keyStorePassword(Passwords.fromString(keyStorePassword))
+ .trustStore(ImmutableSecurityKeysStore.of(trustStorePath))
+ .trustStorePassword(Passwords.fromString(trustStorePassword))
+ .build()
+
+
private fun validatedCollectorConfig(partial: PartialConfiguration) =
- partial.mapBinding {
+ partial.mapBinding { config ->
CollectorConfiguration(
- it.routing.bind()
+ config.streamPublishers.bind().map { Route(it.name(), it) }
)
}