Skip to content

Instantly share code, notes, and snippets.

@arrdem
Created June 7, 2022 17:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arrdem/ee230ef339da6257cf66c210972ca2f8 to your computer and use it in GitHub Desktop.
Save arrdem/ee230ef339da6257cf66c210972ca2f8 to your computer and use it in GitHub Desktop.
diff --git a/libs/metadata/src/main/kotlin/io/elten/metadata/models/LogEntry.kt b/libs/metadata/src/main/kotlin/io/elten/metadata/models/LogEntry.kt
index b90704e78..b7fd96d64 100644
--- a/libs/metadata/src/main/kotlin/io/elten/metadata/models/LogEntry.kt
+++ b/libs/metadata/src/main/kotlin/io/elten/metadata/models/LogEntry.kt
@@ -1,5 +1,6 @@
package io.elten.metadata.models
+import io.elten.models.OrgEvent
import org.hibernate.annotations.Generated
import org.hibernate.annotations.GenerationTime
import org.hibernate.annotations.Type
@@ -26,5 +27,9 @@ class LogEntry(
init {
// Clobber the random ID from Model with the event's ID
id = body.id
+
+ // Paranoia check
+ if ((body is OrgEvent) && ((body as OrgEvent).orgId != orgId))
+ throw IllegalArgumentException("Cross-org event! Event source says ${(body as OrgEvent).orgId}, we say ${orgId}")
}
}
diff --git a/libs/models/src/main/kotlin/io/elten/models/Event.kt b/libs/models/src/main/kotlin/io/elten/models/Event.kt
index e314b3dfb..3568ae32d 100644
--- a/libs/models/src/main/kotlin/io/elten/models/Event.kt
+++ b/libs/models/src/main/kotlin/io/elten/models/Event.kt
@@ -12,65 +12,69 @@ sealed class Event(
val timestamp: Instant = Instant.now(),
)
-data class ScanRequested(
- val orgId: UUID,
+abstract class OrgEvent(
+ val orgId: String
+): Event()
+
+class ScanRequested(
+ orgId: String,
val scanId: UUID,
val initiator: String,
val datasourceIds: List<String>
-) : Event()
+) : OrgEvent(orgId)
-data class ScanRequestStarted(
- val orgId: UUID,
+class ScanRequestStarted(
+ orgId: String,
val zoneId: UUID,
val sensorId: UUID,
val scanId: UUID,
-) : Event()
+) : OrgEvent(orgId)
-data class ScanRequestError(
- val orgId: UUID,
+class ScanRequestError(
+ orgId: String,
val zoneId: UUID,
val sensorId: UUID,
val scanId: UUID,
val datasourceId: UUID?,
val message: String?,
-) : Event()
+) : OrgEvent(orgId)
-data class ScanDatasourceStarted(
- val orgId: UUID,
+class ScanDatasourceStarted(
+ orgId: String,
val zoneId: UUID,
val sensorId: UUID,
val scanId: UUID,
val datasourceId: UUID?,
-) : Event()
+) : OrgEvent(orgId)
-data class ScanDatasourceSucceeded(
- val orgId: UUID,
+class ScanDatasourceSucceeded(
+ orgId: String,
val zoneId: UUID,
val sensorId: UUID,
val scanId: UUID,
val datasourceId: UUID?,
-) : Event()
+) : OrgEvent(orgId)
-data class ScanDatasourceFailed(
- val orgId: UUID,
+class ScanDatasourceFailed(
+ orgId: String,
val zoneId: UUID,
val sensorId: UUID,
val scanId: UUID,
val datasourceId: UUID,
val message: UUID?,
-) : Event()
+) : OrgEvent(orgId)
-data class ScanRequestSucceeded(
- val orgId: UUID,
+class ScanRequestSucceeded(
+ orgId: String,
val zoneId: UUID,
val sensorId: UUID,
val scanId: UUID,
-) : Event()
+) : OrgEvent(orgId)
-data class ScanRequestFailed(
- val orgId: UUID,
+class ScanRequestFailed(
+ orgId: String,
val zoneId: UUID,
val sensorId: UUID,
val scanId: UUID,
val message: UUID?,
-) : Event()
+) : OrgEvent(orgId)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment