|
30 | 30 | import marquez.common.models.JobVersionId; |
31 | 31 | import marquez.common.models.NamespaceName; |
32 | 32 | import marquez.common.models.RunId; |
| 33 | +import marquez.common.models.RunState; |
33 | 34 | import marquez.db.BaseDao; |
34 | 35 | import marquez.db.DatasetDao; |
35 | 36 | import marquez.db.DatasetVersionDao; |
36 | 37 | import marquez.db.models.ExtendedDatasetVersionRow; |
37 | 38 | import marquez.db.models.JobRow; |
38 | 39 | import marquez.db.models.RunArgsRow; |
39 | 40 | import marquez.db.models.RunRow; |
| 41 | +import marquez.db.models.RunStateRow; |
40 | 42 | import marquez.db.models.UpdateLineageRow; |
41 | 43 | import marquez.service.RunTransitionListener.JobInputUpdate; |
42 | 44 | import marquez.service.RunTransitionListener.JobOutputUpdate; |
43 | 45 | import marquez.service.RunTransitionListener.RunInput; |
44 | 46 | import marquez.service.RunTransitionListener.RunOutput; |
| 47 | +import marquez.service.RunTransitionListener.RunTransition; |
45 | 48 | import marquez.service.models.LineageEvent; |
46 | 49 | import marquez.service.models.RunMeta; |
47 | 50 |
|
@@ -91,6 +94,7 @@ public CompletableFuture<Void> createAsync(LineageEvent event) { |
91 | 94 | buildJobOutputUpdate(update).ifPresent(runService::notify); |
92 | 95 | } |
93 | 96 | buildJobInputUpdate(update).ifPresent(runService::notify); |
| 97 | + buildRunTransition(update).ifPresent(runService::notify); |
94 | 98 | } |
95 | 99 | }); |
96 | 100 |
|
@@ -222,4 +226,15 @@ private DatasetVersionId buildDatasetVersionId(ExtendedDatasetVersionRow ds) { |
222 | 226 | .name(DatasetName.of(ds.getDatasetName())) |
223 | 227 | .build(); |
224 | 228 | } |
| 229 | + |
| 230 | + private Optional<RunTransition> buildRunTransition(UpdateLineageRow record) { |
| 231 | + RunId runId = RunId.of(record.getRun().getUuid()); |
| 232 | + RunStateRow runStateRow = record.getRunState(); |
| 233 | + if (runStateRow == null) { |
| 234 | + return Optional.empty(); |
| 235 | + } |
| 236 | + RunState newState = RunState.valueOf(runStateRow.getState()); |
| 237 | + RunState oldState = newState.isStarting() ? null : RunState.RUNNING; |
| 238 | + return Optional.of(new RunTransition(runId, oldState, newState)); |
| 239 | + } |
225 | 240 | } |
0 commit comments