plexus.dashboard.api.models.task module
- class plexus.dashboard.api.models.task.Task(id: str, accountId: str, type: str, status: str, target: str, command: str, description: str | None = None, metadata: Dict | None = None, createdAt: datetime.datetime | None = None, updatedAt: datetime.datetime | None = None, startedAt: datetime.datetime | None = None, completedAt: datetime.datetime | None = None, estimatedCompletionAt: datetime.datetime | None = None, errorMessage: str | None = None, errorDetails: Dict | None = None, stdout: str | None = None, stderr: str | None = None, output: str | None = None, error: str | None = None, attachedFiles: List[str] | None = None, currentStageId: str | None = None, workerNodeId: str | None = None, dispatchStatus: str | None = None, scorecardId: str | None = None, scoreId: str | None = None, client: ForwardRef('_BaseAPIClient') | None = None)
Bases:
BaseModel- __init__(id: str, accountId: str, type: str, status: str, target: str, command: str, description: str | None = None, metadata: Dict | None = None, createdAt: datetime | None = None, updatedAt: datetime | None = None, startedAt: datetime | None = None, completedAt: datetime | None = None, estimatedCompletionAt: datetime | None = None, errorMessage: str | None = None, errorDetails: Dict | None = None, stdout: str | None = None, stderr: str | None = None, output: str | None = None, error: str | None = None, attachedFiles: List[str] | None = None, currentStageId: str | None = None, workerNodeId: str | None = None, dispatchStatus: str | None = None, scorecardId: str | None = None, scoreId: str | None = None, client: _BaseAPIClient | None = None)
- accountId: str
- acquire_lock(timeout=1800)
- attachedFiles: List[str] | None = None
- command: str
- complete_processing()
Complete processing of the task.
- completedAt: datetime | None = None
- classmethod create(client, type: str, target: str, command: str, **kwargs) Task
Create a new task record.
- Args:
client: The API client instance type: Task type target: Task target command: Command string **kwargs: Additional task fields
- Returns:
Task: The created task instance
- create_stage(name: str, order: int, status: str = 'PENDING', status_message: str | None = None, total_items: int | None = None, estimated_completion_at: str | None = None, **kwargs) TaskStage
Create a new TaskStage for this Task.
- create_stages_batch(stage_configs: List[Dict[str, Any]]) List[TaskStage]
Create multiple TaskStages in a single GraphQL mutation.
- Args:
- stage_configs: List of dictionaries containing stage configuration.
Each dict should have keys: name, order, status, and optional fields.
- Returns:
List[TaskStage]: List of created TaskStage instances
- classmethod create_with_stages(client, type: str, target: str, command: str, stages: list, **kwargs) Task
Create a new task record with stages in a single GraphQL request.
- Args:
client: The API client instance type: Task type target: Task target command: Command string stages: List of stage configurations in the format
- [{“name”: str, “order”: int, “status”: str, “statusMessage”: str,
“totalItems”: int, “estimatedCompletionAt”: str}]
**kwargs: Additional task fields
- Returns:
Task: The created task instance with stages initialized
- createdAt: datetime | None = None
- currentStageId: str | None = None
- description: str | None = None
- dispatchStatus: str | None = None
- error: str | None = None
- errorDetails: Dict | None = None
- errorMessage: str | None = None
- estimatedCompletionAt: datetime | None = None
- fail_current_stage(error_message: str, error_details: Dict | None = None, current_items: int | None = None) None
Mark the current running stage as failed with error message and progress.
- Args:
error_message: The error message to display error_details: Optional dictionary of additional error details current_items: The number of items processed when the failure occurred
- fail_processing(error_message: str, error_details: Dict | None = None, current_items: int | None = None) None
Mark the task as failed with error information.
- Args:
error_message: The error message to display error_details: Optional dictionary of additional error details current_items: The number of items processed when the failure occurred
- classmethod fields() str
Return the GraphQL fields to query for this model
- classmethod from_dict(data: Dict[str, Any], client: _BaseAPIClient) Task
Create an instance from a dictionary of data
- classmethod list_tasks(client: _BaseAPIClient, updated_at: str = '', limit: int = 100) List[Task]
List tasks using the listTaskByUpdatedAt query for proper pagination.
- Args:
client: The API client instance updated_at: The updatedAt timestamp to start from (empty string for most recent) limit: Maximum number of tasks to return per page
- Returns:
List[Task]: List of Task instances
- lock_expires: datetime | None = None
- lock_token: str | None = None
- metadata: Dict | None = None
- output: str | None = None
- release_lock()
- scoreId: str | None = None
- scorecardId: str | None = None
- start_processing() None
Mark the task as started.
- startedAt: datetime | None = None
- status: str
- stderr: str | None = None
- stdout: str | None = None
- target: str
- type: str
- update_progress(current_items: int, total_items: int, stage_configs: Dict[str, Dict], estimated_completion_at: datetime | None = None) List[TaskStage]
Update task progress and stage information.
- updatedAt: datetime | None = None
- workerNodeId: str | None = None