Skip to content

Commit

Permalink
Hindre evig fail-loop i servicer (#337)
Browse files Browse the repository at this point in the history
  • Loading branch information
bjerga authored Oct 27, 2023
1 parent 5f38189 commit e21da62
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import no.nav.helsearbeidsgiver.felles.DataFelt
import no.nav.helsearbeidsgiver.felles.EksternInntektsmelding
import no.nav.helsearbeidsgiver.felles.EventName
import no.nav.helsearbeidsgiver.felles.Key
import no.nav.helsearbeidsgiver.felles.createFail
import no.nav.helsearbeidsgiver.felles.json.les
import no.nav.helsearbeidsgiver.felles.json.lesOrNull
import no.nav.helsearbeidsgiver.felles.json.toJson
Expand Down Expand Up @@ -66,13 +65,19 @@ class SpinnService(
val forespoerselId = RedisKey.of(transaksjonId.toString(), DataFelt.FORESPOERSEL_ID)
.read()?.let(UUID::fromString)
if (forespoerselId == null) {
publishFail(message)
"Klarte ikke finne forespoerselId for transaksjon $transaksjonId i Redis.".also {
logger.error(it)
sikkerLogger.error(it)
}
return
}
val spinnImId = RedisKey.of(transaksjonId.toString(), DataFelt.SPINN_INNTEKTSMELDING_ID)
.read()?.let(UUID::fromString)
if (spinnImId == null) {
publishFail(message)
"Klarte ikke finne spinnImId for transaksjon $transaksjonId i Redis.".also {
logger.error(it)
sikkerLogger.error(it)
}
return
}
MdcUtils.withLogFields(
Expand All @@ -98,10 +103,6 @@ class SpinnService(
}
}

private fun publishFail(message: JsonMessage) {
rapid.publish(message.createFail("Kunne ikke lese data fra Redis!").toJsonMessage().toJson())
}

override fun finalize(message: JsonMessage) {
val json = message.toJsonMap()
val transaksjonId = Key.UUID.les(UuidSerializer, json)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import no.nav.helsearbeidsgiver.felles.Inntekt
import no.nav.helsearbeidsgiver.felles.InntektData
import no.nav.helsearbeidsgiver.felles.Key
import no.nav.helsearbeidsgiver.felles.TrengerInntekt
import no.nav.helsearbeidsgiver.felles.createFail
import no.nav.helsearbeidsgiver.felles.json.les
import no.nav.helsearbeidsgiver.felles.json.toJson
import no.nav.helsearbeidsgiver.felles.rapidsrivers.DelegatingFailKanal
Expand Down Expand Up @@ -75,7 +74,6 @@ class InntektService(
if (forespoerselId == null) {
sikkerLogger.error("kunne ikke finne forespørselId for transaksjon $transaksjonId i Redis!")
logger.error("kunne ikke finne forespørselId for transaksjon $transaksjonId i Redis!")
publishFail(message.createFail("Mangler forespørselId"))
return
}
MdcUtils.withLogFields(
Expand Down Expand Up @@ -110,8 +108,8 @@ class InntektService(
val forespoersel = forspoerselKey.read()?.fromJson(TrengerInntekt.serializer())
val skjaeringstidspunkt = RedisKey.of(transaksjonId.toString(), DataFelt.SKJAERINGSTIDSPUNKT).read()
if (forespoersel == null || skjaeringstidspunkt == null) {
logger.error("Klarte ikke å finne forespørsel eller skjæringstidspunkt i Redis!")
sikkerLogger.error("Klarte ikke å finne data i Redis - forespørsel: $forespoersel og skjæringstidspunkt $skjaeringstidspunkt")
publishFail(message.createFail("Klarte ikke å finne forespørsel eller skjæringstidspunkt i Redis!"))
return
}

Expand Down Expand Up @@ -242,9 +240,6 @@ class InntektService(
return transaction ?: Transaction.IN_PROGRESS
}

private fun publishFail(fail: Fail) {
rapid.publish(fail.toJsonMessage().toJson())
}
private fun RedisKey.write(json: JsonElement) {
redisStore.set(this, json.toString())
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import no.nav.helsearbeidsgiver.felles.Feilmelding
import no.nav.helsearbeidsgiver.felles.Key
import no.nav.helsearbeidsgiver.felles.Tilgang
import no.nav.helsearbeidsgiver.felles.TilgangData
import no.nav.helsearbeidsgiver.felles.createFail
import no.nav.helsearbeidsgiver.felles.json.les
import no.nav.helsearbeidsgiver.felles.json.toJson
import no.nav.helsearbeidsgiver.felles.rapidsrivers.DelegatingFailKanal
Expand All @@ -30,6 +29,7 @@ import no.nav.helsearbeidsgiver.utils.json.serializer.UuidSerializer
import no.nav.helsearbeidsgiver.utils.json.toJson
import no.nav.helsearbeidsgiver.utils.json.toPretty
import no.nav.helsearbeidsgiver.utils.log.MdcUtils
import no.nav.helsearbeidsgiver.utils.log.logger
import no.nav.helsearbeidsgiver.utils.log.sikkerLogger
import no.nav.helsearbeidsgiver.utils.pipe.orDefault
import java.util.UUID
Expand All @@ -39,6 +39,7 @@ class TilgangService(
override val redisStore: IRedisStore
) : CompositeEventListener(redisStore) {

private val logger = logger()
private val sikkerLogger = sikkerLogger()

override val event: EventName = EventName.TILGANG_REQUESTED
Expand Down Expand Up @@ -68,7 +69,10 @@ class TilgangService(
val forespoerselId = RedisKey.of(transaksjonId.toString(), DataFelt.FORESPOERSEL_ID)
.read()?.let(UUID::fromString)
if (forespoerselId == null) {
publishFail(message)
"Klarte ikke finne forespoerselId for transaksjon $transaksjonId i Redis.".also {
logger.error(it)
sikkerLogger.error(it)
}
return
}
val fields = loggFelterNotNull(transaksjonId, forespoerselId)
Expand Down Expand Up @@ -104,8 +108,10 @@ class TilgangService(
val fnr = RedisKey.of(transaksjonId.toString(), DataFelt.FNR)
.read()
if (orgnr == null || fnr == null) {
publishFail(message)
sikkerLogger.error("kunne ikke lese orgnr og / eller fnr fra Redis")
"Klarte ikke lese orgnr og / eller fnr fra Redis.".also {
logger.error(it)
sikkerLogger.error(it)
}
return
}
rapid.publish(
Expand Down Expand Up @@ -133,10 +139,6 @@ class TilgangService(
}
}

private fun publishFail(message: JsonMessage) {
rapid.publish(message.createFail("Kunne ikke lese data fra Redis!").toJsonMessage().toJson())
}

override fun finalize(message: JsonMessage) {
val json = message.toJsonMap()

Expand Down

0 comments on commit e21da62

Please sign in to comment.