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

View File

@@ -28,7 +28,7 @@ def claim_for_update(resource, minutes=30):
.filter( .filter(
and_( and_(
Model.id == resource.id, 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") .update({"claimed_until": claim_until}, synchronize_session="fetch")