Filter out claimed environments
This commit is contained in:
@@ -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"))
|
||||||
)
|
)
|
||||||
|
@@ -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")
|
||||||
|
Reference in New Issue
Block a user