Skip to content

Commit 9d188dc

Browse files
author
Andrei Neagu
committed
fixed issue with serialization
1 parent 3fe2e6f commit 9d188dc

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

packages/models-library/src/models_library/aiodocker_api.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from pydantic import ConfigDict, Field, field_validator
1+
from pydantic import Field, field_validator
22

33
from .generated_models.docker_rest_api import (
44
ContainerSpec,
@@ -7,7 +7,6 @@
77
ServiceSpec,
88
TaskSpec,
99
)
10-
from .utils.change_case import camel_to_snake
1110

1211

1312
class AioDockerContainerSpec(ContainerSpec):
@@ -38,8 +37,6 @@ class AioDockerResources1(Resources1):
3837
None, description="Define resources reservation.", alias="Reservations"
3938
)
4039

41-
model_config = ConfigDict(populate_by_name=True)
42-
4340

4441
class AioDockerTaskSpec(TaskSpec):
4542
container_spec: AioDockerContainerSpec | None = Field(
@@ -51,5 +48,3 @@ class AioDockerTaskSpec(TaskSpec):
5148

5249
class AioDockerServiceSpec(ServiceSpec):
5350
task_template: AioDockerTaskSpec | None = Field(default=None, alias="TaskTemplate")
54-
55-
model_config = ConfigDict(populate_by_name=True, alias_generator=camel_to_snake)

services/director-v2/src/simcore_service_director_v2/modules/dynamic_sidecar/scheduler/_core/_event_create_sidecars.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,9 @@ async def action(cls, app: FastAPI, scheduler_data: SchedulerData) -> None:
250250
dynamic_sidecar_service_final_spec = AioDockerServiceSpec.model_validate(
251251
nested_update(
252252
jsonable_encoder(dynamic_sidecar_service_spec_base, exclude_unset=True),
253-
jsonable_encoder(user_specific_service_spec, exclude_unset=True),
253+
jsonable_encoder(
254+
user_specific_service_spec, exclude_unset=True, by_alias=True
255+
),
254256
include=_DYNAMIC_SIDECAR_SERVICE_EXTENDABLE_SPECS,
255257
)
256258
)

services/director-v2/tests/unit/with_dbs/test_modules_dynamic_sidecar_docker_service_specs.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -625,3 +625,14 @@ async def test_merge_dynamic_sidecar_specs_with_user_specific_specs(
625625
),
626626
)
627627
assert another_merged_dict
628+
629+
630+
def test_regression_aio_docker_service_spec_serialization():
631+
raw_json = json.loads(
632+
'{"sidecar":{"Name":null,"Labels":{"io.simcore.scalable-service":"true"},"TaskTemplate":{"PluginSpec":null,"ContainerSpec":null,"NetworkAttachmentSpec":null,"Resources":null,"RestartPolicy":null,"Placement":{"Constraints":["node.labels.io.simcore.autoscaled-node==true","node.labels.io.simcore.osparc-services-ready==true"],"Preferences":null,"MaxReplicas":0,"Platforms":null},"ForceUpdate":null,"Runtime":null,"Networks":null,"LogDriver":null},"Mode":null,"UpdateConfig":null,"RollbackConfig":null,"Networks":null,"EndpointSpec":null},"service":null}'
633+
)
634+
to_validate = raw_json["sidecar"]
635+
result = AioDockerServiceSpec.model_validate(to_validate)
636+
assert (
637+
result.model_dump(mode="json", exclude_unset=True, by_alias=True) == to_validate
638+
)

0 commit comments

Comments
 (0)