@@ -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
10401058fun RunnerSecurity?.toGenericSecurity (runnerId : String ) =
0 commit comments