Skip to content

Commit e33366f

Browse files
fix: use utcnow() for refresh calculation (#155)
1 parent 210ca07 commit e33366f

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

google/cloud/alloydb/connector/refresh.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,17 @@
3535
_refresh_buffer: int = 4 * 60 # 4 minutes
3636

3737

38-
def _seconds_until_refresh(expiration: datetime, now: datetime = datetime.now()) -> int:
38+
def _seconds_until_refresh(
39+
expiration: datetime, now: datetime = datetime.utcnow()
40+
) -> int:
3941
"""
4042
Calculates the duration to wait before starting the next refresh.
4143
Usually the duration will be half of the time until certificate
4244
expiration.
4345
4446
Args:
4547
expiration (datetime.datetime): Time of certificate expiration.
46-
now (datetime.datetime): Current time. Defaults to datetime.now()
48+
now (datetime.datetime): Current time. Defaults to datetime.utcnow()
4749
Returns:
4850
int: Time in seconds to wait before performing next refresh.
4951
"""
@@ -107,7 +109,7 @@ async def _is_valid(task: asyncio.Task) -> bool:
107109
try:
108110
result = await task
109111
# valid if current time is before cert expiration
110-
if datetime.now() < result.expiration:
112+
if datetime.utcnow() < result.expiration:
111113
return True
112114
except Exception:
113115
# suppress any errors from task

tests/unit/mocks.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def __init__(self) -> None:
2929
def refresh(self, request: Callable) -> None:
3030
"""Refreshes the access token."""
3131
self.token = "12345"
32-
self.expiry = datetime.now() + timedelta(minutes=60)
32+
self.expiry = datetime.utcnow() + timedelta(minutes=60)
3333

3434
@property
3535
def expired(self) -> bool:
@@ -67,7 +67,7 @@ def generate_cert(
6767
# generate private key
6868
key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
6969
# calculate expiry time
70-
now = datetime.now()
70+
now = datetime.utcnow()
7171
expiration = now + timedelta(minutes=expires_in)
7272
# configure cert subject
7373
subject = issuer = x509.Name(
@@ -103,8 +103,8 @@ def __init__(
103103
name: str = "test-instance",
104104
ip_address: str = "127.0.0.1",
105105
server_name: str = "00000000-0000-0000-0000-000000000000.server.alloydb",
106-
cert_before: datetime = datetime.now(),
107-
cert_expiry: datetime = datetime.now() + timedelta(hours=1),
106+
cert_before: datetime = datetime.utcnow(),
107+
cert_expiry: datetime = datetime.utcnow() + timedelta(hours=1),
108108
) -> None:
109109
self.project = project
110110
self.region = region

0 commit comments

Comments
 (0)