From e4dd72d3804b697f110a79ba5510c654f0765ec5 Mon Sep 17 00:00:00 2001 From: Filip Krzywka Date: Mon, 24 Sep 2018 10:42:47 +0200 Subject: Remove Consul configuration decoding Change-Id: I36a6aea55507abfb61613806c93257b049d6eea4 Issue-ID: DCAEGEN2-827 Signed-off-by: Filip Krzywka --- .../impl/adapters/ConsulConfigurationProvider.kt | 39 ++++++++-------------- 1 file changed, 14 insertions(+), 25 deletions(-) (limited to 'hv-collector-core/src/main/kotlin') diff --git a/hv-collector-core/src/main/kotlin/org/onap/dcae/collectors/veshv/impl/adapters/ConsulConfigurationProvider.kt b/hv-collector-core/src/main/kotlin/org/onap/dcae/collectors/veshv/impl/adapters/ConsulConfigurationProvider.kt index af4bbaa1..ec7c60c0 100644 --- a/hv-collector-core/src/main/kotlin/org/onap/dcae/collectors/veshv/impl/adapters/ConsulConfigurationProvider.kt +++ b/hv-collector-core/src/main/kotlin/org/onap/dcae/collectors/veshv/impl/adapters/ConsulConfigurationProvider.kt @@ -31,7 +31,6 @@ import reactor.retry.Jitter import reactor.retry.Retry import java.io.StringReader import java.time.Duration -import java.util.* import java.util.concurrent.atomic.AtomicReference import javax.json.Json import javax.json.JsonObject @@ -72,41 +71,31 @@ internal class ConsulConfigurationProvider(private val http: HttpAdapter, override fun invoke(): Flux = Flux.interval(firstRequestDelay, requestInterval) - .flatMap { askForConfig() } - .map(::parseJsonResponse) - .map(::extractEncodedConfiguration) + .concatMap { askForConfig() } .flatMap(::filterDifferentValues) - .map(::decodeConfiguration) + .map(::parseJsonResponse) .map(::createCollectorConfiguration) .retryWhen(retry) private fun askForConfig(): Mono = http.get(url) - private fun parseJsonResponse(responseString: String): JsonObject = - Json.createReader(StringReader(responseString)).readArray().first().asJsonObject() - - private fun extractEncodedConfiguration(response: JsonObject): String = - response.getString("Value") - - private fun filterDifferentValues(base64Value: String): Mono { - val newHash = hashOf(base64Value) - return if (newHash == lastConfigurationHash.get()) { - Mono.empty() - } else { - lastConfigurationHash.set(newHash) - Mono.just(base64Value) - } - } + private fun filterDifferentValues(configurationString: String) = + hashOf(configurationString).let { + if (it == lastConfigurationHash.get()) { + Mono.empty() + } else { + lastConfigurationHash.set(it) + Mono.just(configurationString) + } + } private fun hashOf(str: String) = str.hashCode() - private fun decodeConfiguration(encodedConfiguration: String): JsonObject { - val decodedValue = String(Base64.getDecoder().decode(encodedConfiguration)) - logger.info("Obtained new configuration from consul:\n$decodedValue") - return Json.createReader(StringReader(decodedValue)).readObject() - } + private fun parseJsonResponse(responseString: String): JsonObject = + Json.createReader(StringReader(responseString)).readObject() private fun createCollectorConfiguration(configuration: JsonObject): CollectorConfiguration { + logger.info { "Obtained new configuration from consul:\n${configuration}" } val routing = configuration.getJsonArray("collector.routing") return CollectorConfiguration( -- cgit 1.2.3-korg