Skip to content

Commit fc388a3

Browse files
committed
reverted changes
1 parent 3dc6bee commit fc388a3

File tree

5 files changed

+18
-48
lines changed

5 files changed

+18
-48
lines changed

packages/models-library/src/models_library/api_schemas_directorv2/dynamic_services_service.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from functools import cached_property
22
from pathlib import Path
3+
from typing import Annotated
34

45
from pydantic import BaseModel, ConfigDict, Field
56
from pydantic.config import JsonDict
@@ -89,6 +90,11 @@ class RunningDynamicServiceDetails(ServiceDetails):
8990
alias="service_message",
9091
)
9192

93+
is_collaborative: Annotated[
94+
bool,
95+
Field(description="True if service allows collaboration (multi-tenant access)"),
96+
] = False
97+
9298
@staticmethod
9399
def _update_json_schema_extra(schema: JsonDict) -> None:
94100
schema.update(

services/web/server/src/simcore_service_webserver/projects/_controller/projects_states_rest.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,7 @@ async def open_project(request: web.Request) -> web.Response:
162162

163163
# notify users that project is now opened
164164
project = await _projects_service.add_project_states_for_user(
165-
user_id=req_ctx.user_id,
166-
project=project,
167-
app=request.app,
168-
product_name=req_ctx.product_name,
165+
user_id=req_ctx.user_id, project=project, app=request.app
169166
)
170167
await _projects_service.notify_project_state_update(request.app, project)
171168

services/web/server/src/simcore_service_webserver/projects/_crud_api_create.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -430,10 +430,7 @@ async def create_project( # pylint: disable=too-many-arguments,too-many-branche
430430
)
431431
# Appends state
432432
new_project = await _projects_service.add_project_states_for_user(
433-
user_id=user_id,
434-
project=new_project,
435-
app=request.app,
436-
product_name=product_name,
433+
user_id=user_id, project=new_project, app=request.app
437434
)
438435
await progress.update()
439436

services/web/server/src/simcore_service_webserver/projects/_crud_api_read.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
from aiohttp import web
1212
from models_library.folders import FolderID, FolderQuery, FolderScope
13-
from models_library.products import ProductName
1413
from models_library.projects import ProjectTemplateType
1514
from models_library.rest_ordering import OrderBy
1615
from models_library.users import UserID
@@ -52,7 +51,6 @@ async def _aggregate_data_to_projects_from_other_sources(
5251
*,
5352
db_projects: list[ProjectDict],
5453
user_id: UserID,
55-
product_name: ProductName,
5654
) -> list[ProjectDict]:
5755
"""
5856
Aggregates data to each project from other sources, first as a batch-update and then as a parallel-update.
@@ -75,7 +73,7 @@ async def _aggregate_data_to_projects_from_other_sources(
7573
# udpating `project.state`
7674
update_state_per_project = [
7775
_projects_service.add_project_states_for_user(
78-
user_id=user_id, project=prj, app=app, product_name=product_name
76+
user_id=user_id, project=prj, app=app
7977
)
8078
for prj in db_projects
8179
]
@@ -188,7 +186,7 @@ async def list_projects( # pylint: disable=too-many-arguments
188186
)
189187

190188
final_projects = await _aggregate_data_to_projects_from_other_sources(
191-
app, db_projects=api_projects, user_id=user_id, product_name=product_name
189+
app, db_projects=api_projects, user_id=user_id
192190
)
193191

194192
return final_projects, total_number_projects
@@ -235,7 +233,7 @@ async def list_projects_full_depth( # pylint: disable=too-many-arguments
235233
)
236234

237235
final_projects = await _aggregate_data_to_projects_from_other_sources(
238-
app, db_projects=api_projects, user_id=user_id, product_name=product_name
236+
app, db_projects=api_projects, user_id=user_id
239237
)
240238

241239
return final_projects, total_number_projects

services/web/server/src/simcore_service_webserver/projects/_projects_service.py

Lines changed: 7 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -278,10 +278,7 @@ async def get_project_for_user(
278278
# adds state if it is not a template
279279
if include_state:
280280
project = await add_project_states_for_user(
281-
user_id=user_id,
282-
project=project,
283-
app=app,
284-
product_name=product_name,
281+
user_id=user_id, project=project, app=app
285282
)
286283

287284
# adds `trashed_by_primary_gid`
@@ -1266,7 +1263,7 @@ async def patch_project_node(
12661263
)
12671264

12681265
updated_project = await add_project_states_for_user(
1269-
user_id=user_id, project=updated_project, app=app, product_name=product_name
1266+
user_id=user_id, project=updated_project, app=app
12701267
)
12711268
# 5. if inputs/outputs have been changed all depending nodes shall be notified
12721269
if {"inputs", "outputs"} & _node_patch_exclude_unset.keys():
@@ -1336,7 +1333,7 @@ async def update_project_node_outputs(
13361333
pformat(changed_entries),
13371334
)
13381335
updated_project = await add_project_states_for_user(
1339-
user_id=user_id, project=updated_project, app=app, product_name=product_name
1336+
user_id=user_id, project=updated_project, app=app
13401337
)
13411338

13421339
# changed entries come in the form of {node_uuid: {outputs: {changed_key1: value1, changed_key2: value2}}}
@@ -1367,32 +1364,12 @@ async def is_node_id_present_in_any_project_workbench(
13671364
return await db_legacy.node_id_exists(node_id)
13681365

13691366

1370-
async def _is_service_collaborative(
1371-
app: web.Application,
1372-
*,
1373-
user_id: UserID,
1374-
key: ServiceKey,
1375-
version: ServiceVersion,
1376-
product_name: ProductName,
1377-
) -> bool:
1378-
service = await catalog_service.get_service(
1379-
app,
1380-
user_id=user_id,
1381-
service_key=key,
1382-
service_version=version,
1383-
product_name=product_name,
1384-
)
1385-
1386-
return service.get("collaborative", False) is True
1387-
1388-
13891367
async def _get_node_share_state(
13901368
app: web.Application,
13911369
*,
13921370
user_id: UserID,
13931371
project_uuid: ProjectID,
13941372
node_id: NodeID,
1395-
product_name: ProductName,
13961373
) -> NodeShareState:
13971374
node = await _projects_nodes_repository.get(
13981375
app, project_id=project_uuid, node_id=node_id
@@ -1406,13 +1383,10 @@ async def _get_node_share_state(
14061383

14071384
if isinstance(service, DynamicServiceGet | NodeGet):
14081385
# service is running
1409-
collaborative_service = await _is_service_collaborative(
1410-
app,
1411-
key=node.key,
1412-
version=node.version,
1413-
user_id=user_id,
1414-
product_name=product_name,
1415-
)
1386+
collaborative_service = False
1387+
if isinstance(service, DynamicServiceGet):
1388+
# only dynamic-sidecar powered services can be collaborative
1389+
collaborative_service = service.is_collaborative
14161390

14171391
return NodeShareState(
14181392
locked=not collaborative_service,
@@ -1915,7 +1889,6 @@ async def add_project_states_for_user(
19151889
user_id: int,
19161890
project: ProjectDict,
19171891
app: web.Application,
1918-
product_name: ProductName,
19191892
) -> ProjectDict:
19201893
_logger.debug(
19211894
"adding project states for %s with project %s",
@@ -1951,7 +1924,6 @@ async def add_project_states_for_user(
19511924
user_id=user_id,
19521925
project_uuid=project["uuid"],
19531926
node_id=NodeID(node_uuid),
1954-
product_name=product_name,
19551927
)
19561928
if NodeID(node_uuid) in computational_node_states:
19571929
node_state = computational_node_states[NodeID(node_uuid)].model_copy(

0 commit comments

Comments
 (0)