We don't know yet how useful the job failue tables will be, and maintaining multiple failure tables--one for every entity involved in CSP provisioning--is burdensome. This collapses them all into a single table that track the entity type (environment, portfolio, etc.) and the entity ID. That way we can construct queries when needed to find task results.
22 lines
581 B
Python
22 lines
581 B
Python
from celery.result import AsyncResult
|
|
from sqlalchemy import Column, String, Integer
|
|
|
|
from atst.models.base import Base
|
|
import atst.models.mixins as mixins
|
|
|
|
|
|
class JobFailure(Base, mixins.TimestampsMixin):
|
|
__tablename__ = "job_failures"
|
|
|
|
id = Column(Integer(), primary_key=True)
|
|
task_id = Column(String(), nullable=False)
|
|
entity = Column(String(), nullable=False)
|
|
entity_id = Column(String(), nullable=False)
|
|
|
|
@property
|
|
def task(self):
|
|
if not hasattr(self, "_task"):
|
|
self._task = AsyncResult(self.task_id)
|
|
|
|
return self._task
|