Skip to content

Commit 1e0b895

Browse files
authored
♻️ Refactors webserver module director_v2 and breaks dependency cycles (ITISFoundation#2567)
- CHANGES: Splits director-v2 app module into submodules for - CHANGES: Splits project app module's handler into smaller submodules - FIX: Replaces built-in TimeoutError by asyncio.TimeoutError. Those are differemt things. - CHANGES: Cleanup simcore_service_webserver.utils - FIX: Removed dependency cycles.
1 parent b0342a5 commit 1e0b895

File tree

72 files changed

+1598
-1257
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+1598
-1257
lines changed

services/web/server/src/simcore_service_webserver/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import warnings
22

3-
from ._meta import __version__
4-
53
#
64
# NOTE: Some BaseSettings are using aliases (e.g. version for vtag) to facility construct
75
# pydantic settings from names defined in trafaret schemas for the config files
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +0,0 @@
1-
from .module_setup import setup_activity

services/web/server/src/simcore_service_webserver/activity/module_setup.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22

33
from aiohttp import web
44
from servicelib.aiohttp.application_setup import ModuleCategory, app_module_setup
5-
from servicelib.aiohttp.rest_routing import iter_path_operations, map_handlers_with_operations
5+
from servicelib.aiohttp.rest_routing import (
6+
iter_path_operations,
7+
map_handlers_with_operations,
8+
)
69

7-
from ..rest_config import APP_OPENAPI_SPECS_KEY
10+
from ..constants import APP_OPENAPI_SPECS_KEY
811
from . import celery_client, handlers
912
from .config import assert_valid_config
1013

services/web/server/src/simcore_service_webserver/application.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,27 @@
1010
from servicelib.rest_pagination_utils import monkey_patch_pydantic_url_regex
1111

1212
from ._meta import WELCOME_MSG
13-
from .activity import setup_activity
13+
from .activity.module_setup import setup_activity
1414
from .catalog import setup_catalog
15-
from .clusters import setup_clusters
15+
from .clusters.module_setup import setup_clusters
1616
from .computation import setup_computation
1717
from .db import setup_db
1818
from .diagnostics import setup_diagnostics
19-
from .director import setup_director
19+
from .director.module_setup import setup_director
2020
from .director_v2 import setup_director_v2
2121
from .email import setup_email
22-
from .exporter import setup_exporter
22+
from .exporter.module_setup import setup_exporter
2323
from .groups import setup_groups
24-
from .login import setup_login
24+
from .login.module_setup import setup_login
2525
from .products import setup_products
26-
from .projects import setup_projects
26+
from .projects.module_setup import setup_projects
2727
from .publications import setup_publications
28-
from .resource_manager import setup_resource_manager
28+
from .resource_manager.module_setup import setup_resource_manager
2929
from .rest import setup_rest
3030
from .security import setup_security
3131
from .session import setup_session
3232
from .settings import setup_settings
33-
from .socketio import setup_socketio
33+
from .socketio.module_setup import setup_socketio
3434
from .statics import setup_statics
3535
from .storage import setup_storage
3636
from .studies_access import setup_studies_access

services/web/server/src/simcore_service_webserver/application_config.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def create_schema() -> T.Dict:
6565
),
6666
}
6767
),
68-
addon_section(tracing.tracing_section_name, optional=True): tracing.schema,
68+
addon_section(tracing.CONFIG_SECTION_NAME, optional=True): tracing.schema,
6969
db_config.CONFIG_SECTION_NAME: db_config.schema,
7070
director_config.CONFIG_SECTION_NAME: director_config.schema,
7171
rest_config.CONFIG_SECTION_NAME: rest_config.schema,
@@ -82,20 +82,23 @@ def create_schema() -> T.Dict:
8282
activity_config.CONFIG_SECTION_NAME: activity_config.schema,
8383
resource_manager_config.CONFIG_SECTION_NAME: resource_manager_config.schema,
8484
# BELOW HERE minimal sections until more options are needed
85-
addon_section("diagnostics", optional=True): minimal_addon_schema(),
86-
addon_section("users", optional=True): minimal_addon_schema(),
87-
addon_section("groups", optional=True): minimal_addon_schema(),
88-
addon_section("tags", optional=True): minimal_addon_schema(),
89-
addon_section("publications", optional=True): minimal_addon_schema(),
9085
addon_section("catalog", optional=True): catalog_config.schema,
91-
addon_section("products", optional=True): minimal_addon_schema(),
86+
addon_section("clusters", optional=True): minimal_addon_schema(),
9287
addon_section("computation", optional=True): minimal_addon_schema(),
88+
addon_section("diagnostics", optional=True): minimal_addon_schema(),
9389
addon_section("director-v2", optional=True): minimal_addon_schema(),
90+
addon_section("exporter", optional=True): minimal_addon_schema(),
91+
addon_section("groups", optional=True): minimal_addon_schema(),
92+
addon_section("meta", optional=True): minimal_addon_schema(),
93+
addon_section("products", optional=True): minimal_addon_schema(),
94+
addon_section("publications", optional=True): minimal_addon_schema(),
95+
addon_section("security", optional=True): minimal_addon_schema(),
96+
addon_section("statics", optional=True): minimal_addon_schema(),
9497
addon_section("studies_access", optional=True): minimal_addon_schema(),
9598
addon_section("studies_dispatcher", optional=True): minimal_addon_schema(),
96-
addon_section("exporter", optional=True): minimal_addon_schema(),
99+
addon_section("tags", optional=True): minimal_addon_schema(),
100+
addon_section("users", optional=True): minimal_addon_schema(),
97101
addon_section("version_control", optional=True): minimal_addon_schema(),
98-
addon_section("clusters", optional=True): minimal_addon_schema(),
99102
}
100103
)
101104

