From cb08e0822cc44fc7b382e9b48682ab93607f7c43 Mon Sep 17 00:00:00 2001 From: Piotr Jaszczyk Date: Tue, 26 Mar 2019 12:36:10 +0000 Subject: Revert "Read HV-VES healtcheck api port from cmd line" This reverts commit f3d3e6745328b9ec8bb68dfbfb3d3d57aa47b36f. Change-Id: I9d8813484831483812b0f7062d39e3d031dd7083 Signed-off-by: Piotr Jaszczyk Issue-ID: DCAEGEN2-1364 --- .../veshv/commandline/ArgBasedConfiguration.kt | 3 ++ .../veshv/config/api/ConfigurationModule.kt | 6 +-- .../veshv/config/impl/ArgHvVesConfiguration.kt | 62 ++-------------------- .../veshv/config/impl/ArgHvVesConfigurationTest.kt | 16 ++---- .../org/onap/dcae/collectors/veshv/main/main.kt | 2 +- .../veshv/main/servers/HealthCheckServer.kt | 3 +- 6 files changed, 14 insertions(+), 78 deletions(-) diff --git a/sources/hv-collector-commandline/src/main/kotlin/org/onap/dcae/collectors/veshv/commandline/ArgBasedConfiguration.kt b/sources/hv-collector-commandline/src/main/kotlin/org/onap/dcae/collectors/veshv/commandline/ArgBasedConfiguration.kt index d8c83ea0..93d42f96 100644 --- a/sources/hv-collector-commandline/src/main/kotlin/org/onap/dcae/collectors/veshv/commandline/ArgBasedConfiguration.kt +++ b/sources/hv-collector-commandline/src/main/kotlin/org/onap/dcae/collectors/veshv/commandline/ArgBasedConfiguration.kt @@ -26,6 +26,9 @@ import arrow.core.flatMap import org.apache.commons.cli.CommandLine import org.apache.commons.cli.CommandLineParser import org.apache.commons.cli.Options +import java.io.File +import java.nio.file.Path +import java.nio.file.Paths abstract class ArgBasedConfiguration(private val parser: CommandLineParser) { abstract val cmdLineOptionsList: List 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 1b9248b5..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 @@ -19,7 +19,6 @@ */ package org.onap.dcae.collectors.veshv.config.api -import arrow.core.getOrElse import org.onap.dcae.collectors.veshv.config.api.model.HvVesConfiguration import org.onap.dcae.collectors.veshv.config.api.model.MissingArgumentException import org.onap.dcae.collectors.veshv.config.api.model.ValidationException @@ -30,16 +29,13 @@ import org.onap.dcae.collectors.veshv.utils.arrow.throwOnLeft import reactor.core.publisher.Flux class ConfigurationModule { - private val DEFAULT_HEALTHCHECK_PORT: Int = 6060 private val cmd = ArgHvVesConfiguration() private val configReader = FileConfigurationReader() private val configValidator = ConfigurationValidator() - fun healthCheckPort(args: Array): Int = cmd.parseToInt(args).getOrElse { DEFAULT_HEALTHCHECK_PORT } - fun hvVesConfigurationUpdates(args: Array): Flux = - Flux.just(cmd.parseToFile(args)) + Flux.just(cmd.parse(args)) .throwOnLeft { MissingArgumentException(it.message, it.cause) } .map { it.reader().use(configReader::loadConfig) } .map { configValidator.validate(it) } diff --git a/sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/impl/ArgHvVesConfiguration.kt b/sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/impl/ArgHvVesConfiguration.kt index 71ed509b..9587d5b0 100644 --- a/sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/impl/ArgHvVesConfiguration.kt +++ b/sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/impl/ArgHvVesConfiguration.kt @@ -19,72 +19,18 @@ */ package org.onap.dcae.collectors.veshv.config.impl -import arrow.core.Either import arrow.core.Option -import arrow.core.Try -import arrow.core.flatMap import org.apache.commons.cli.CommandLine -import org.apache.commons.cli.CommandLineParser import org.apache.commons.cli.DefaultParser -import org.apache.commons.cli.Options +import org.onap.dcae.collectors.veshv.commandline.ArgBasedConfiguration import org.onap.dcae.collectors.veshv.commandline.CommandLineOption.CONFIGURATION_FILE -import org.onap.dcae.collectors.veshv.commandline.CommandLineOption.HEALTH_CHECK_API_PORT -import org.onap.dcae.collectors.veshv.commandline.WrongArgumentError -import org.onap.dcae.collectors.veshv.commandline.intValue import org.onap.dcae.collectors.veshv.commandline.stringValue import java.io.File -class ArgHvVesConfiguration(private val parser: CommandLineParser = DefaultParser()) { - val cmdLineOptionsList = listOf(CONFIGURATION_FILE, HEALTH_CHECK_API_PORT) +internal class ArgHvVesConfiguration : ArgBasedConfiguration(DefaultParser()) { + override val cmdLineOptionsList = listOf(CONFIGURATION_FILE) - fun getConfiguration(cmdLine: CommandLine): Option = + override fun getConfiguration(cmdLine: CommandLine): Option = cmdLine.stringValue(CONFIGURATION_FILE).map(::File) - fun getHealthcheckPort(cmdLine: CommandLine): Option = - cmdLine.intValue(HEALTH_CHECK_API_PORT) - - lateinit var parsingResult: CommandLine - - fun parseToFile(args: Array): Either { - parseIfEmpty(args) - return Try { parsingResult }.toEither() - .mapLeft { WrongArgumentError(it, cmdLineOptionsList) } - .map(this::getConfiguration) - .flatMap { - it.toEither { - WrongArgumentError( - message = "Unexpected error when parsing command line arguments", - cmdLineOptionsList = cmdLineOptionsList) - } - } - } - - fun parseToInt(args: Array): Either { - parseIfEmpty(args) - return Try { parsingResult }.toEither() - .mapLeft { WrongArgumentError(it, cmdLineOptionsList) } - .map(this::getHealthcheckPort) - .flatMap { - it.toEither { - WrongArgumentError( - message = "Unexpected error when parsing command line arguments", - cmdLineOptionsList = cmdLineOptionsList) - } - } - } - - private fun parseIfEmpty(args: Array) { - if (!this::parsingResult.isInitialized) { - parsingResult = parseArgumentsArray(args) - } - } - - private fun parseArgumentsArray(args: Array) = - cmdLineOptionsList - .map { it.option } - .fold(Options(), Options::addOption) - .let { parser.parse(it, args) } - } - - diff --git a/sources/hv-collector-configuration/src/test/kotlin/org/onap/dcae/collectors/veshv/config/impl/ArgHvVesConfigurationTest.kt b/sources/hv-collector-configuration/src/test/kotlin/org/onap/dcae/collectors/veshv/config/impl/ArgHvVesConfigurationTest.kt index 6fe76958..dbe757c4 100644 --- a/sources/hv-collector-configuration/src/test/kotlin/org/onap/dcae/collectors/veshv/config/impl/ArgHvVesConfigurationTest.kt +++ b/sources/hv-collector-configuration/src/test/kotlin/org/onap/dcae/collectors/veshv/config/impl/ArgHvVesConfigurationTest.kt @@ -19,7 +19,6 @@ */ package org.onap.dcae.collectors.veshv.config.impl -import arrow.core.identity import org.assertj.core.api.Assertions.assertThat import org.jetbrains.spek.api.Spek import org.jetbrains.spek.api.dsl.describe @@ -28,6 +27,8 @@ import org.jetbrains.spek.api.dsl.it import org.jetbrains.spek.api.dsl.on import org.onap.dcae.collectors.veshv.commandline.WrongArgumentError import org.onap.dcae.collectors.veshv.tests.utils.absoluteResourcePath +import org.onap.dcae.collectors.veshv.tests.utils.parseExpectingFailure +import org.onap.dcae.collectors.veshv.tests.utils.parseExpectingSuccess import java.io.File /** @@ -69,15 +70,4 @@ object ArgVesHvConfigurationTest : Spek({ } } } -}) - -fun ArgHvVesConfiguration.parseExpectingSuccess(vararg cmdLine: String): File = - parseToFile(cmdLine).fold( - { throw AssertionError("Parsing result should be present") }, - ::identity - ) - -fun ArgHvVesConfiguration.parseExpectingFailure(vararg cmdLine: String): WrongArgumentError = - parseToFile(cmdLine).fold( - ::identity - ) { throw AssertionError("parsing should have failed") } +}) \ No newline at end of file diff --git a/sources/hv-collector-main/src/main/kotlin/org/onap/dcae/collectors/veshv/main/main.kt b/sources/hv-collector-main/src/main/kotlin/org/onap/dcae/collectors/veshv/main/main.kt index 511f5ee3..c8a3c013 100644 --- a/sources/hv-collector-main/src/main/kotlin/org/onap/dcae/collectors/veshv/main/main.kt +++ b/sources/hv-collector-main/src/main/kotlin/org/onap/dcae/collectors/veshv/main/main.kt @@ -40,7 +40,7 @@ private val logger = Logger("$VES_HV_PACKAGE.main") private val hvVesServer = AtomicReference() fun main(args: Array) { - HealthCheckServer.start(ConfigurationModule().healthCheckPort(args)) + HealthCheckServer.start() ConfigurationModule() .hvVesConfigurationUpdates(args) .publishOn(Schedulers.single(Schedulers.elastic())) diff --git a/sources/hv-collector-main/src/main/kotlin/org/onap/dcae/collectors/veshv/main/servers/HealthCheckServer.kt b/sources/hv-collector-main/src/main/kotlin/org/onap/dcae/collectors/veshv/main/servers/HealthCheckServer.kt index 9b58dcc9..bc284d08 100644 --- a/sources/hv-collector-main/src/main/kotlin/org/onap/dcae/collectors/veshv/main/servers/HealthCheckServer.kt +++ b/sources/hv-collector-main/src/main/kotlin/org/onap/dcae/collectors/veshv/main/servers/HealthCheckServer.kt @@ -34,9 +34,10 @@ import java.net.InetSocketAddress */ object HealthCheckServer { + private const val DEFAULT_HEALTHCHECK_PORT = 6060 private val logger = Logger(HealthCheckServer::class) - fun start(port: Int) = + fun start(port: Int = DEFAULT_HEALTHCHECK_PORT) = createHealthCheckServer(port) .start() .then(::logServerStarted) -- cgit 1.2.3-korg