Skip to content

Commit 7eb89c6

Browse files
committed
add legacy jobs to transplant list
1 parent e7650fc commit 7eb89c6

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

landoapi/api/transplants.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,5 +452,6 @@ def get_list(phab: PhabricatorClient, stack_revision_id: str):
452452
rev_ids = [phab.expect(r, "id") for r in phab.expect(revs, "data")]
453453

454454
landing_jobs = LandingJob.revisions_query(rev_ids).all()
455+
legacy_jobs = LandingJob.legacy_revisions_query(rev_ids).all()
455456

456-
return [job.serialize() for job in landing_jobs], 200
457+
return [job.serialize() for job in landing_jobs + legacy_jobs], 200

landoapi/models/landing_job.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
import flask_sqlalchemy
1616

17+
from sqlalchemy.dialects.postgresql import array
1718
from sqlalchemy.dialects.postgresql.json import JSONB
1819

1920
from landoapi.models.base import Base
@@ -143,11 +144,20 @@ def head_revision(self) -> str:
143144

144145
@classmethod
145146
def revisions_query(cls, revisions: Iterable[str]) -> flask_sqlalchemy.BaseQuery:
147+
"""Return all landing jobs associated with a given list of revisions."""
146148
revisions = [str(int(r)) for r in revisions]
147149
return cls.query.filter(
148150
LandingJob.revisions.any(Revision.revision_id.in_(revisions))
149151
)
150152

153+
@classmethod
154+
def legacy_revisions_query(
155+
cls, revisions: Iterable[str]
156+
) -> flask_sqlalchemy.BaseQuery:
157+
"""Return all jobs by querying the legacy `revision_to_diff_id` field."""
158+
revisions = [str(int(r)) for r in revisions]
159+
return cls.query.filter(cls.revision_to_diff_id.has_any(array(revisions)))
160+
151161
@classmethod
152162
def job_queue_query(
153163
cls,

0 commit comments

Comments
 (0)