in moz_kinto_publisher/main.py [0:0]
def crlite_verify_run_id_consistency(*, run_db, identifiers_to_check, channel):
# The runs should be complete.
for r in identifiers_to_check:
if not run_db.is_run_ready(r):
raise ConsistencyException(f"Run is not ready: {r}")
# Each run should be valid.
for r in identifiers_to_check:
if not run_db.is_run_valid(r, channel):
raise ConsistencyException(f"Not a valid run: {r}")
# When sorted by run ID, the runs should have increasing timestamps.
identifiers_to_check.sort(key=lambda x: [int(y) for y in x.split("-")])
ts = [run_db.get_run_timestamp(r) for r in identifiers_to_check]
for x, y in zip(ts, ts[1:]):
if x > y:
raise ConsistencyException(f"Out-of-order timestamp: {ts}")