Skip to content

Commit 84185a5

Browse files
committed
projects service
1 parent e7927b6 commit 84185a5

26 files changed

+114
-106
lines changed

services/web/server/src/simcore_service_webserver/db_listener/_db_comp_tasks_listening_task.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
First a procedure is registered in postgres that gets triggered whenever the outputs
33
of a record in comp_task table is changed.
44
"""
5+
56
import asyncio
67
import json
78
import logging
@@ -22,7 +23,7 @@
2223
from sqlalchemy.sql import select
2324

2425
from ..db.plugin import get_database_engine
25-
from ..projects import exceptions, projects_service
26+
from ..projects import _projects_service, exceptions
2627
from ..projects.nodes_utils import update_node_outputs
2728
from ._utils import convert_state_from_db
2829

@@ -47,12 +48,14 @@ async def _update_project_state(
4748
new_state: RunningState,
4849
node_errors: list[ErrorDict] | None,
4950
) -> None:
50-
project = await projects_service.update_project_node_state(
51+
project = await _projects_service.update_project_node_state(
5152
app, user_id, project_uuid, node_uuid, new_state
5253
)
5354

54-
await projects_service.notify_project_node_update(app, project, node_uuid, node_errors)
55-
await projects_service.notify_project_state_update(app, project)
55+
await _projects_service.notify_project_node_update(
56+
app, project, node_uuid, node_errors
57+
)
58+
await _projects_service.notify_project_state_update(app, project)
5659

5760

5861
@dataclass(frozen=True)

services/web/server/src/simcore_service_webserver/exporter/_formatter/_sds.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
from servicelib.pools import non_blocking_process_pool_executor
99

1010
from ...catalog import catalog_service
11+
from ...projects._projects_service import get_project_for_user
1112
from ...projects.exceptions import BaseProjectError
1213
from ...projects.models import ProjectDict
13-
from ...projects.projects_service import get_project_for_user
1414
from ...scicrunch.db import ResearchResourceRepository
1515
from ..exceptions import SDSException
1616
from .template_json import write_template_json

services/web/server/src/simcore_service_webserver/exporter/_handlers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from .._meta import API_VTAG
1616
from ..constants import RQ_PRODUCT_KEY
1717
from ..login.decorators import login_required
18-
from ..projects.projects_service import create_user_notification_cb
18+
from ..projects._projects_service import create_user_notification_cb
1919
from ..redis import get_redis_lock_manager_client_sdk
2020
from ..security.decorators import permission_required
2121
from ..users.api import get_user_fullname

services/web/server/src/simcore_service_webserver/folders/_folders_service.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from servicelib.common_headers import UNDEFINED_DEFAULT_SIMCORE_USER_AGENT_VALUE
1616
from servicelib.utils import fire_and_forget_task
1717

18-
from ..projects.projects_service import submit_delete_project_task
18+
from ..projects._projects_service import submit_delete_project_task
1919
from ..users.api import get_user
2020
from ..workspaces.api import check_user_workspace_access
2121
from ..workspaces.errors import (
@@ -352,14 +352,14 @@ async def delete_folder(
352352

353353
# 1. Delete folder content
354354
# 1.1 Delete all child projects that I am an owner
355-
project_id_list: list[
356-
ProjectID
357-
] = await _folders_repository.get_projects_recursively_only_if_user_is_owner(
358-
app,
359-
folder_id=folder_id,
360-
private_workspace_user_id_or_none=user_id if workspace_is_private else None,
361-
user_id=user_id,
362-
product_name=product_name,
355+
project_id_list: list[ProjectID] = (
356+
await _folders_repository.get_projects_recursively_only_if_user_is_owner(
357+
app,
358+
folder_id=folder_id,
359+
private_workspace_user_id_or_none=user_id if workspace_is_private else None,
360+
user_id=user_id,
361+
product_name=product_name,
362+
)
363363
)
364364

365365
# fire and forget task for project deletion

services/web/server/src/simcore_service_webserver/garbage_collector/_core_disconnected.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
from servicelib.common_headers import UNDEFINED_DEFAULT_SIMCORE_USER_AGENT_VALUE
66
from servicelib.utils import logged_gather
77

8+
from ..projects._projects_service import remove_project_dynamic_services
89
from ..projects.exceptions import ProjectLockError, ProjectNotFoundError
9-
from ..projects.projects_service import remove_project_dynamic_services
1010
from ..redis import get_redis_lock_manager_client
1111
from ..resource_manager.registry import (
1212
RedisResourceRegistry,

services/web/server/src/simcore_service_webserver/garbage_collector/_core_guests.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@
1212
from simcore_postgres_database.models.users import UserRole
1313

1414
from ..projects._projects_repository_legacy import ProjectDBAPI
15+
from ..projects._projects_service import (
16+
get_project_for_user,
17+
submit_delete_project_task,
18+
)
1519
from ..projects.exceptions import ProjectDeleteError, ProjectNotFoundError
16-
from ..projects.projects_service import get_project_for_user, submit_delete_project_task
1720
from ..redis import get_redis_lock_manager_client
1821
from ..resource_manager.registry import RedisResourceRegistry
1922
from ..users import exceptions

services/web/server/src/simcore_service_webserver/garbage_collector/_core_orphans.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515
from servicelib.utils import limited_as_completed, logged_gather
1616

1717
from ..dynamic_scheduler import api as dynamic_scheduler_api
18-
from ..projects.api import has_user_project_access_rights
19-
from ..projects.projects_service import (
18+
from ..projects._projects_service import (
2019
is_node_id_present_in_any_project_workbench,
2120
list_node_ids_in_project,
2221
)
22+
from ..projects.api import has_user_project_access_rights
2323
from ..resource_manager.registry import RedisResourceRegistry
2424
from ..users.api import get_user_role
2525
from ..users.exceptions import UserNotFoundError

services/web/server/src/simcore_service_webserver/notifications/_rabbitmq_exclusive_queue_consumers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from servicelib.rabbitmq import RabbitMQClient
1919
from servicelib.utils import logged_gather
2020

21-
from ..projects import projects_service
21+
from ..projects import _projects_service
2222
from ..projects.exceptions import ProjectNotFoundError
2323
from ..rabbitmq import get_rabbitmq_client
2424
from ..socketio.messages import (
@@ -42,7 +42,7 @@ async def _convert_to_node_update_event(
4242
app: web.Application, message: ProgressRabbitMessageNode
4343
) -> SocketMessageDict | None:
4444
try:
45-
project = await projects_service.get_project_for_user(
45+
project = await _projects_service.get_project_for_user(
4646
app, f"{message.project_id}", message.user_id
4747
)
4848
if f"{message.node_id}" in project["workbench"]:

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from ...login.decorators import login_required
2727
from ...security.decorators import permission_required
2828
from ...utils_aiohttp import envelope_json_response
29-
from .. import _comments_service, projects_service
29+
from .. import _comments_service, _projects_service
3030
from ._rest_exceptions import handle_plugin_requests_exceptions
3131
from ._rest_schemas import RequestContext
3232

@@ -67,7 +67,7 @@ async def create_project_comment(request: web.Request):
6767
body_params = await parse_request_body_as(_ProjectCommentsBodyParams, request)
6868

6969
# ensure the project exists
70-
await projects_service.get_project_for_user(
70+
await _projects_service.get_project_for_user(
7171
request.app,
7272
project_uuid=f"{path_params.project_uuid}",
7373
user_id=req_ctx.user_id,
@@ -109,7 +109,7 @@ async def list_project_comments(request: web.Request):
109109
)
110110

111111
# ensure the project exists
112-
await projects_service.get_project_for_user(
112+
await _projects_service.get_project_for_user(
113113
request.app,
114114
project_uuid=f"{path_params.project_uuid}",
115115
user_id=req_ctx.user_id,
@@ -158,7 +158,7 @@ async def update_project_comment(request: web.Request):
158158
body_params = await parse_request_body_as(_ProjectCommentsBodyParams, request)
159159

160160
# ensure the project exists
161-
await projects_service.get_project_for_user(
161+
await _projects_service.get_project_for_user(
162162
request.app,
163163
project_uuid=f"{path_params.project_uuid}",
164164
user_id=req_ctx.user_id,
@@ -188,7 +188,7 @@ async def delete_project_comment(request: web.Request):
188188
)
189189

190190
# ensure the project exists
191-
await projects_service.get_project_for_user(
191+
await _projects_service.get_project_for_user(
192192
request.app,
193193
project_uuid=f"{path_params.project_uuid}",
194194
user_id=req_ctx.user_id,
@@ -216,7 +216,7 @@ async def get_project_comment(request: web.Request):
216216
)
217217

218218
# ensure the project exists
219-
await projects_service.get_project_for_user(
219+
await _projects_service.get_project_for_user(
220220
request.app,
221221
project_uuid=f"{path_params.project_uuid}",
222222
user_id=req_ctx.user_id,

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from ...resource_usage import service as rut_api
1717
from ...security.decorators import permission_required
1818
from ...utils_aiohttp import envelope_json_response
19-
from .. import projects_service
19+
from .. import _projects_service
2020
from .._projects_repository_legacy import ProjectDBAPI
2121
from ._rest_exceptions import handle_plugin_requests_exceptions
2222
from ._rest_schemas import RequestContext
@@ -48,7 +48,7 @@ async def get_project_node_pricing_unit(request: web.Request):
4848
path_params = parse_request_path_parameters_as(NodePathParams, request)
4949

5050
# ensure the project exists
51-
await projects_service.get_project_for_user(
51+
await _projects_service.get_project_for_user(
5252
request.app,
5353
project_uuid=f"{path_params.project_id}",
5454
user_id=req_ctx.user_id,
@@ -97,7 +97,7 @@ async def connect_pricing_unit_to_project_node(request: web.Request):
9797
)
9898

9999
# ensure the project exists
100-
project = await projects_service.get_project_for_user(
100+
project = await _projects_service.get_project_for_user(
101101
request.app,
102102
project_uuid=f"{path_params.project_id}",
103103
user_id=req_ctx.user_id,
@@ -123,7 +123,7 @@ async def connect_pricing_unit_to_project_node(request: web.Request):
123123

124124
node_data = project["workbench"][NodeIDStr(f"{path_params.node_id}")]
125125

126-
await projects_service.update_project_node_resources_from_hardware_info(
126+
await _projects_service.update_project_node_resources_from_hardware_info(
127127
request.app,
128128
user_id=req_ctx.user_id,
129129
project_id=path_params.project_id,

0 commit comments

Comments
 (0)