Source code for pydent.models.job

"""Models related to jobs, or operation execution."""
from pydent.base import ModelBase
from pydent.marshaller import add_schema
from pydent.relationships import HasMany
from pydent.relationships import HasManyThrough
from pydent.relationships import HasOne
from pydent.relationships import JSON


[docs]@add_schema class Job(ModelBase): """A Job model.""" fields = dict( job_associations=HasMany("JobAssociation", "Job"), operations=HasManyThrough("Operation", "JobAssociation"), state=JSON(), ) methods=["status"] @property def is_complete(self): return self.pc == -2 @property def uploads(self): http = self.session._aqhttp return http.get("krill/uploads?job={}".format(self.id))["uploads"] @property def start_time(self): return self.state[0]["time"] @property def end_time(self): return self.state[-2]["time"]
[docs]@add_schema class JobAssociation(ModelBase): """A JobAssociation model.""" fields = dict(job=HasOne("Job"), operation=HasOne("Operation"))