Revert "Read HV-VES healtcheck api port from cmd line" 39/83339/1
authorPiotr Jaszczyk <piotr.jaszczyk@nokia.com>
Tue, 26 Mar 2019 12:36:10 +0000 (12:36 +0000)
committerPiotr Jaszczyk <piotr.jaszczyk@nokia.com>
Tue, 26 Mar 2019 12:36:10 +0000 (12:36 +0000)
This reverts commit f3d3e6745328b9ec8bb68dfbfb3d3d57aa47b36f.

Change-Id: I9d8813484831483812b0f7062d39e3d031dd7083
Signed-off-by: Piotr Jaszczyk <piotr.jaszczyk@nokia.com>
Issue-ID: DCAEGEN2-1364

sources/hv-collector-commandline/src/main/kotlin/org/onap/dcae/collectors/veshv/commandline/ArgBasedConfiguration.kt
sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/api/ConfigurationModule.kt
sources/hv-collector-configuration/src/main/kotlin/org/onap/dcae/collectors/veshv/config/impl/ArgHvVesConfiguration.kt
sources/hv-collector-configuration/src/test/kotlin/org/onap/dcae/collectors/veshv/config/impl/ArgHvVesConfigurationTest.kt
sources/hv-collector-main/src/main/kotlin/org/onap/dcae/collectors/veshv/main/main.kt
sources/hv-collector-main/src/main/kotlin/org/onap/dcae/collectors/veshv/main/servers/HealthCheckServer.kt

index d8c83ea..93d42f9 100644 (file)
@@ -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<T>(private val parser: CommandLineParser) {
     abstract val cmdLineOptionsList: List<CommandLineOption>
index 1b9248b..9f8c552 100644 (file)
@@ -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<String>): Int = cmd.parseToInt(args).getOrElse { DEFAULT_HEALTHCHECK_PORT }
-
     fun hvVesConfigurationUpdates(args: Array<String>): Flux<HvVesConfiguration> =
-            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) }
index 71ed509..9587d5b 100644 (file)
  */
 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<File>(DefaultParser()) {
+    override val cmdLineOptionsList = listOf(CONFIGURATION_FILE)
 
-    fun getConfiguration(cmdLine: CommandLine): Option<File> =
+    override fun getConfiguration(cmdLine: CommandLine): Option<File> =
             cmdLine.stringValue(CONFIGURATION_FILE).map(::File)
 
-    fun getHealthcheckPort(cmdLine: CommandLine): Option<Int> =
-            cmdLine.intValue(HEALTH_CHECK_API_PORT)
-
-    lateinit var parsingResult: CommandLine
-
-    fun parseToFile(args: Array<out String>): Either<WrongArgumentError, File> {
-        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<out String>): Either<WrongArgumentError, Int> {
-        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<out String>) {
-        if (!this::parsingResult.isInitialized) {
-            parsingResult = parseArgumentsArray(args)
-        }
-    }
-
-    private fun parseArgumentsArray(args: Array<out String>) =
-            cmdLineOptionsList
-                    .map { it.option }
-                    .fold(Options(), Options::addOption)
-                    .let { parser.parse(it, args) }
-
 }
-
-
index 6fe7695..dbe757c 100644 (file)
@@ -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
index 511f5ee..c8a3c01 100644 (file)
@@ -40,7 +40,7 @@ private val logger = Logger("$VES_HV_PACKAGE.main")
 private val hvVesServer = AtomicReference<ServerHandle>()
 
 fun main(args: Array<String>) {
-    HealthCheckServer.start(ConfigurationModule().healthCheckPort(args))
+    HealthCheckServer.start()
     ConfigurationModule()
             .hvVesConfigurationUpdates(args)
             .publishOn(Schedulers.single(Schedulers.elastic()))
index 9b58dcc..bc284d0 100644 (file)
@@ -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)