From 5e5063756112270cbc126547c1351bc2056445cd Mon Sep 17 00:00:00 2001 From: Sylvain <35365065+sanderegg@users.noreply.github.com> Date: Mon, 31 May 2021 11:12:41 +0200 Subject: [PATCH] Bugfix/director v2 loop (#2356) * fix building targeted service * fix issue with wrong loop * correct catalog startup * fixed api-server as well * fixed dynamic sidecar --- Makefile | 2 +- services/api-server/docker/boot.sh | 12 ++++--- services/api-server/setup.py | 5 --- .../simcore_service_api_server/__main__.py | 35 ------------------ .../core/settings.py | 4 --- .../src/simcore_service_api_server/main.py | 8 +++++ services/catalog/docker/boot.sh | 9 +++-- services/catalog/setup.py | 5 --- .../src/simcore_service_catalog/__main__.py | 36 ------------------- .../simcore_service_catalog/core/settings.py | 4 +-- .../src/simcore_service_catalog/main.py | 8 +++++ services/director-v2/docker/boot.sh | 9 +++-- services/director-v2/setup.py | 5 --- .../simcore_service_director_v2/__main__.py | 36 ------------------- .../core/settings.py | 5 ++- .../src/simcore_service_director_v2/main.py | 8 +++++ services/dynamic-sidecar/docker/boot.sh | 12 ++++--- services/dynamic-sidecar/setup.py | 5 --- .../simcore_service_dynamic_sidecar/main.py | 29 ++------------- 19 files changed, 61 insertions(+), 176 deletions(-) delete mode 100644 services/api-server/src/simcore_service_api_server/__main__.py create mode 100644 services/api-server/src/simcore_service_api_server/main.py delete mode 100644 services/catalog/src/simcore_service_catalog/__main__.py create mode 100644 services/catalog/src/simcore_service_catalog/main.py delete mode 100644 services/director-v2/src/simcore_service_director_v2/__main__.py create mode 100644 services/director-v2/src/simcore_service_director_v2/main.py diff --git a/Makefile b/Makefile index f3254792e1c..a6f2ffe1cfb 100644 --- a/Makefile +++ b/Makefile @@ -133,7 +133,7 @@ ifeq ($(findstring static-webserver,$(target)),static-webserver) $(MAKE_C) services/web/client touch compile-dev endif # Building service $(target) - @$(_docker_compose_build) $(target) + @$(_docker_compose_build) endif diff --git a/services/api-server/docker/boot.sh b/services/api-server/docker/boot.sh index 3a4ddbc0e58..73681caaa33 100755 --- a/services/api-server/docker/boot.sh +++ b/services/api-server/docker/boot.sh @@ -26,11 +26,15 @@ if [ "${SC_BUILD_TARGET}" = "development" ]; then fi # RUNNING application ---------------------------------------- -if [ "${SC_BOOT_MODE}" = "debug-ptvsd" ] -then +if [ "${SC_BOOT_MODE}" = "debug-ptvsd" ]; then # NOTE: ptvsd is programmatically enabled inside of the service # this way we can have reload in place as well - exec uvicorn simcore_service_api_server.__main__:the_app --reload --host 0.0.0.0 --reload-dir services/api-server/src/simcore_service_api_server + exec uvicorn simcore_service_api_server.main:the_app \ + --reload \ + --host 0.0.0.0 \ + --reload-dir services/api-server/src/simcore_service_api_server else - exec simcore-service-api-server + exec uvicorn simcore_service_api_server.main:the_app \ + --host 0.0.0.0 \ + --reload-dir services/api-server/src/simcore_service_api_server fi diff --git a/services/api-server/setup.py b/services/api-server/setup.py index 6dc07e3d3ba..161992ce279 100644 --- a/services/api-server/setup.py +++ b/services/api-server/setup.py @@ -62,9 +62,4 @@ def read_reqs(reqs_path: Path): test_suite="tests", tests_require=test_requirements, extras_require={"test": test_requirements}, - entry_points={ - "console_scripts": [ - "simcore-service-api-server = simcore_service_api_server.__main__:main", - ], - }, ) diff --git a/services/api-server/src/simcore_service_api_server/__main__.py b/services/api-server/src/simcore_service_api_server/__main__.py deleted file mode 100644 index bca0bc026d3..00000000000 --- a/services/api-server/src/simcore_service_api_server/__main__.py +++ /dev/null @@ -1,35 +0,0 @@ -""" Main application entry point - - `python -m simcore_service_api_server ...` - -""" -import sys -from pathlib import Path - -import uvicorn -from fastapi import FastAPI - -from simcore_service_api_server.core.application import init_app -from simcore_service_api_server.core.settings import AppSettings, BootModeEnum - -current_dir = Path(sys.argv[0] if __name__ == "__main__" else __file__).resolve().parent - - -# SINGLETON FastAPI app -the_app: FastAPI = init_app() - - -def main(): - cfg: AppSettings = the_app.state.settings - uvicorn.run( - "simcore_service_api_server.__main__:the_app", - host=cfg.host, - port=cfg.port, - reload=cfg.boot_mode == BootModeEnum.DEVELOPMENT, - reload_dirs=[current_dir,], - log_level=cfg.log_level_name.lower(), - ) - - -if __name__ == "__main__": - main() diff --git a/services/api-server/src/simcore_service_api_server/core/settings.py b/services/api-server/src/simcore_service_api_server/core/settings.py index 56c6b2d0d13..c646fec0283 100644 --- a/services/api-server/src/simcore_service_api_server/core/settings.py +++ b/services/api-server/src/simcore_service_api_server/core/settings.py @@ -118,10 +118,6 @@ def loglevel(self) -> int: client_request: ClientRequestSettings - # SERVICE SERVER (see : https://www.uvicorn.org/settings/) - host: str = "0.0.0.0" # nosec - port: int = 8000 - debug: bool = False # If True, debug tracebacks should be returned on errors. remote_debug_port: int = 3000 dev_features_enabled: bool = Field( diff --git a/services/api-server/src/simcore_service_api_server/main.py b/services/api-server/src/simcore_service_api_server/main.py new file mode 100644 index 00000000000..cae7daebcc2 --- /dev/null +++ b/services/api-server/src/simcore_service_api_server/main.py @@ -0,0 +1,8 @@ +"""Main application to be deployed in for example uvicorn. +""" +from fastapi import FastAPI +from simcore_service_api_server.core.application import init_app + + +# SINGLETON FastAPI app +the_app: FastAPI = init_app() diff --git a/services/catalog/docker/boot.sh b/services/catalog/docker/boot.sh index e8f9f4d8564..1945cc43f5f 100755 --- a/services/catalog/docker/boot.sh +++ b/services/catalog/docker/boot.sh @@ -29,7 +29,12 @@ fi if [ "${SC_BOOT_MODE}" = "debug-ptvsd" ]; then # NOTE: ptvsd is programmatically enabled inside of the service # this way we can have reload in place as well - exec uvicorn simcore_service_catalog.__main__:the_app --reload --host 0.0.0.0 --reload-dir services/catalog/src/simcore_service_catalog + exec uvicorn simcore_service_catalog.main:the_app \ + --reload \ + --host 0.0.0.0 \ + --reload-dir services/catalog/src/simcore_service_catalog else - exec simcore-service-catalog + exec uvicorn simcore_service_catalog.main:the_app \ + --host 0.0.0.0 \ + --reload-dir services/catalog/src/simcore_service_catalog fi diff --git a/services/catalog/setup.py b/services/catalog/setup.py index f7bd3d87a5a..29815eba85c 100644 --- a/services/catalog/setup.py +++ b/services/catalog/setup.py @@ -60,9 +60,4 @@ def read_reqs(reqs_path: Path): test_suite="tests", tests_require=test_requirements, extras_require={"test": test_requirements}, - entry_points={ - "console_scripts": [ - "simcore-service-catalog=simcore_service_catalog.__main__:main", - ], - }, ) diff --git a/services/catalog/src/simcore_service_catalog/__main__.py b/services/catalog/src/simcore_service_catalog/__main__.py deleted file mode 100644 index 516fb3621c8..00000000000 --- a/services/catalog/src/simcore_service_catalog/__main__.py +++ /dev/null @@ -1,36 +0,0 @@ -""" Main application entry point - - `python -m simcore_service_catalog ...` - -""" -import sys -from pathlib import Path - -import uvicorn -from fastapi import FastAPI -from simcore_service_catalog.core.application import init_app -from simcore_service_catalog.core.settings import AppSettings, BootModeEnum - -current_dir = Path(sys.argv[0] if __name__ == "__main__" else __file__).resolve().parent - - -# SINGLETON FastAPI app -the_app: FastAPI = init_app() - - -def main(): - cfg: AppSettings = the_app.state.settings - uvicorn.run( - "simcore_service_catalog.__main__:the_app", - host=cfg.host, - port=cfg.port, - reload=cfg.boot_mode == BootModeEnum.DEVELOPMENT, - reload_dirs=[ - current_dir, - ], - log_level=cfg.log_level_name.lower(), - ) - - -if __name__ == "__main__": - main() diff --git a/services/catalog/src/simcore_service_catalog/core/settings.py b/services/catalog/src/simcore_service_catalog/core/settings.py index 66fe405fdc7..5e5663cac01 100644 --- a/services/catalog/src/simcore_service_catalog/core/settings.py +++ b/services/catalog/src/simcore_service_catalog/core/settings.py @@ -81,9 +81,7 @@ def loglevel(self) -> int: # DIRECTOR SERVICE director: DirectorSettings - # SERVICE SERVER (see : https://www.uvicorn.org/settings/) - host: str = "0.0.0.0" # nosec - port: int = 8000 + # fastappi app settings debug: bool = False # If True, debug tracebacks should be returned on errors. # BACKGROUND TASK diff --git a/services/catalog/src/simcore_service_catalog/main.py b/services/catalog/src/simcore_service_catalog/main.py new file mode 100644 index 00000000000..2543788a688 --- /dev/null +++ b/services/catalog/src/simcore_service_catalog/main.py @@ -0,0 +1,8 @@ +"""Main application to be deployed in for example uvicorn. +""" +from fastapi import FastAPI +from simcore_service_catalog.core.application import init_app + + +# SINGLETON FastAPI app +the_app: FastAPI = init_app() diff --git a/services/director-v2/docker/boot.sh b/services/director-v2/docker/boot.sh index be5338ccc65..e6c5fa80c74 100755 --- a/services/director-v2/docker/boot.sh +++ b/services/director-v2/docker/boot.sh @@ -36,7 +36,12 @@ fi if [ "${SC_BOOT_MODE}" = "debug-ptvsd" ]; then # NOTE: ptvsd is programmatically enabled inside of the service # this way we can have reload in place as well - exec uvicorn simcore_service_director_v2.__main__:the_app --reload --host 0.0.0.0 --reload-dir services/director-v2/src/simcore_service_director_v2 + exec uvicorn simcore_service_director_v2.main:the_app \ + --reload \ + --host 0.0.0.0 \ + --reload-dir services/director-v2/src/simcore_service_director_v2 else - exec simcore-service-director-v2 + exec uvicorn simcore_service_director_v2.main:the_app \ + --host 0.0.0.0 \ + --reload-dir services/director-v2/src/simcore_service_director_v2 fi diff --git a/services/director-v2/setup.py b/services/director-v2/setup.py index ae08943db9b..87ebce5d308 100644 --- a/services/director-v2/setup.py +++ b/services/director-v2/setup.py @@ -54,9 +54,4 @@ def read_reqs(reqs_path: Path): test_suite="tests", tests_require=test_requirements, extras_require={"test": test_requirements}, - entry_points={ - "console_scripts": [ - "simcore-service-director-v2=simcore_service_director_v2.__main__:main", - ], - }, ) diff --git a/services/director-v2/src/simcore_service_director_v2/__main__.py b/services/director-v2/src/simcore_service_director_v2/__main__.py deleted file mode 100644 index aa77400660d..00000000000 --- a/services/director-v2/src/simcore_service_director_v2/__main__.py +++ /dev/null @@ -1,36 +0,0 @@ -""" Main application entry point - - `python -m simcore_service_director_v2 ...` - -""" -import sys -from pathlib import Path - -import uvicorn -from fastapi import FastAPI -from simcore_service_director_v2.core.application import init_app -from simcore_service_director_v2.core.settings import AppSettings, BootModeEnum - -current_dir = Path(sys.argv[0] if __name__ == "__main__" else __file__).resolve().parent - - -# SINGLETON FastAPI app -the_app: FastAPI = init_app() - - -def main(): - cfg: AppSettings = the_app.state.settings - uvicorn.run( - "simcore_service_director_v2.__main__:the_app", - host=cfg.host, - port=cfg.port, - reload=cfg.boot_mode == BootModeEnum.DEVELOPMENT, - reload_dirs=[ - current_dir, - ], - log_level=cfg.log_level_name.lower(), - ) - - -if __name__ == "__main__": - main() diff --git a/services/director-v2/src/simcore_service_director_v2/core/settings.py b/services/director-v2/src/simcore_service_director_v2/core/settings.py index e024771ef5e..6353ff40393 100644 --- a/services/director-v2/src/simcore_service_director_v2/core/settings.py +++ b/services/director-v2/src/simcore_service_director_v2/core/settings.py @@ -223,11 +223,10 @@ def loglevel(self) -> int: # monitoring monitoring_enabled: str = Field(False, env="MONITORING_ENABLED") - # SERVICE SERVER (see : https://www.uvicorn.org/settings/) - host: str = "0.0.0.0" # nosec - port: PortInt = 8000 + # fastappi app settings debug: bool = False # If True, debug tracebacks should be returned on errors. + # ptvsd settings remote_debug_port: PortInt = 3000 client_request: ClientRequestSettings diff --git a/services/director-v2/src/simcore_service_director_v2/main.py b/services/director-v2/src/simcore_service_director_v2/main.py new file mode 100644 index 00000000000..64347a3d9a9 --- /dev/null +++ b/services/director-v2/src/simcore_service_director_v2/main.py @@ -0,0 +1,8 @@ +"""Main application to be deployed in for example uvicorn. +""" +from fastapi import FastAPI +from simcore_service_director_v2.core.application import init_app + + +# SINGLETON FastAPI app +the_app: FastAPI = init_app() diff --git a/services/dynamic-sidecar/docker/boot.sh b/services/dynamic-sidecar/docker/boot.sh index 2948d71c279..ac748bac4e2 100755 --- a/services/dynamic-sidecar/docker/boot.sh +++ b/services/dynamic-sidecar/docker/boot.sh @@ -26,11 +26,15 @@ if [ "${SC_BUILD_TARGET}" = "development" ]; then fi # RUNNING application ---------------------------------------- -if [ "${SC_BOOT_MODE}" = "debug-ptvsd" ] -then +if [ "${SC_BOOT_MODE}" = "debug-ptvsd" ]; then # NOTE: ptvsd is programmatically enabled inside of the service # this way we can have reload in place as well - exec uvicorn simcore_service_dynamic_sidecar.main:app --reload --host 0.0.0.0 + exec uvicorn simcore_service_dynamic_sidecar.main:app \ + --reload \ + --host 0.0.0.0 \ + --reload-dir services/dynamic-sidecar/src/simcore_service_dynamic_sidecar else - exec simcore-service-dynamic-sidecar + exec uvicorn simcore_service_dynamic_sidecar.main:app \ + --host 0.0.0.0 \ + --reload-dir services/dynamic-sidecar/src/simcore_service_dynamic_sidecar fi diff --git a/services/dynamic-sidecar/setup.py b/services/dynamic-sidecar/setup.py index 387172bfdb9..d3f0477062d 100644 --- a/services/dynamic-sidecar/setup.py +++ b/services/dynamic-sidecar/setup.py @@ -34,9 +34,4 @@ def read_reqs(reqs_path: Path): install_requires=install_requires, tests_require=tests_require, setup_requires=["setuptools_scm"], - entry_points={ - "console_scripts": [ - "simcore-service-dynamic-sidecar=simcore_service_dynamic_sidecar.main:main" - ], - }, ) diff --git a/services/dynamic-sidecar/src/simcore_service_dynamic_sidecar/main.py b/services/dynamic-sidecar/src/simcore_service_dynamic_sidecar/main.py index 40116a05242..afaad5a39d2 100644 --- a/services/dynamic-sidecar/src/simcore_service_dynamic_sidecar/main.py +++ b/services/dynamic-sidecar/src/simcore_service_dynamic_sidecar/main.py @@ -1,31 +1,8 @@ -import sys -from pathlib import Path +"""Main application to be deployed in for example uvicorn. +""" -import uvicorn from fastapi import FastAPI from simcore_service_dynamic_sidecar.core.application import assemble_application -from simcore_service_dynamic_sidecar.core.settings import DynamicSidecarSettings - -current_dir = Path(sys.argv[0] if __name__ == "__main__" else __file__).resolve().parent - +# SINGLETON FastAPI app app: FastAPI = assemble_application() - - -def main() -> None: - settings: DynamicSidecarSettings = app.state.settings - - uvicorn.run( - "simcore_service_dynamic_sidecar.main:app", - host=settings.host, - port=settings.port, - reload=settings.is_development_mode, - reload_dirs=[ - current_dir, - ], - log_level=settings.log_level_name.lower(), - ) - - -if __name__ == "__main__": - main()