fix: typing fixes since moving to Mapped types in models
This commit is contained in:
parent
d08388c339
commit
4693e994ba
5 changed files with 71 additions and 44 deletions
|
@ -1,36 +1,37 @@
|
|||
import datetime
|
||||
import os
|
||||
import sys
|
||||
from typing import Optional, Any, List, Tuple
|
||||
from typing import Optional, Any, List, Sequence, Tuple
|
||||
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy import select, Row
|
||||
|
||||
from app import app
|
||||
from app.extensions import db
|
||||
from app.models import AbstractResource
|
||||
from app.models.bridges import Bridge, BridgeConf
|
||||
from app.models.cloud import CloudAccount, CloudProvider
|
||||
from app.terraform.terraform import TerraformAutomation
|
||||
|
||||
BridgeResourceRow = List[Tuple[Bridge, BridgeConf, CloudAccount]]
|
||||
BridgeResourceRow = Row[Tuple[AbstractResource, BridgeConf, CloudAccount]]
|
||||
|
||||
|
||||
def active_bridges_by_provider(provider: CloudProvider) -> List[BridgeResourceRow]:
|
||||
def active_bridges_by_provider(provider: CloudProvider) -> Sequence[BridgeResourceRow]:
|
||||
stmt = select(Bridge, BridgeConf, CloudAccount).join_from(Bridge, BridgeConf).join_from(Bridge, CloudAccount).where(
|
||||
CloudAccount.provider == provider,
|
||||
Bridge.destroyed.is_(None),
|
||||
)
|
||||
bridges: List[BridgeResourceRow] = db.session.execute(stmt).all()
|
||||
bridges: Sequence[BridgeResourceRow] = db.session.execute(stmt).all()
|
||||
return bridges
|
||||
|
||||
|
||||
def recently_destroyed_bridges_by_provider(provider: CloudProvider) -> List[BridgeResourceRow]:
|
||||
def recently_destroyed_bridges_by_provider(provider: CloudProvider) -> Sequence[BridgeResourceRow]:
|
||||
cutoff = datetime.datetime.utcnow() - datetime.timedelta(hours=72)
|
||||
stmt = select(Bridge, BridgeConf, CloudAccount).join_from(Bridge, BridgeConf).join_from(Bridge, CloudAccount).where(
|
||||
CloudAccount.provider == provider,
|
||||
Bridge.destroyed.is_not(None),
|
||||
Bridge.destroyed >= cutoff,
|
||||
)
|
||||
bridges: List[BridgeResourceRow] = db.session.execute(stmt).all()
|
||||
bridges: Sequence[BridgeResourceRow] = db.session.execute(stmt).all()
|
||||
return bridges
|
||||
|
||||
|
||||
|
|
|
@ -127,6 +127,8 @@ class BridgeMetaAutomation(BaseAutomation):
|
|||
).all()
|
||||
logging.debug("Found %s deprecated bridges", len(deprecated_bridges))
|
||||
for bridge in deprecated_bridges:
|
||||
if bridge.deprecated is None:
|
||||
continue # Possible due to SQLAlchemy lazy loading
|
||||
cutoff = datetime.datetime.utcnow() - datetime.timedelta(hours=bridge.conf.expiry_hours)
|
||||
if bridge.deprecated < cutoff:
|
||||
logging.debug("Destroying expired bridge")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue