From 53dbf8e66ad83c2d5f06279a0d7446e5e8be68e8 Mon Sep 17 00:00:00 2001 From: Jakub Dudycz Date: Mon, 23 Jul 2018 14:51:00 +0200 Subject: Configure xnf simulator api listen port Closes ONAP-664 Closes ONAP-647 Change-Id: I8d1e57c0c66f1968925660fe47fa96a2a634c039 Signed-off-by: Jakub Dudycz Issue-ID: DCAEGEN2-601 --- .../xnf/config/ArgConfigurationProvider.kt | 20 +++++++------ .../xnf/config/SimulatorConfiguration.kt | 4 +-- .../veshv/simulators/xnf/impl/HttpServer.kt | 4 +-- .../veshv/simulators/xnf/impl/XnfSimulator.kt | 8 +++--- .../dcae/collectors/veshv/simulators/xnf/main.kt | 33 ++++++++++++---------- .../main/config/ArgConfigurationProviderTest.kt | 24 +++------------- 6 files changed, 40 insertions(+), 53 deletions(-) (limited to 'hv-collector-xnf-simulator') diff --git a/hv-collector-xnf-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/xnf/config/ArgConfigurationProvider.kt b/hv-collector-xnf-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/xnf/config/ArgConfigurationProvider.kt index 96e65778..8954fd22 100644 --- a/hv-collector-xnf-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/xnf/config/ArgConfigurationProvider.kt +++ b/hv-collector-xnf-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/xnf/config/ArgConfigurationProvider.kt @@ -34,7 +34,7 @@ internal class ArgConfigurationProvider : ArgBasedConfiguration = IO { + fun start(port: Int): IO = IO { RatpackServer.start { server -> server.serverConfig(ServerConfig.embedded().port(port)) .handlers(this::configureHandlers) @@ -113,7 +112,6 @@ internal class HttpServer(private val vesClient: XnfSimulator) { companion object { private val logger = Logger(HttpServer::class) - const val DEFAULT_PORT = 5000 const val STATUS_OK = 200 const val STATUS_BAD_REQUEST = 400 const val CONTENT_TYPE_APPLICATION_JSON = "application/json" diff --git a/hv-collector-xnf-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/xnf/impl/XnfSimulator.kt b/hv-collector-xnf-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/xnf/impl/XnfSimulator.kt index 2f9e0b59..e8a474d0 100644 --- a/hv-collector-xnf-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/xnf/impl/XnfSimulator.kt +++ b/hv-collector-xnf-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/xnf/impl/XnfSimulator.kt @@ -25,8 +25,8 @@ import io.netty.handler.ssl.SslContext import io.netty.handler.ssl.SslContextBuilder import io.netty.handler.ssl.SslProvider import org.onap.dcae.collectors.veshv.domain.EndOfTransmissionMessage -import org.onap.dcae.collectors.veshv.domain.SecurityConfiguration import org.onap.dcae.collectors.veshv.domain.PayloadWireFrameMessage +import org.onap.dcae.collectors.veshv.domain.SecurityConfiguration import org.onap.dcae.collectors.veshv.domain.WireFrameEncoder import org.onap.dcae.collectors.veshv.simulators.xnf.config.SimulatorConfiguration import org.onap.dcae.collectors.veshv.utils.logging.Logger @@ -73,8 +73,8 @@ internal class XnfSimulator(private val configuration: SimulatorConfiguration) { private fun handler(complete: ReplayProcessor, messages: Flux, - nettyOutbound: NettyOutbound): - Publisher { + nettyOutbound: NettyOutbound): Publisher { + val allocator = nettyOutbound.alloc() val encoder = WireFrameEncoder(allocator) val frames = messages @@ -109,8 +109,8 @@ internal class XnfSimulator(private val configuration: SimulatorConfiguration) { } companion object { + private val logger = Logger(XnfSimulator::class) private const val MAX_BATCH_SIZE = 128 private const val eotMessageByte = EndOfTransmissionMessage.MARKER_BYTE - private val logger = Logger(XnfSimulator::class) } } diff --git a/hv-collector-xnf-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/xnf/main.kt b/hv-collector-xnf-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/xnf/main.kt index facf611a..a47cef58 100644 --- a/hv-collector-xnf-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/xnf/main.kt +++ b/hv-collector-xnf-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/xnf/main.kt @@ -36,18 +36,21 @@ const val PROGRAM_NAME = "java $PACKAGE_NAME.MainKt" * @author Jakub Dudycz * @since June 2018 */ -fun main(args: Array) = - ArgConfigurationProvider().parse(args) - .mapLeft(handleWrongArgumentErrorCurried(PROGRAM_NAME)) - .map(::XnfSimulator) - .map(::HttpServer) - .map { it.start().void() } - .unsafeRunEitherSync( - { ex -> - logger.error("Failed to start a server", ex) - ExitFailure(1) - }, - { - logger.info("Started xNF Simulator API server") - } - ) +fun main(args: Array) = ArgConfigurationProvider().parse(args) + .mapLeft(handleWrongArgumentErrorCurried(PROGRAM_NAME)) + .map { + XnfSimulator(it) + .run(::HttpServer) + .start(it.listenPort) + .void() + } + .unsafeRunEitherSync( + { ex -> + logger.error("Failed to start a server", ex) + ExitFailure(1) + }, + { + logger.info("Started xNF Simulator API server") + } + ) + diff --git a/hv-collector-xnf-simulator/src/test/kotlin/org/onap/dcae/collectors/veshv/main/config/ArgConfigurationProviderTest.kt b/hv-collector-xnf-simulator/src/test/kotlin/org/onap/dcae/collectors/veshv/main/config/ArgConfigurationProviderTest.kt index fccd8b5a..04d81c74 100644 --- a/hv-collector-xnf-simulator/src/test/kotlin/org/onap/dcae/collectors/veshv/main/config/ArgConfigurationProviderTest.kt +++ b/hv-collector-xnf-simulator/src/test/kotlin/org/onap/dcae/collectors/veshv/main/config/ArgConfigurationProviderTest.kt @@ -28,7 +28,7 @@ import org.jetbrains.spek.api.dsl.it import org.jetbrains.spek.api.dsl.on import org.onap.dcae.collectors.veshv.domain.SecurityConfiguration import org.onap.dcae.collectors.veshv.simulators.xnf.config.ArgConfigurationProvider -import org.onap.dcae.collectors.veshv.simulators.xnf.config.ArgConfigurationProvider.* +import org.onap.dcae.collectors.veshv.simulators.xnf.config.ArgConfigurationProvider.DefaultValues import org.onap.dcae.collectors.veshv.simulators.xnf.config.SimulatorConfiguration import java.nio.file.Paths import kotlin.test.assertTrue @@ -36,7 +36,6 @@ import kotlin.test.assertTrue object ArgConfigurationProviderTest : Spek({ lateinit var cut: ArgConfigurationProvider - val messagesAmount = 3L val vesHost = "localhosting" val pk = Paths.get("/", "etc", "ves", "pk.pem") val cert = Paths.get("/", "etc", "ssl", "certs", "ca-bundle.crt") @@ -61,7 +60,6 @@ object ArgConfigurationProviderTest : Spek({ result = parse("--ssl-disable", "--ves-port", "6969", "--ves-host", vesHost, - "--messages", messagesAmount.toString(), "--private-key-file", pk.toFile().absolutePath, "--cert-file", cert.toFile().absolutePath, "--trust-cert-file", trustCert.toFile().absolutePath) @@ -71,11 +69,6 @@ object ArgConfigurationProviderTest : Spek({ assertThat(result.vesPort).isEqualTo(6969) } - - it("should set proper config url") { - assertThat(result.messagesAmount).isEqualTo(messagesAmount) - } - it("should set proper security configuration") { assertThat(result.security).isEqualTo( SecurityConfiguration(sslDisable = true, privateKey = pk, cert = cert, trustedCert = trustCert) @@ -86,26 +79,18 @@ object ArgConfigurationProviderTest : Spek({ given("some parameters are present in the short form") { beforeEachTest { - result = parse("-h", "ves-hv", "--ves-port", "666", "-m", messagesAmount.toString()) + result = parse("-h", "ves-hv", "--ves-port", "666") } it("should set proper port") { assertThat(result.vesPort).isEqualTo(666) } - - it("should set proper messages amount") { - assertThat(result.messagesAmount).isEqualTo(messagesAmount) - } } given("all optional parameters are absent") { beforeEachTest { - result = parse("-h", "ves-hv", "-p", "666") - } - - it("should set default messages amount") { - assertThat(result.messagesAmount).isEqualTo(DefaultValues.MESSAGES_AMOUNT) + result = parse("-h", "ves-hv", "-v", "666") } on("security config") { @@ -130,7 +115,6 @@ object ArgConfigurationProviderTest : Spek({ result = parse("--ssl-disable", "--ves-port", "888", "--ves-host", vesHost, - "--messages", messagesAmount.toString(), "--private-key-file", pk.toFile().absolutePath, "--cert-file", cert.toFile().absolutePath, "--trust-cert-file", trustCert.toFile().absolutePath) @@ -139,7 +123,7 @@ object ArgConfigurationProviderTest : Spek({ on("security config") { val securityConfiguration = result.security - it("should set ssl disable to true"){ + it("should set ssl disable to true") { assertTrue(securityConfiguration.sslDisable) } -- cgit 1.2.3-korg