Skip to content

Commit dda13d7

Browse files
committed
rydder i Configuration.kt
1 parent 15ac99e commit dda13d7

File tree

6 files changed

+70
-58
lines changed

6 files changed

+70
-58
lines changed

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ dependencies {
3333
val ktorVersion = "2.0.1"
3434
implementation("io.ktor:ktor-server-auth:$ktorVersion")
3535
implementation("io.ktor:ktor-server-content-negotiation:$ktorVersion")
36+
implementation("io.ktor:ktor-server-call-logging:$ktorVersion")
3637
implementation("io.ktor:ktor-serialization-jackson:$ktorVersion")
3738

3839
// Testing

src/main/kotlin/no/nav/hjelpemidler/Application.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,18 @@ import io.ktor.serialization.jackson.jackson
55
import io.ktor.server.application.install
66
import io.ktor.server.auth.Authentication
77
import io.ktor.server.auth.authenticate
8+
import io.ktor.server.plugins.callloging.CallLogging
89
import io.ktor.server.plugins.contentnegotiation.ContentNegotiation
910
import io.ktor.server.routing.routing
1011
import mu.KotlinLogging
1112
import no.nav.helse.rapids_rivers.KafkaConfig
1213
import no.nav.helse.rapids_rivers.RapidApplication
1314
import no.nav.helse.rapids_rivers.RapidsConnection
14-
import no.nav.hjelpemidler.api.ordrelinjeAPI
1515
import no.nav.hjelpemidler.api.ordreAPI
16+
import no.nav.hjelpemidler.api.ordrelinjeAPI
1617
import no.nav.hjelpemidler.api.serviceforespørselAPI
1718
import no.nav.hjelpemidler.configuration.Configuration
19+
import org.slf4j.event.Level
1820
import java.net.InetAddress
1921

2022
private val logg = KotlinLogging.logger {}
@@ -49,6 +51,9 @@ fun main() {
4951
Configuration.rapidConfig["HTTP_PORT"]!!.toInt(),
5052
)
5153
).withKtorModule {
54+
install(CallLogging) {
55+
level = Level.DEBUG
56+
}
5257
install(ContentNegotiation) {
5358
jackson {
5459
registerModule(JavaTimeModule())
@@ -72,7 +77,7 @@ fun main() {
7277
}.build()
7378

7479
// Run our rapid and rivers implementation facing hm-rapid
75-
logg.info("Starting Rapid & Rivers app towards hm-rapid")
80+
logg.info("hm-oebs-listener with profile: ${Configuration.profile} starting...")
7681
rapidApp.start()
77-
logg.info("Application ending.")
82+
logg.info("Application stopping...")
7883
}

src/main/kotlin/no/nav/hjelpemidler/api/HotSak.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ fun parseHotsakOrdrelinje(context: Context, ordrelinje: OrdrelinjeOebs) {
2424

2525
PostToSlack().post(
2626
Configuration.application["SLACK_HOOK"]!!,
27-
"*${Configuration.application["APP_PROFILE"]!!.uppercase()}* - Manglende felt i Hotsak Oebs ordrelinje: ```$message```",
27+
"*${Configuration.profile}* - Manglende felt i Hotsak Oebs ordrelinje: ```$message```",
2828
"#digihot-hotsak-varslinger-dev"
2929
)
3030
throw RuntimeException("Ugyldig Hotsak ordrelinje")

src/main/kotlin/no/nav/hjelpemidler/api/InfotrygdSak.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ fun parseInfotrygdOrdrelinje(context: Context, ordrelinje: OrdrelinjeOebs) {
2424

2525
PostToSlack().post(
2626
Configuration.application["SLACK_HOOK"]!!,
27-
"*${Configuration.application["APP_PROFILE"]!!.uppercase()}* - Manglande felt i Vedtak Infotrygd-melding: ```$message```",
27+
"*${Configuration.profile}* - Manglande felt i Vedtak Infotrygd-melding: ```$message```",
2828
"#digihot-brukers-hjelpemiddelside-dev"
2929
)
3030
throw RuntimeException("Ugyldig Infotrygd ordelinje")

src/main/kotlin/no/nav/hjelpemidler/api/OrdrelinjeAPI.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ private suspend fun parseOrdrelinje(context: Context, call: ApplicationCall): Or
7272

7373
val requestBody: String = call.receiveText()
7474
context.metrics.meldingFraOebs()
75-
if (Configuration.application["APP_PROFILE"] != "prod") {
75+
if (Configuration.profile != Configuration.Profile.PROD) {
7676
sikkerlogg.info("Received $incomingFormatType push request from OEBS: $requestBody")
7777
}
7878

@@ -84,7 +84,7 @@ private suspend fun parseOrdrelinje(context: Context, call: ApplicationCall): Or
8484
} else {
8585
mapperJson.readValue(requestBody)
8686
}
87-
if (Configuration.application["APP_PROFILE"] != "prod") {
87+
if (Configuration.profile != Configuration.Profile.PROD) {
8888
sikkerlogg.info(
8989
"Parsing incoming $incomingFormatType request successful: ${
9090
mapperJson.writeValueAsString(
@@ -98,7 +98,7 @@ private suspend fun parseOrdrelinje(context: Context, call: ApplicationCall): Or
9898
} catch (e: Exception) {
9999
// Deal with invalid json/xml in request
100100
sikkerlogg.info("Parsing incoming $incomingFormatType request failed with exception (responding 4xx): $e")
101-
if (Configuration.application["APP_PROFILE"] != "prod") {
101+
if (Configuration.profile != Configuration.Profile.PROD) {
102102
sikkerlogg.info(
103103
"$incomingFormatType in failed parsing: ${mapperJson.writeValueAsString(requestBody)}"
104104
)
@@ -111,7 +111,7 @@ private suspend fun parseOrdrelinje(context: Context, call: ApplicationCall): Or
111111

112112
private fun sendUvalidertOrdrelinjeTilRapid(context: Context, ordrelinje: RåOrdrelinje) {
113113
try {
114-
logg.info("Publiserer uvalidert ordrelinje med OebsId ${ordrelinje.oebsId} til rapid i miljø ${Configuration.application["APP_PROFILE"]}")
114+
logg.info("Publiserer uvalidert ordrelinje med OebsId ${ordrelinje.oebsId} til rapid i miljø ${Configuration.profile}")
115115
context.publish(
116116
ordrelinje.fnrBruker, mapperJson.writeValueAsString(
117117
UvalidertOrdrelinjeMessage(
@@ -167,7 +167,7 @@ private fun publiserMelding(
167167
melding: OrdrelinjeMessage,
168168
) {
169169
try {
170-
logg.info("Publiserer ordrelinje med OebsId ${ordrelinje.oebsId} til rapid i miljø ${Configuration.application["APP_PROFILE"]}")
170+
logg.info("Publiserer ordrelinje med OebsId ${ordrelinje.oebsId} til rapid i miljø ${Configuration.profile}")
171171
context.publish(ordrelinje.fnrBruker, mapperJson.writeValueAsString(melding))
172172
context.metrics.meldingTilRapidSuksess()
173173

src/main/kotlin/no/nav/hjelpemidler/configuration/Configuration.kt

Lines changed: 54 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -9,73 +9,79 @@ import com.natpryce.konfig.stringType
99

1010
internal object Configuration {
1111

12-
private fun config() = when (System.getenv("NAIS_CLUSTER_NAME") ?: System.getProperty("NAIS_CLUSTER_NAME")) {
13-
"dev-gcp" -> ConfigurationProperties.systemProperties() overriding EnvironmentVariables overriding devProperties
14-
"prod-gcp" -> ConfigurationProperties.systemProperties() overriding EnvironmentVariables overriding prodProperties
15-
else -> {
16-
ConfigurationProperties.systemProperties() overriding EnvironmentVariables overriding localProperties
17-
}
18-
}
19-
2012
private val prodProperties = ConfigurationMap(
21-
mapOf(
22-
"HTTP_PORT" to "8080",
13+
Profile.PROD.pair(),
2314

24-
"kafka.aiven.topic" to "teamdigihot.hm-soknadsbehandling-v1",
25-
"kafka.reset.policy" to "latest",
15+
"HTTP_PORT" to "8080",
2616

27-
"application.profile" to "prod",
28-
"SENSU_URL" to "https://digihot-proxy.prod-fss-pub.nais.io/sensu",
29-
)
17+
"kafka.aiven.topic" to "teamdigihot.hm-soknadsbehandling-v1",
18+
"kafka.reset.policy" to "latest",
19+
20+
"SENSU_URL" to "https://digihot-proxy.prod-fss-pub.nais.io/sensu",
3021
)
3122

3223
private val devProperties = ConfigurationMap(
33-
mapOf(
34-
"HTTP_PORT" to "8080",
24+
Profile.DEV.pair(),
25+
26+
"HTTP_PORT" to "8080",
3527

36-
"kafka.aiven.topic" to "teamdigihot.hm-soknadsbehandling-v1",
37-
"kafka.reset.policy" to "latest",
28+
"kafka.aiven.topic" to "teamdigihot.hm-soknadsbehandling-v1",
29+
"kafka.reset.policy" to "latest",
3830

39-
"application.profile" to "dev",
40-
"SENSU_URL" to "https://digihot-proxy.dev-fss-pub.nais.io/sensu",
41-
)
31+
"SENSU_URL" to "https://digihot-proxy.dev-fss-pub.nais.io/sensu",
4232
)
4333

4434
private val localProperties = ConfigurationMap(
45-
mapOf(
46-
"HTTP_PORT" to "8085",
47-
"OEBSTOKEN" to "abc",
48-
49-
"kafka.reset.policy" to "earliest",
50-
"KAFKA_TRUSTSTORE_PATH" to "",
51-
"KAFKA_CREDSTORE_PASSWORD" to "",
52-
"KAFKA_KEYSTORE_PATH" to "",
53-
"kafka.brokers" to "host.docker.internal:9092",
54-
"kafka.aiven.topic" to "teamdigihot.hm-soknadsbehandling-v1",
55-
"kafka.reset.policy" to "earliest",
56-
"application.profile" to "local",
57-
"SENSU_URL" to "https://test",
58-
"SLACK_HOOK" to "https://test/slack"
59-
)
35+
Profile.LOCAL.pair(),
36+
37+
"HTTP_PORT" to "8085",
38+
"OEBSTOKEN" to "abc",
39+
40+
"kafka.aiven.topic" to "teamdigihot.hm-soknadsbehandling-v1",
41+
"kafka.reset.policy" to "earliest",
42+
"kafka.brokers" to "host.docker.internal:9092",
43+
"kafka.reset.policy" to "earliest",
44+
"KAFKA_KEYSTORE_PATH" to "",
45+
"KAFKA_TRUSTSTORE_PATH" to "",
46+
"KAFKA_CREDSTORE_PASSWORD" to "",
47+
48+
"SENSU_URL" to "https://test",
49+
"SLACK_HOOK" to "https://test/slack"
6050
)
6151

52+
private val config = when (System.getenv("NAIS_CLUSTER_NAME") ?: System.getProperty("NAIS_CLUSTER_NAME")) {
53+
"dev-gcp" -> ConfigurationProperties.systemProperties() overriding EnvironmentVariables() overriding devProperties
54+
"prod-gcp" -> ConfigurationProperties.systemProperties() overriding EnvironmentVariables() overriding prodProperties
55+
else -> ConfigurationProperties.systemProperties() overriding EnvironmentVariables() overriding localProperties
56+
}
57+
58+
operator fun get(name: String): String = config[Key(name, stringType)]
59+
6260
val rapidConfig: Map<String, String> = mapOf(
6361
"RAPID_KAFKA_CLUSTER" to "gcp",
6462
"RAPID_APP_NAME" to "hm-oebs-listener",
65-
"KAFKA_BROKERS" to config()[Key("kafka.brokers", stringType)],
63+
"KAFKA_BROKERS" to get("kafka.brokers"),
6664
"KAFKA_CONSUMER_GROUP_ID" to "hm-oebs-listener-v1",
67-
"KAFKA_RAPID_TOPIC" to config()[Key("kafka.aiven.topic", stringType)],
68-
"KAFKA_RESET_POLICY" to config()[Key("kafka.reset.policy", stringType)],
69-
"KAFKA_TRUSTSTORE_PATH" to config()[Key("KAFKA_TRUSTSTORE_PATH", stringType)],
70-
"KAFKA_KEYSTORE_PATH" to config()[Key("KAFKA_KEYSTORE_PATH", stringType)],
71-
"KAFKA_CREDSTORE_PASSWORD" to config()[Key("KAFKA_CREDSTORE_PASSWORD", stringType)],
72-
"HTTP_PORT" to config()[Key("HTTP_PORT", stringType)],
65+
"KAFKA_RAPID_TOPIC" to get("kafka.aiven.topic"),
66+
"KAFKA_RESET_POLICY" to get("kafka.reset.policy"),
67+
"KAFKA_KEYSTORE_PATH" to get("KAFKA_KEYSTORE_PATH"),
68+
"KAFKA_TRUSTSTORE_PATH" to get("KAFKA_TRUSTSTORE_PATH"),
69+
"KAFKA_CREDSTORE_PASSWORD" to get("KAFKA_CREDSTORE_PASSWORD"),
70+
"HTTP_PORT" to get("HTTP_PORT"),
7371
) + System.getenv().filter { it.key.startsWith("NAIS_") }
7472

7573
val application: Map<String, String> = mapOf(
76-
"APP_PROFILE" to config()[Key("application.profile", stringType)],
77-
"SENSU_URL" to config()[Key("SENSU_URL", stringType)],
78-
"OEBSTOKEN" to config()[Key("OEBSTOKEN", stringType)],
79-
"SLACK_HOOK" to config()[Key("SLACK_HOOK", stringType)],
74+
"APP_PROFILE" to get("application.profile"),
75+
"SENSU_URL" to get("SENSU_URL"),
76+
"OEBSTOKEN" to get("OEBSTOKEN"),
77+
"SLACK_HOOK" to get("SLACK_HOOK"),
8078
) + System.getenv().filter { it.key.startsWith("NAIS_") }
79+
80+
val profile: Profile = get("application.profile").let { Profile.valueOf(it) }
81+
82+
enum class Profile {
83+
PROD, DEV, LOCAL;
84+
85+
fun pair(): Pair<String, String> = "application.profile" to name
86+
}
8187
}

0 commit comments

Comments
 (0)