Filter out claimed environments

This commit is contained in:
richard-dds 2019-09-17 11:54:18 -04:00
parent 5b7a544403
commit 53e993ea34
2 changed files with 8 additions and 2 deletions

View File

@ -1,4 +1,4 @@
from sqlalchemy import text
from sqlalchemy import text, func, or_
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.orm import load_only
from typing import List
@ -104,6 +104,12 @@ class Environments(object):
.join(CLIN)
.filter(CLIN.start_date <= now)
.filter(CLIN.end_date > now)
.filter(
or_(
Environment.claimed_until == None,
Environment.claimed_until <= func.now(),
)
)
# select only these columns
.options(load_only("id", "creator_id"))
)

View File

@ -28,7 +28,7 @@ def claim_for_update(resource, minutes=30):
.filter(
and_(
Model.id == resource.id,
or_(Model.claimed_until == None, Model.claimed_until < func.now()),
or_(Model.claimed_until == None, Model.claimed_until <= func.now()),
)
)
.update({"claimed_until": claim_until}, synchronize_session="fetch")