Skip to content

Commit cd57a30

Browse files
committed
Refactor updateRunnerStatus logic to streamline last run status updates and improve runner security visibility processing.
1 parent f83b32e commit cd57a30

File tree

1 file changed

+30
-12
lines changed

1 file changed

+30
-12
lines changed

runner/src/main/kotlin/com/cosmotech/runner/service/RunnerService.kt

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -227,16 +227,7 @@ class RunnerService(
227227
}
228228

229229
fun updateRunnerStatus(runner: Runner): Runner {
230-
val updateRunnerStatusEvent =
231-
UpdateRunnerStatus(
232-
this,
233-
runner.organizationId,
234-
runner.workspaceId,
235-
runner.id,
236-
runner.lastRunInfo.lastRunId ?: "",
237-
)
238-
eventPublisher.publishEvent(updateRunnerStatusEvent)
239-
val runStatus = LastRunStatus.forValue(updateRunnerStatusEvent.response!!)
230+
val runStatus = getUpdatedLastRunStatus(runner)
240231
return runnerRepository.save(runner.apply { lastRunInfo.lastRunStatus = runStatus })
241232
}
242233

@@ -259,7 +250,6 @@ class RunnerService(
259250
)
260251
.toList()
261252
}
262-
runners.forEach { it.security = updateSecurityVisibility(it).security }
263253
runners.forEach { runner ->
264254
val listDatasetParts =
265255
datasetApiService.listDatasetParts(
@@ -269,7 +259,22 @@ class RunnerService(
269259
null,
270260
null,
271261
)
272-
runner.apply { datasets.parameters = listDatasetParts as MutableList<Any>? }
262+
263+
val lastRunStatus =
264+
if (
265+
runner.lastRunInfo.lastRunId != null &&
266+
(runner.lastRunInfo.lastRunStatus != LastRunStatus.Failed ||
267+
runner.lastRunInfo.lastRunStatus != LastRunStatus.Successful)
268+
) {
269+
getUpdatedLastRunStatus(runner)
270+
} else {
271+
runner.lastRunInfo.lastRunStatus
272+
}
273+
runner.apply {
274+
lastRunInfo.lastRunStatus = lastRunStatus
275+
datasets.parameters = listDatasetParts as MutableList<Any>?
276+
security = updateSecurityVisibility(this).security
277+
}
273278
}
274279
return runners
275280
}
@@ -1035,6 +1040,19 @@ class RunnerService(
10351040
)
10361041
}
10371042
}
1043+
1044+
private fun getUpdatedLastRunStatus(runner: Runner): LastRunStatus {
1045+
val updateRunnerStatusEvent =
1046+
UpdateRunnerStatus(
1047+
this,
1048+
runner.organizationId,
1049+
runner.workspaceId,
1050+
runner.id,
1051+
runner.lastRunInfo.lastRunId ?: "",
1052+
)
1053+
eventPublisher.publishEvent(updateRunnerStatusEvent)
1054+
return LastRunStatus.forValue(updateRunnerStatusEvent.response!!)
1055+
}
10381056
}
10391057

10401058
fun RunnerSecurity?.toGenericSecurity(runnerId: String) =

0 commit comments

Comments
 (0)