Skip to content

Commit 8f51b73

Browse files
committed
start interface
1 parent 5ba84bc commit 8f51b73

File tree

3 files changed

+32
-3
lines changed

3 files changed

+32
-3
lines changed

services/api-server/src/simcore_service_api_server/api/routes/solvers_jobs.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
from models_library.projects import ProjectID
1313
from models_library.projects_nodes_io import NodeID
1414
from pydantic.types import PositiveInt
15+
from simcore_service_api_server.api.dependencies.webserver_rpc import (
16+
get_wb_api_rpc_client,
17+
)
18+
from simcore_service_api_server.services_rpc.wb_api_server import WbApiRpcClient
1519

1620
from ...exceptions.backend_errors import ProjectAlreadyStartedError
1721
from ...exceptions.service_errors_utils import DEFAULT_BACKEND_SERVICE_STATUS_CODES
@@ -95,6 +99,7 @@ async def create_job(
9599
user_id: Annotated[PositiveInt, Depends(get_current_user_id)],
96100
catalog_client: Annotated[CatalogApi, Depends(get_api_client(CatalogApi))],
97101
webserver_api: Annotated[AuthSession, Depends(get_webserver_session)],
102+
wb_api_rpc: Annotated[WbApiRpcClient, Depends(get_wb_api_rpc_client)],
98103
url_for: Annotated[Callable, Depends(get_reverse_url_mapper)],
99104
product_name: Annotated[str, Depends(get_product_name)],
100105
hidden: Annotated[bool, Query()] = True,
@@ -126,6 +131,7 @@ async def create_job(
126131
parent_project_uuid=x_simcore_parent_project_uuid,
127132
parent_node_id=x_simcore_parent_node_id,
128133
)
134+
129135
assert new_project # nosec
130136
assert new_project.uuid == pre_job.id # nosec
131137

@@ -140,6 +146,10 @@ async def create_job(
140146
assert job.name == pre_job.name # nosec
141147
assert job.name == _compose_job_resource_name(solver_key, version, job.id) # nosec
142148

149+
await wb_api_rpc.mark_project_as_job(
150+
project_uuid=new_project.uuid, job_parent_resource_name=job.runner_name
151+
)
152+
143153
return job
144154

145155

services/api-server/src/simcore_service_api_server/api/routes/studies_jobs.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@
1515
from models_library.projects_nodes_io import NodeID
1616
from pydantic import PositiveInt
1717
from servicelib.logging_utils import log_context
18+
from simcore_service_api_server.api.dependencies.webserver_rpc import (
19+
get_wb_api_rpc_client,
20+
)
21+
from simcore_service_api_server.services_rpc.wb_api_server import WbApiRpcClient
1822

1923
from ...api.dependencies.authentication import get_current_user_id
2024
from ...api.dependencies.services import get_api_client
@@ -86,6 +90,7 @@ async def create_study_job(
8690
study_id: StudyID,
8791
job_inputs: JobInputs,
8892
webserver_api: Annotated[AuthSession, Depends(get_webserver_session)],
93+
wb_api_rpc: Annotated[WbApiRpcClient, Depends(get_wb_api_rpc_client)],
8994
url_for: Annotated[Callable, Depends(get_reverse_url_mapper)],
9095
hidden: Annotated[bool, Query()] = True,
9196
x_simcore_parent_project_uuid: ProjectID | None = Header(default=None),
@@ -94,14 +99,11 @@ async def create_study_job(
9499
"""
95100
hidden -- if True (default) hides project from UI
96101
"""
97-
study_name = Study.compose_resource_name(f"{study_id}")
98-
99102
project = await webserver_api.clone_project(
100103
project_id=study_id,
101104
hidden=hidden,
102105
parent_project_uuid=x_simcore_parent_project_uuid,
103106
parent_node_id=x_simcore_parent_node_id,
104-
job_parent_resource_name=study_name,
105107
)
106108
job = create_job_from_study(
107109
study_key=study_id, project=project, job_inputs=job_inputs
@@ -123,6 +125,10 @@ async def create_study_job(
123125
patch_params=ProjectPatch(name=job.name), # type: ignore[arg-type]
124126
)
125127

128+
await wb_api_rpc.mark_project_as_job(
129+
project_uuid=job.id, job_parent_resource_name=job.runner_name
130+
)
131+
126132
project_inputs = await webserver_api.get_project_inputs(project_id=project.uuid)
127133

128134
file_param_nodes = {}

services/api-server/src/simcore_service_api_server/services_rpc/wb_api_server.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from fastapi_pagination import create_page
77
from models_library.api_schemas_webserver.licensed_items import LicensedItemRpcGetPage
88
from models_library.licenses import LicensedItemID
9+
from models_library.projects import ProjectID
910
from models_library.resource_tracker_licensed_items_checkouts import (
1011
LicensedItemCheckoutID,
1112
)
@@ -41,6 +42,7 @@
4142
from servicelib.rabbitmq.rpc_interfaces.webserver.licenses.licensed_items import (
4243
release_licensed_item_for_wallet as _release_licensed_item_for_wallet,
4344
)
45+
from simcore_service_api_server.models.api_resources import RelativeResourceName
4446

4547
from ..exceptions.backend_errors import (
4648
CanNotCheckoutServiceIsNotRunningError,
@@ -200,6 +202,17 @@ async def release_licensed_item_for_wallet(
200202
async def ping(self) -> str:
201203
return await _ping(self._client)
202204

205+
async def mark_project_as_job(
206+
self, project_uuid: ProjectID, job_parent_resource_name: RelativeResourceName
207+
):
208+
assert not job_parent_resource_name.startswith("/") # nosec
209+
assert "/" in job_parent_resource_name # nosec
210+
assert not job_parent_resource_name.endswith("/") # nosec
211+
212+
assert project_uuid
213+
214+
raise NotImplementedError
215+
203216

204217
def setup(app: FastAPI, rabbitmq_rmp_client: RabbitMQRPCClient):
205218
wb_api_rpc_client = WbApiRpcClient(_client=rabbitmq_rmp_client)

0 commit comments

Comments
 (0)