Skip to content

Commit 4a3a5a0

Browse files
add beforevalidator for timedelta
1 parent 1fad825 commit 4a3a5a0

File tree

4 files changed

+7
-6
lines changed

4 files changed

+7
-6
lines changed

.env-devel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ CLUSTERS_KEEPER_EC2_INSTANCES_PREFIX=""
5252
CLUSTERS_KEEPER_LOGLEVEL=WARNING
5353
CLUSTERS_KEEPER_MAX_MISSED_HEARTBEATS_BEFORE_CLUSTER_TERMINATION=5
5454
CLUSTERS_KEEPER_PRIMARY_EC2_INSTANCES=null
55-
CLUSTERS_KEEPER_TASK_INTERVAL=PT30S
55+
CLUSTERS_KEEPER_TASK_INTERVAL=30
5656
CLUSTERS_KEEPER_WORKERS_EC2_INSTANCES=null
5757

5858
DASK_SCHEDULER_HOST=dask-scheduler

services/clusters-keeper/.env-devel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
CLUSTERS_KEEPER_DEBUG=true
22
CLUSTERS_KEEPER_LOGLEVEL=INFO
33
CLUSTERS_KEEPER_MAX_MISSED_HEARTBEATS_BEFORE_CLUSTER_TERMINATION=60
4-
CLUSTERS_KEEPER_TASK_INTERVAL=PT30S
4+
CLUSTERS_KEEPER_TASK_INTERVAL=30
55
EC2_CLUSTERS_KEEPER_ACCESS_KEY_ID=XXXXXXXXXX
66
PRIMARY_EC2_INSTANCES_ALLOWED_TYPES='{"t2.medium":"ami_id": "XXXXXXXXXX", "custom_boot_scripts": ["whoami"]}}'
77
PRIMARY_EC2_INSTANCES_KEY_NAME=XXXXXXXXXX

services/clusters-keeper/src/simcore_service_clusters_keeper/core/settings.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import datetime
22
from functools import cached_property
3-
from typing import Final, Literal, cast
3+
from typing import Annotated, Final, Literal, cast
44

55
from aws_library.ec2 import EC2InstanceBootSpecific, EC2Tags
66
from fastapi import FastAPI
@@ -13,6 +13,7 @@
1313
from models_library.clusters import InternalClusterAuthentication
1414
from pydantic import (
1515
AliasChoices,
16+
BeforeValidator,
1617
Field,
1718
NonNegativeFloat,
1819
NonNegativeInt,
@@ -283,7 +284,7 @@ class ApplicationSettings(BaseCustomSettings, MixinLoggingSettings):
283284
json_schema_extra={"auto_default_from_env": True}
284285
)
285286

286-
CLUSTERS_KEEPER_TASK_INTERVAL: datetime.timedelta = Field(
287+
CLUSTERS_KEEPER_TASK_INTERVAL: Annotated[datetime.timedelta, BeforeValidator(int)] = Field(
287288
default=datetime.timedelta(seconds=30),
288289
description="interval between each clusters clean check "
289290
"(default to seconds, or see https://pydantic-docs.helpmanual.io/usage/types/#datetime-types for string formating)",

services/clusters-keeper/tests/unit/test_modules_clusters_management_task.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from pytest_simcore.helpers.monkeypatch_envs import EnvVarsDict, setenvs_from_dict
1414
from simcore_service_clusters_keeper.core.settings import ApplicationSettings
1515

16-
_FAST_POLL_INTERVAL = 1 # seconds
16+
_FAST_POLL_INTERVAL = 1
1717

1818

1919
@pytest.fixture
@@ -22,7 +22,7 @@ def app_environment(
2222
monkeypatch: pytest.MonkeyPatch,
2323
) -> EnvVarsDict:
2424
return app_environment | setenvs_from_dict(
25-
monkeypatch, {"CLUSTERS_KEEPER_TASK_INTERVAL": f"PT{_FAST_POLL_INTERVAL}S"}
25+
monkeypatch, {"CLUSTERS_KEEPER_TASK_INTERVAL": f"{_FAST_POLL_INTERVAL}"}
2626
)
2727

2828

0 commit comments

Comments
 (0)