Skip to content

Commit a674736

Browse files
author
Andrei Neagu
committed
refactor interface
1 parent a7e6c43 commit a674736

File tree

3 files changed

+42
-30
lines changed

3 files changed

+42
-30
lines changed

services/dynamic-sidecar/src/simcore_service_dynamic_sidecar/api/rest/_dependencies.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from ...models.shared_store import SharedStore
1515
from ...modules.inputs import InputsState
1616
from ...modules.mounted_fs import MountedVolumes
17-
from ...modules.outputs import OutputsContext, OutputsManager
17+
from ...modules.outputs import OutputsManager
1818
from ...modules.prometheus_metrics import UserServicesMetrics
1919

2020

@@ -62,12 +62,6 @@ def get_outputs_manager(
6262
return cast(OutputsManager, app_state.outputs_manager)
6363

6464

65-
def get_outputs_context(
66-
app_state: Annotated[State, Depends(get_app_state)],
67-
) -> OutputsContext:
68-
return cast(OutputsContext, app_state.outputs_context)
69-
70-
7165
def get_inputs_state(
7266
app_state: Annotated[State, Depends(get_app_state)],
7367
) -> InputsState:

services/dynamic-sidecar/src/simcore_service_dynamic_sidecar/api/rest/containers_extension.py

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,10 @@
77
from fastapi import Request, Response, status
88
from models_library.services import ServiceOutput
99
from pydantic.main import BaseModel
10-
from simcore_sdk.node_ports_v2.port_utils import is_file_type
1110

1211
from ...core.docker_utils import docker_client
13-
from ...modules.mounted_fs import MountedVolumes
14-
from ...modules.outputs import OutputsContext
1512
from ...services import container_extensions
16-
from ._dependencies import get_application, get_mounted_volumes, get_outputs_context
13+
from ._dependencies import get_application
1714

1815
_logger = logging.getLogger(__name__)
1916

@@ -75,26 +72,11 @@ async def toggle_ports_io(
7572
)
7673
async def create_output_dirs(
7774
request_mode: CreateDirsRequestItem,
78-
mounted_volumes: Annotated[MountedVolumes, Depends(get_mounted_volumes)],
79-
outputs_context: Annotated[OutputsContext, Depends(get_outputs_context)],
75+
app: Annotated[FastAPI, Depends(get_application)],
8076
) -> None:
81-
outputs_path = mounted_volumes.disk_outputs_path
82-
file_type_port_keys = []
83-
non_file_port_keys = []
84-
for port_key, service_output in request_mode.outputs_labels.items():
85-
_logger.debug("Parsing output labels, detected: %s", f"{port_key=}")
86-
if is_file_type(service_output.property_type):
87-
dir_to_create = outputs_path / port_key
88-
dir_to_create.mkdir(parents=True, exist_ok=True)
89-
file_type_port_keys.append(port_key)
90-
else:
91-
non_file_port_keys.append(port_key)
92-
93-
_logger.debug(
94-
"Setting: %s, %s", f"{file_type_port_keys=}", f"{non_file_port_keys=}"
77+
await container_extensions.create_output_dirs(
78+
app, outputs_labels=request_mode.outputs_labels
9579
)
96-
await outputs_context.set_file_type_port_keys(file_type_port_keys)
97-
outputs_context.non_file_type_port_keys = non_file_port_keys
9880

9981

10082
@router.post(

services/dynamic-sidecar/src/simcore_service_dynamic_sidecar/services/container_extensions.py

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,18 @@
1+
import logging
2+
13
from fastapi import FastAPI
4+
from models_library.services import ServiceOutput
5+
from simcore_sdk.node_ports_v2.port_utils import is_file_type
26

37
from ..modules.inputs import disable_inputs_pulling, enable_inputs_pulling
4-
from ..modules.outputs import disable_event_propagation, enable_event_propagation
8+
from ..modules.mounted_fs import MountedVolumes
9+
from ..modules.outputs import (
10+
OutputsContext,
11+
disable_event_propagation,
12+
enable_event_propagation,
13+
)
14+
15+
_logger = logging.getLogger(__name__)
516

617

718
async def toggle_ports_io(
@@ -16,3 +27,28 @@ async def toggle_ports_io(
1627
enable_inputs_pulling(app)
1728
else:
1829
disable_inputs_pulling(app)
30+
31+
32+
async def create_output_dirs(
33+
app: FastAPI, outputs_labels: dict[str, ServiceOutput]
34+
) -> None:
35+
mounted_volumes: MountedVolumes = app.state.mounted_volumes
36+
outputs_context: OutputsContext = app.state.outputs_context
37+
38+
outputs_path = mounted_volumes.disk_outputs_path
39+
file_type_port_keys = []
40+
non_file_port_keys = []
41+
for port_key, service_output in outputs_labels.items():
42+
_logger.debug("Parsing output labels, detected: %s", f"{port_key=}")
43+
if is_file_type(service_output.property_type):
44+
dir_to_create = outputs_path / port_key
45+
dir_to_create.mkdir(parents=True, exist_ok=True)
46+
file_type_port_keys.append(port_key)
47+
else:
48+
non_file_port_keys.append(port_key)
49+
50+
_logger.debug(
51+
"Setting: %s, %s", f"{file_type_port_keys=}", f"{non_file_port_keys=}"
52+
)
53+
await outputs_context.set_file_type_port_keys(file_type_port_keys)
54+
outputs_context.non_file_type_port_keys = non_file_port_keys

0 commit comments

Comments
 (0)