From: Michael Tremer Date: Thu, 6 Feb 2025 17:50:57 +0000 (+0000) Subject: jobs: Turn JobPackage into a model X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=de05eb2a1026fe87a418b8f39caccac8c3bfa5ef;p=pbs.git jobs: Turn JobPackage into a model Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/jobs.py b/src/buildservice/jobs.py index 934b8d86..008d2bf1 100644 --- a/src/buildservice/jobs.py +++ b/src/buildservice/jobs.py @@ -28,15 +28,27 @@ from .errors import * # Setup logging log = logging.getLogger("pbs.jobs") -JobPackage = sqlalchemy.Table( - "job_packages", database.Base.metadata, +class JobPackage(database.Base): + __tablename__ = "job_packages" + + # Job ID + + job_id = Column(Integer, ForeignKey("jobs.id"), primary_key=True, nullable=False) # Job - Column("job_id", ForeignKey("jobs.id"), nullable=False), + + job = sqlalchemy.orm.relationship("Job", foreign_keys=[job_id], + viewonly=True, lazy="joined", innerjoin=True) + + # Package ID + + pkg_id = Column(Integer, ForeignKey("packages.id"), primary_key=True, nullable=False) # Package - Column("pkg_id", ForeignKey("packages.id"), nullable=False), -) + + pkg = sqlalchemy.orm.relationship("Package", foreign_keys=[pkg_id], + viewonly=True, lazy="joined", innerjoin=True) + class Jobs(base.Object): def init(self): @@ -468,7 +480,7 @@ class Job(database.Base, database.BackendMixin, database.SoftDeleteMixin): # Binary Packages - packages = sqlalchemy.orm.relationship("Package", secondary=JobPackage, lazy="selectin") + packages = sqlalchemy.orm.relationship("Package", secondary="job_packages", lazy="selectin") async def _import_packages(self, uploads): """ diff --git a/src/buildservice/repos.py b/src/buildservice/repos.py index 7a58537c..aba08ebb 100644 --- a/src/buildservice/repos.py +++ b/src/buildservice/repos.py @@ -609,11 +609,11 @@ class Repo(database.Base, database.BackendMixin, database.SoftDeleteMixin): ) .join( jobs.JobPackage, - jobs.JobPackage.c.job_id == jobs.Job.id, + jobs.JobPackage.job_id == jobs.Job.id, ) .join( packages.Package, - packages.Package.id == jobs.JobPackage.c.pkg_id, + packages.Package.id == jobs.JobPackage.pkg_id, ) .where( packages.Package.deleted_at == None,