Unify Dashboard & Webhook events (#394)

This change unifies the previously adhoc SignalR events and Webhooks into a single event format.
This commit is contained in:
bmc-msft
2021-01-11 16:43:09 -05:00
committed by GitHub
parent 465727680d
commit 513d1f52c9
37 changed files with 2970 additions and 825 deletions

View File

@ -67,13 +67,11 @@ def on_state_update(
# they send 'init' with reimage_requested, it's because the node was reimaged
# successfully.
node.reimage_requested = False
node.state = state
node.save()
node.set_state(state)
return None
logging.info("node state update: %s from:%s to:%s", machine_id, node.state, state)
node.state = state
node.save()
node.set_state(state)
if state == NodeState.free:
logging.info("node now available for work: %s", machine_id)
@ -113,9 +111,7 @@ def on_state_update(
# Other states we would want to preserve are excluded by the
# outermost conditional check.
if task.state not in [TaskState.running, TaskState.setting_up]:
task.state = TaskState.setting_up
task.save()
task.on_start()
task.set_state(TaskState.setting_up)
# Note: we set the node task state to `setting_up`, even though
# the task itself may be `running`.
@ -160,8 +156,7 @@ def on_worker_event_running(
return node
if node.state not in NodeState.ready_for_reset():
node.state = NodeState.busy
node.save()
node.set_state(NodeState.busy)
node_task = NodeTasks(
machine_id=machine_id, task_id=event.task_id, state=NodeTaskState.running
@ -184,12 +179,7 @@ def on_worker_event_running(
task.job_id,
task.task_id,
)
task.state = TaskState.running
task.save()
# Start the clock for the task if it wasn't started already
# (as happens in 1.0.0 agents)
task.on_start()
task.set_state(TaskState.running)
task_event = TaskEvent(
task_id=task.task_id,