diff --git a/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/notifier/_notifier.py b/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/notifier/_notifier.py index c869a368ab21..a642b3a64fde 100644 --- a/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/notifier/_notifier.py +++ b/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/notifier/_notifier.py @@ -11,7 +11,7 @@ ) from models_library.api_schemas_webserver.projects_nodes import NodeGet, NodeGetIdle from models_library.api_schemas_webserver.socketio import SocketIORoomStr -from models_library.users import UserID +from models_library.projects import ProjectID from servicelib.fastapi.app_state import SingletonInAppStateMixin from servicelib.services_utils import get_status_as_dict @@ -23,20 +23,22 @@ def __init__(self, sio_manager: socketio.AsyncAioPikaManager): self._sio_manager = sio_manager async def notify_service_status( - self, user_id: UserID, status: NodeGet | DynamicServiceGet | NodeGetIdle + self, project_id: ProjectID, status: NodeGet | DynamicServiceGet | NodeGetIdle ) -> None: await self._sio_manager.emit( SOCKET_IO_SERVICE_STATUS_EVENT, data=jsonable_encoder(get_status_as_dict(status)), - room=SocketIORoomStr.from_user_id(user_id), + room=SocketIORoomStr.from_project_id(project_id), ) async def notify_service_status_change( - app: FastAPI, user_id: UserID, status: NodeGet | DynamicServiceGet | NodeGetIdle + app: FastAPI, + project_id: ProjectID, + status: NodeGet | DynamicServiceGet | NodeGetIdle, ) -> None: notifier: Notifier = Notifier.get_from_app_state(app) - await notifier.notify_service_status(user_id=user_id, status=status) + await notifier.notify_service_status(project_id=project_id, status=status) async def lifespan(app: FastAPI) -> AsyncIterator[State]: diff --git a/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/service_tracker/__init__.py b/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/service_tracker/__init__.py index fee6fc069f35..797492baab62 100644 --- a/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/service_tracker/__init__.py +++ b/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/service_tracker/__init__.py @@ -1,8 +1,8 @@ from ._api import ( NORMAL_RATE_POLL_INTERVAL, get_all_tracked_services, + get_project_id_for_service, get_tracked_service, - get_user_id_for_service, remove_tracked_service, set_frontend_notified_for_service, set_if_status_changed_for_service, @@ -17,11 +17,11 @@ __all__: tuple[str, ...] = ( "get_all_tracked_services", + "get_project_id_for_service", "get_tracked_service", - "get_user_id_for_service", - "service_tracker_lifespan", "NORMAL_RATE_POLL_INTERVAL", "remove_tracked_service", + "service_tracker_lifespan", "set_frontend_notified_for_service", "set_if_status_changed_for_service", "set_request_as_running", diff --git a/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/service_tracker/_api.py b/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/service_tracker/_api.py index 09e4c3b965f9..caf38548af98 100644 --- a/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/service_tracker/_api.py +++ b/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/service_tracker/_api.py @@ -11,12 +11,16 @@ DynamicServiceStop, ) from models_library.api_schemas_webserver.projects_nodes import NodeGet, NodeGetIdle +from models_library.projects import ProjectID from models_library.projects_nodes_io import NodeID from models_library.services_enums import ServiceState -from models_library.users import UserID from servicelib.deferred_tasks import TaskUID -from ._models import SchedulerServiceState, TrackedServiceModel, UserRequestedState +from ._models import ( + SchedulerServiceState, + TrackedServiceModel, + UserRequestedState, +) from ._setup import get_tracker _logger = logging.getLogger(__name__) @@ -242,7 +246,7 @@ async def get_all_tracked_services(app: FastAPI) -> dict[NodeID, TrackedServiceM return await get_tracker(app).all() -async def get_user_id_for_service(app: FastAPI, node_id: NodeID) -> UserID | None: - """returns user_id for the service""" +async def get_project_id_for_service(app: FastAPI, node_id: NodeID) -> ProjectID | None: + """returns project_id for the service""" model: TrackedServiceModel | None = await get_tracker(app).load(node_id) - return model.user_id if model else None + return model.project_id if model else None diff --git a/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/status_monitor/_deferred_get_status.py b/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/status_monitor/_deferred_get_status.py index 3f6efbfaecb0..84653c76b8c6 100644 --- a/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/status_monitor/_deferred_get_status.py +++ b/services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/services/status_monitor/_deferred_get_status.py @@ -7,8 +7,8 @@ RunningDynamicServiceDetails, ) from models_library.api_schemas_webserver.projects_nodes import NodeGet, NodeGetIdle +from models_library.projects import ProjectID from models_library.projects_nodes_io import NodeID -from models_library.users import UserID from servicelib.deferred_tasks import BaseDeferredHandler, TaskUID from servicelib.deferred_tasks._base_deferred_handler import DeferredContext @@ -69,15 +69,15 @@ async def on_result( if await service_tracker.should_notify_frontend_for_service( app, node_id, status_changed=status_changed ): - user_id: UserID | None = await service_tracker.get_user_id_for_service( - app, node_id + project_id: ProjectID | None = ( + await service_tracker.get_project_id_for_service(app, node_id) ) - if user_id: - await notify_service_status_change(app, user_id, result) + if project_id: + await notify_service_status_change(app, project_id, result) await service_tracker.set_frontend_notified_for_service(app, node_id) else: _logger.info( - "Did not find a user for '%s', skipping status delivery of: %s", + "Did not find a project for '%s', skipping status delivery of: %s", node_id, result, )