Skip to content

Commit 96ad047

Browse files
author
Andrei Neagu
committed
passing configuration inside
1 parent 2fc2d1e commit 96ad047

File tree

3 files changed

+24
-15
lines changed

3 files changed

+24
-15
lines changed

services/director-v2/src/simcore_service_director_v2/modules/dynamic_sidecar/docker_service_specs/sidecar.py

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,11 @@ def _get_environment_variables(
134134
"DY_SIDECAR_USER_SERVICES_HAVE_INTERNET_ACCESS": f"{allow_internet_access}",
135135
"DY_SIDECAR_SYSTEM_MONITOR_TELEMETRY_ENABLE": f"{telemetry_enabled}",
136136
"DY_SIDECAR_STATE_EXCLUDE": json_dumps(f"{x}" for x in state_exclude),
137+
"DY_SIDECAR_LEGACY_STATE": (
138+
"null"
139+
if scheduler_data.paths_mapping.legacy_state is None
140+
else scheduler_data.paths_mapping.legacy_state.model_dump_json()
141+
),
137142
"DY_SIDECAR_CALLBACKS_MAPPING": callbacks_mapping.model_dump_json(),
138143
"DY_SIDECAR_STATE_PATHS": json_dumps(
139144
f"{x}" for x in scheduler_data.paths_mapping.state_paths
@@ -451,18 +456,18 @@ async def get_dynamic_sidecar_spec( # pylint:disable=too-many-arguments# noqa:
451456
scheduler_data.product_name is not None
452457
), "ONLY for legacy. This function should not be called with product_name==None" # nosec
453458

454-
standard_simcore_docker_labels: dict[
455-
DockerLabelKey, str
456-
] = StandardSimcoreDockerLabels(
457-
user_id=scheduler_data.user_id,
458-
project_id=scheduler_data.project_id,
459-
node_id=scheduler_data.node_uuid,
460-
product_name=scheduler_data.product_name,
461-
simcore_user_agent=scheduler_data.request_simcore_user_agent,
462-
swarm_stack_name=dynamic_services_scheduler_settings.SWARM_STACK_NAME,
463-
memory_limit=ByteSize(0), # this should get overwritten
464-
cpu_limit=0, # this should get overwritten
465-
).to_simcore_runtime_docker_labels()
459+
standard_simcore_docker_labels: dict[DockerLabelKey, str] = (
460+
StandardSimcoreDockerLabels(
461+
user_id=scheduler_data.user_id,
462+
project_id=scheduler_data.project_id,
463+
node_id=scheduler_data.node_uuid,
464+
product_name=scheduler_data.product_name,
465+
simcore_user_agent=scheduler_data.request_simcore_user_agent,
466+
swarm_stack_name=dynamic_services_scheduler_settings.SWARM_STACK_NAME,
467+
memory_limit=ByteSize(0), # this should get overwritten
468+
cpu_limit=0, # this should get overwritten
469+
).to_simcore_runtime_docker_labels()
470+
)
466471

467472
service_labels: dict[str, str] = (
468473
{
@@ -494,9 +499,7 @@ async def get_dynamic_sidecar_spec( # pylint:disable=too-many-arguments# noqa:
494499
)
495500
)
496501

497-
placement_substitutions: dict[
498-
str, DockerPlacementConstraint
499-
] = (
502+
placement_substitutions: dict[str, DockerPlacementConstraint] = (
500503
placement_settings.DIRECTOR_V2_GENERIC_RESOURCE_PLACEMENT_CONSTRAINTS_SUBSTITUTIONS
501504
)
502505
for image_resources in scheduler_data.service_resources.values():

services/director-v2/tests/unit/test_modules_dynamic_sidecar_docker_service_specs_sidecar.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"DY_DOCKER_HUB_REGISTRY_SETTINGS",
2121
"DY_SIDECAR_AWS_S3_CLI_SETTINGS",
2222
"DY_SIDECAR_CALLBACKS_MAPPING",
23+
"DY_SIDECAR_LEGACY_STATE",
2324
"DY_SIDECAR_LOG_FORMAT_LOCAL_DEV_ENABLED",
2425
"DY_SIDECAR_NODE_ID",
2526
"DY_SIDECAR_PATH_INPUTS",

services/dynamic-sidecar/src/simcore_service_dynamic_sidecar/core/settings.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from models_library.products import ProductName
1111
from models_library.projects import ProjectID
1212
from models_library.projects_nodes_io import NodeID
13+
from models_library.service_settings_labels import LegacyState
1314
from models_library.services import DynamicServiceKey, ServiceRunID, ServiceVersion
1415
from models_library.users import UserID
1516
from pydantic import (
@@ -141,6 +142,10 @@ class ApplicationSettings(BaseApplicationSettings, MixinLoggingSettings):
141142
DY_SIDECAR_STATE_EXCLUDE: set[str] = Field(
142143
..., description="list of patterns to exclude files when saving states"
143144
)
145+
DY_SIDECAR_LEGACY_STATE: LegacyState | None = Field(
146+
default=None, description="used to recover state when upgrading service"
147+
)
148+
144149
DY_SIDECAR_LOG_FORMAT_LOCAL_DEV_ENABLED: bool = Field(
145150
default=False,
146151
validation_alias=AliasChoices(

0 commit comments

Comments
 (0)