drydock/doc/diagrams/basic_task_sequence.uml

44 lines
1.2 KiB
Plaintext

' PlantUML file describing the basic task execution
' sequence diagram
@startuml
actor User
== Task Creation ==
User -> TasksAPI : POST task body
TasksAPI -> oslo_policy : Enforce RBAC
oslo_policy -> TasksAPI : Approved
TasksAPI -> Statemgr : Insert Task as Queued
Statemgr -> TasksAPI : Result
TasksAPI -> User : Serialized Task
== Task Execution ==
Orchestrator -> Statemgr : Poll for Queued Tasks
Statemgr -> Orchestrator : Task ID of Queued Task
Orchestrator -> Statemgr : Update Task to Running
Statemgr -> Orchestrator : Result
Orchestrator -> Orchestrator : Execute task
Orchestrator -> Ingester : Ingest Site Design
Ingester -> Statemgr : Resolve Design Reference
Statemgr -> Ingester : Raw Site Design
Ingester -> Orchestrator : Parsed Site Design
Orchestrator -> Orchestrator : Create Subtask
Orchestrator ->> Driver : Execute Subtask
par Threaded Task Execution
Driver -> Driver : Execute 1 or More Actions
Driver -> Statemgr : Update Subtask to Complete
Statemgr -> Driver : Result
loop Until Subtask Complete or Timeout
Orchestrator -> Statemgr : Poll Subtask Status
Statemgr -> Orchestrator : Subtask Status
end
end
Orchestrator -> Statemgr : Update Task to Complete
== Task Query ==
User -> TasksAPI : GET task
@enduml