services/web/server/src/simcore_service_webserver/catalog.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
from aiohttp import web
88
from aiohttp.web_routedef import RouteDef
9-
from servicelib.aiohttp.application_keys import APP_OPENAPI_SPECS_KEY
109
from servicelib.aiohttp.application_setup import ModuleCategory, app_module_setup
1110
from servicelib.aiohttp.rest_routing import iter_path_operations
1211
from yarl import URL
@@ -22,7 +21,7 @@
2221
KCATALOG_VERSION_PREFIX,
2322
assert_valid_config,
2423
)
25-
from .constants import RQ_PRODUCT_KEY, X_PRODUCT_NAME_HEADER
24+
from .constants import APP_OPENAPI_SPECS_KEY, RQ_PRODUCT_KEY, X_PRODUCT_NAME_HEADER
2625
from .login.decorators import RQT_USERID_KEY, login_required
2726
from .security_decorators import permission_required
2827

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +0,0 @@
1-
from .module_setup import setup_clusters
2-
3-
__all__ = ["setup_clusters"]

services/web/server/src/simcore_service_webserver/constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
APP_CONFIG_KEY,
77
APP_DB_ENGINE_KEY,
88
APP_JSONSCHEMA_SPECS_KEY,
9+
APP_OPENAPI_SPECS_KEY,
910
)
1011
from servicelib.request_keys import RQT_USERID_KEY
1112

services/web/server/src/simcore_service_webserver/diagnostics_handlers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from servicelib.aiohttp.client_session import get_client_session
1111
from servicelib.utils import logged_gather
1212

13-
from . import catalog_client, db, director_v2, storage_api
13+
from . import catalog_client, db, director_v2_api, storage_api
1414
from ._meta import __version__, api_version, api_version_prefix, app_name
1515
from .diagnostics_core import HealthError, assert_healthy_app
1616
from .login.decorators import login_required
@@ -113,7 +113,7 @@ async def _check_storage():
113113

114114
async def _check_director2():
115115
check.services["director_v2"] = {
116-
"healthy": await director_v2.is_healthy(request.app)
116+
"healthy": await director_v2_api.is_healthy(request.app)
117117
}
118118

119119
async def _check_catalog():
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +0,0 @@
1-
from .module_setup import setup_director

0 commit comments

Comments
 (0)