Skip to content

Commit fa1157e

Browse files
committed
fixed handling errors during run start
1 parent cf39429 commit fa1157e

File tree

4 files changed

+28
-12
lines changed

4 files changed

+28
-12
lines changed

server/kraken/server/bg/jobs.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -993,8 +993,13 @@ def refresh_schema_repo(stage_id, complete_starting_run_id=None):
993993
ctx = prepare_context(stage, stage.get_default_args())
994994
schema_code, schema = check_and_correct_stage_schema(stage.branch, stage.name, schema_code, ctx)
995995
except Exception as e:
996+
if run is not None:
997+
now = utils.utcnow()
998+
exec_utils.complete_run(run, now, "Starting run failed: %s" % str(e))
999+
9961000
stage.repo_error = str(e)
9971001
stage.repo_state = consts.REPO_STATE_ERROR
1002+
9981003
db.session.commit()
9991004
log.exception('problem with schema, stage: %d, run: %s',
10001005
stage_id, complete_starting_run_id)

server/kraken/server/exec_utils.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,17 @@
2727
log = logging.getLogger(__name__)
2828

2929

30-
def complete_run(run, now):
30+
def complete_run(run, now, note=None):
3131
from .bg import jobs as bg_jobs # pylint: disable=import-outside-toplevel
3232
run.state = consts.RUN_STATE_COMPLETED
33+
if run.started is None:
34+
run.started = now
3335
run.finished = now
36+
if note:
37+
if run.note:
38+
run.note += '\n' + note
39+
else:
40+
run.note = note
3441
db.session.commit()
3542
log.info('completed run %s, now: %s', run, run.finished)
3643

@@ -427,9 +434,7 @@ def trigger_jobs(run, replay=False):
427434
except Exception as ex:
428435
log.exception('Problem with starting jobs')
429436
now = utils.utcnow()
430-
run.started = now
431-
run.note = "Triggering run's jobs failed: %s" % str(ex)
432-
complete_run(run, now)
437+
complete_run(run, now, "Triggering run's jobs failed: %s" % str(ex))
433438
return
434439

435440
run.started = now

server/kraken/server/management.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,12 @@ def update_stage(stage_id, body, token_info=None):
549549
if 'enabled' in body:
550550
stage.enabled = body['enabled']
551551

552-
if 'schema_code' in body:
552+
if 'schema_from_repo_enabled' in body:
553+
schema_from_repo_enabled = body['schema_from_repo_enabled']
554+
else:
555+
schema_from_repo_enabled = stage.schema_from_repo_enabled
556+
557+
if 'schema_code' in body and not schema_from_repo_enabled:
553558
prev_triggers = stage.schema['triggers']
554559
ctx = prepare_context(stage, stage.get_default_args())
555560
try:
@@ -565,11 +570,6 @@ def update_stage(stage_id, body, token_info=None):
565570
flag_modified(stage, 'triggers')
566571
log.info('new schema: %s', stage.schema)
567572

568-
if 'schema_from_repo_enabled' in body:
569-
schema_from_repo_enabled = body['schema_from_repo_enabled']
570-
else:
571-
schema_from_repo_enabled = stage.schema_from_repo_enabled
572-
573573
stage.schema_from_repo_enabled = schema_from_repo_enabled
574574
db.session.commit()
575575

@@ -616,6 +616,10 @@ def update_stage(stage_id, body, token_info=None):
616616

617617
from .bg import jobs as bg_jobs # pylint: disable=import-outside-toplevel
618618
kkrq.enq_neck(bg_jobs.refresh_schema_repo, stage.id, 0, ignore_args=[1])
619+
elif stage.repo_state == consts.REPO_STATE_ERROR:
620+
stage.repo_state = consts.REPO_STATE_OK
621+
stage.repo_error = ''
622+
db.session.commit()
619623

620624
result = stage.get_json()
621625

ui/src/app/flow-page/flow-page.component.html

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,10 @@
9999
</div>
100100
</div>
101101

102-
<div *ngIf="selectedNode.run && selectedNode.run.note" style="margin-top: 1em;">
103-
<p-message severity="warn" text="Note: {{ selectedNode.run.note }}"></p-message>
102+
<div *ngIf="selectedNode.run && selectedNode.run.note"
103+
class="mt-3 p-2 w-full shadow-1 border-round-sm"
104+
style="background-color: var(--yellow-200);color: var(--yellow-800);">
105+
<pre style="white-space: pre-wrap;">{{ selectedNode.run.note }}</pre>
104106
</div>
105107

106108
<div *ngIf="!selectedNode.run">

0 commit comments

Comments
 (0)