feat: switch all timezone naive datetimes to timezone aware

This commit is contained in:
Iain Learmonth 2024-12-06 16:08:48 +00:00
parent 41fc0a73a5
commit e22abb383c
30 changed files with 322 additions and 226 deletions

View file

@ -1,9 +1,9 @@
import datetime
import os
import sys
from typing import Optional, Any, List, Sequence, Tuple
from datetime import datetime, timedelta, timezone
from typing import Any, List, Optional, Sequence, Tuple
from sqlalchemy import select, Row
from sqlalchemy import Row, select
from app import app
from app.extensions import db
@ -25,7 +25,7 @@ def active_bridges_by_provider(provider: CloudProvider) -> Sequence[BridgeResour
def recently_destroyed_bridges_by_provider(provider: CloudProvider) -> Sequence[BridgeResourceRow]:
cutoff = datetime.datetime.utcnow() - datetime.timedelta(hours=72)
cutoff = datetime.now(tz=timezone.utc) - 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),
@ -83,7 +83,7 @@ class BridgeAutomation(TerraformAutomation):
bridge = Bridge.query.filter(Bridge.id == output[len('bridge_hashed_fingerprint_'):]).first()
bridge.nickname = parts[0]
bridge.hashed_fingerprint = parts[1]
bridge.terraform_updated = datetime.datetime.utcnow()
bridge.terraform_updated = datetime.now(tz=timezone.utc)
if output.startswith('bridge_bridgeline_'):
parts = outputs[output]['value'].split(" ")
if len(parts) < 4:
@ -91,7 +91,7 @@ class BridgeAutomation(TerraformAutomation):
bridge = Bridge.query.filter(Bridge.id == output[len('bridge_bridgeline_'):]).first()
del parts[3]
bridge.bridgeline = " ".join(parts)
bridge.terraform_updated = datetime.datetime.utcnow()
bridge.terraform_updated = datetime.now(tz=timezone.utc)
db.session.commit()
@classmethod

View file

@ -1,11 +1,11 @@
import datetime
import logging
import random
from typing import Tuple, List
from datetime import datetime, timedelta, timezone
from typing import List, Tuple
from app import db
from app.models.bridges import BridgeConf, Bridge, ProviderAllocation
from app.models.cloud import CloudProvider, CloudAccount
from app.models.bridges import Bridge, BridgeConf, ProviderAllocation
from app.models.cloud import CloudAccount, CloudProvider
from app.terraform import BaseAutomation
BRIDGE_PROVIDERS = [
@ -33,8 +33,8 @@ def create_bridges_in_account(bridgeconf: BridgeConf, account: CloudAccount, cou
bridge.pool_id = bridgeconf.pool.id
bridge.conf_id = bridgeconf.id
bridge.cloud_account = account
bridge.added = datetime.datetime.utcnow()
bridge.updated = datetime.datetime.utcnow()
bridge.added = datetime.now(tz=timezone.utc)
bridge.updated = datetime.now(tz=timezone.utc)
logging.debug("Creating bridge %s", bridge)
db.session.add(bridge)
created += 1
@ -129,7 +129,7 @@ class BridgeMetaAutomation(BaseAutomation):
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)
cutoff = datetime.now(tz=timezone.utc) - timedelta(hours=bridge.conf.expiry_hours)
if bridge.deprecated < cutoff:
logging.debug("Destroying expired bridge")
bridge.destroy()