Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨Adding dynamic services monitoring dashboard (⚠️devops) #6784

Merged
Show file tree
Hide file tree
Changes from 128 commits
Commits
Show all changes
149 commits
Select commit Hold shift + click to select a range
d2d81c0
⬆️ Upgrade models-library (pydantic v2) (#6333)
giancarloromeo Sep 18, 2024
19e3923
♻️ Add common library (#6495)
giancarloromeo Oct 7, 2024
1d92881
⬆️ Upgrade libraries (pydantic v2) (#6366)
giancarloromeo Oct 9, 2024
329b00d
Upgrade agent service (Pydantic v2) (#6508)
giancarloromeo Oct 10, 2024
6786b92
Upgrade EFS guardian service (Pydantic v2) (#6516)
giancarloromeo Oct 11, 2024
bbe92a2
Upgrade invitations service (Pydantic v2) (#6513)
giancarloromeo Oct 11, 2024
42c0a68
Upgrade clusters keeper service (Pydantic v2) (#6519)
giancarloromeo Oct 14, 2024
1c833e0
Merge remote-tracking branch 'origin/master' into pydantic_v2_migrati…
sanderegg Oct 22, 2024
cac8134
♻️Pydantic V2 upgrade: autoscaling (#6535)
sanderegg Oct 15, 2024
e97258e
🎨 pydantic2 migration: fixed unit-tests for dynamic-sidecar (#6534)
GitHK Oct 18, 2024
463488b
🎨 pydantic2 migration: fixed unit-tests for dynamic-scheduler (#6547)
GitHK Oct 18, 2024
c2b4983
🎨 pydantic2 migration: fixed unit-tests for agent (#6546)
GitHK Oct 18, 2024
64293f0
🎨 pydantic2 migration: fixed unit-tests for payments (#6553)
GitHK Oct 18, 2024
cf5546b
Upgrade resource usage tracker (Pydantic v2) (#6517)
giancarloromeo Oct 21, 2024
3b188f5
Merge remote-tracking branch 'origin/master' into pydantic_v2_migrati…
sanderegg Oct 22, 2024
4716e55
Merge remote-tracking branch 'origin/master' into pydantic_v2_migrati…
sanderegg Oct 22, 2024
84f1e51
missing file from re-creating branch
sanderegg Oct 22, 2024
cf95d81
restored from old pydanitc_v2_migration branch
sanderegg Oct 22, 2024
7be9541
fixes after merge
sanderegg Oct 22, 2024
6199ed6
⬆️Dask sidecar: migration to v2 (#6591)
sanderegg Oct 24, 2024
cd6f545
♻️Use correct import (#6597)
sanderegg Oct 24, 2024
3cf68ba
⬆️Datcore adapter: migration (#6594)
sanderegg Oct 24, 2024
fb48eb1
Merge remote-tracking branch 'upstream/master' into update-branch
sanderegg Oct 25, 2024
82c69d0
Merge pull request #6600 from sanderegg/update-branch
sanderegg Oct 25, 2024
7410516
⬆️Migration: Storage (#6599)
sanderegg Oct 25, 2024
39aed6a
⬆️ Upgrade API Server service (Pydantic v2) (#6580)
giancarloromeo Oct 25, 2024
e38cf4e
♻️Fix settings library tests (#6605)
sanderegg Oct 28, 2024
00f8674
Merge remote-tracking branch 'upstream/master' into update-branch2
sanderegg Oct 28, 2024
06df37d
Merge pull request #6609 from sanderegg/update-branch2
sanderegg Oct 28, 2024
3195f1e
Merge remote-tracking branch 'upstream/master' into upgrade-master-3
sanderegg Oct 29, 2024
7033151
Merge remote-tracking branch 'upstream/master' into upgrade-master-3
sanderegg Oct 29, 2024
4fd252f
Merge pull request #6626 from sanderegg/upgrade-master-3
sanderegg Oct 29, 2024
afa0b3c
⬆️ upgrades `iter_model_examples_in_module` to enable all example te…
pcrespov Oct 29, 2024
9e76d4f
⬆️Pydantic V2: Diverse fixes after merges from master (#6627)
sanderegg Oct 29, 2024
fefd1b9
Merge remote-tracking branch 'upstream/master' into upgrade-master-5
sanderegg Oct 29, 2024
05cff9e
Merge pull request #6637 from sanderegg/upgrade-master-5
sanderegg Oct 29, 2024
34c9f3e
⬆️ pydantic migration catalog (#6629)
pcrespov Oct 31, 2024
ee66b3d
Merge remote-tracking branch 'upstream/master' into update-master-6
sanderegg Nov 1, 2024
01769ac
Merge pull request #6645 from sanderegg/update-master-6
sanderegg Nov 1, 2024
2486b38
♻️Pydantic V2 migration: various fixes (#6647)
sanderegg Nov 1, 2024
add4b61
Merge remote-tracking branch 'upstream/master' into update-master-7
sanderegg Nov 1, 2024
1fe311d
Merge pull request #6650 from sanderegg/update-master-7
sanderegg Nov 1, 2024
24218c1
⬆️ Pydantic V2: after upstream merge -> fixes (#6651)
sanderegg Nov 1, 2024
b01c4a7
⬆️ Fix custom settings class with `pydantic-settings~=2.6` (#6644)
pcrespov Nov 5, 2024
8402270
⬆️ Upgrade Web Server service (Pydantic v2) (#6584)
giancarloromeo Nov 6, 2024
0527b1e
🐛 pydantic v2 fixed broken unit tests (#6649)
GitHK Nov 6, 2024
7d0fbdb
Merge remote-tracking branch 'upstream/master' into update-from-maste…
sanderegg Nov 8, 2024
c106d0a
Merge pull request #6689 from sanderegg/update-from-master-10
sanderegg Nov 8, 2024
60fe257
🎨 Add examples to pydantic response models (#6658)
bisgaard-itis Nov 8, 2024
f07afbf
🐛 Fixed packages mypy, pylint and tests (#6678)
GitHK Nov 11, 2024
a00d55f
pydantic2 making ported services green (#6701)
GitHK Nov 13, 2024
f335bca
WIP: ⬆️ Upgrade Director v2 service (Pydantic v2) (#6619)
giancarloromeo Nov 14, 2024
db084cd
Merge remote-tracking branch 'upstream/master' into update-master-20
sanderegg Nov 14, 2024
44bc9f7
Merge pull request #6724 from sanderegg/update-master-20
sanderegg Nov 15, 2024
a2d3742
♻️ Fix unit tests after master merge (#6727)
giancarloromeo Nov 15, 2024
327beab
⬆️ Align versions for pydantic/fastapi (#6730)
giancarloromeo Nov 15, 2024
84c4c85
♻️Fixed Unit test director v2 (#6733)
sanderegg Nov 15, 2024
8eac56b
♻️ Fix deprecated stuff (Pydantic v2) (#6732)
giancarloromeo Nov 18, 2024
65665ec
♻️ Migrate scripts (Pydantic v2) (#6741)
giancarloromeo Nov 18, 2024
57058f9
Merge remote-tracking branch 'upstream/master' into update-from-maste…
sanderegg Nov 18, 2024
44f85bf
Merge pull request #6744 from sanderegg/update-from-master-XXX
sanderegg Nov 18, 2024
fa57c9e
pydantic2 migration made integration tests green (#6719)
GitHK Nov 18, 2024
a6802c9
⬆️✅ Fixes settings tests (#6753)
pcrespov Nov 18, 2024
75f06e4
🐛 Fixed webserver API endpoints (#6751)
GitHK Nov 19, 2024
aa756f0
Merge remote-tracking branch 'upstream/master' into update-master-XXX
sanderegg Nov 19, 2024
bcf3327
Merge remote-tracking branch 'upstream/master' into update-master-XXX
sanderegg Nov 19, 2024
373c314
Merge pull request #6754 from sanderegg/update-master-XXX
sanderegg Nov 19, 2024
c0a13ac
added fastUI
Nov 19, 2024
fa69117
fixed imports
Nov 19, 2024
08f1881
fixed broken import
Nov 19, 2024
f442e63
⬆️Pydantic V2: Migrate director v0 + some fixes from query PR (#6755)
sanderegg Nov 19, 2024
c10d7d0
⬆️♻️ Fix/test models (#6758)
pcrespov Nov 19, 2024
3250e5d
♻️ Greenify pylint (after Pydantic v2 migration) (#6747)
giancarloromeo Nov 19, 2024
f6d392c
moved healthcheck form root to it's own path
Nov 19, 2024
ed24e0d
moved health endpoint
Nov 19, 2024
ee2d339
added base FastUi app
Nov 19, 2024
dcdc863
🎨 Ensure profiling middleware is compatible with fastapi (#6760)
bisgaard-itis Nov 19, 2024
21eb313
Merge remote-tracking branch 'upstream/pydantic_v2_migration_do_not_s…
Nov 19, 2024
c7b2444
base SSE render demo
Nov 19, 2024
2d454e9
added app to sse endpoint
Nov 19, 2024
3a77ff5
renaming and adding prefix
Nov 19, 2024
c50d79c
♻️Pydantic V2: Unify errors dv 2 (#6763)
sanderegg Nov 19, 2024
0aea337
Uses typing_extensions.TypedDict in all instances used in pydantic mo…
pcrespov Nov 19, 2024
d973a81
Merge remote-tracking branch 'upstream/pydantic_v2_migration_do_not_s…
Nov 20, 2024
c49f421
♻️ Cleanup network AnyHttpUrlLegacy and HttpUrlLegacy (#6767)
giancarloromeo Nov 20, 2024
a0b8a2f
All errors in dynamic-sidecar inherit from `OsparcErrorMixin` (#6764)
GitHK Nov 20, 2024
dc32c96
Merge remote-tracking branch 'upstream/pydantic_v2_migration_do_not_s…
Nov 20, 2024
66a492f
♻️ Fix agent tests (#6772)
giancarloromeo Nov 20, 2024
ccc3ea7
Merge remote-tracking branch 'upstream/pydantic_v2_migration_do_not_s…
Nov 20, 2024
c38b064
Fixes [unit] webserver 03 and [unit] settings-library (both mypy and …
pcrespov Nov 20, 2024
150b17a
Merge remote-tracking branch 'upstream/master' into update-master-XXXXX
sanderegg Nov 20, 2024
17d1702
Merge pull request #6780 from sanderegg/update-master-XXXXX
sanderegg Nov 20, 2024
47e3570
⬆️Pydantic V2: missing import in director-v0 (#6781)
sanderegg Nov 20, 2024
6f63769
added reusable sse utils
Nov 21, 2024
3b6ee6f
Merge remote-tracking branch 'upstream/pydantic_v2_migration_do_not_s…
Nov 21, 2024
e6f5a5f
added base example to render service status
Nov 21, 2024
8108f9f
refactor toutes
Nov 21, 2024
3ebc16e
added some docstring
Nov 21, 2024
4e8bce9
propagate dataset as soon as possible
Nov 21, 2024
dc60766
renaming
Nov 21, 2024
928570d
added mock data provider
Nov 21, 2024
1ad36bf
docstrings
Nov 21, 2024
e2e75c2
Merge remote-tracking branch 'upstream/master' into pr-osparc-add-dyb…
Nov 21, 2024
891efb7
very rough first draft
Nov 21, 2024
40d2966
enhanced hashing
Nov 21, 2024
32f1044
added service details
Nov 21, 2024
78debb9
Merge remote-tracking branch 'upstream/master' into pr-osparc-add-dyb…
Nov 21, 2024
3f8115c
current WIP version with FastUI
Nov 22, 2024
5b0a357
replaced ui engine
Nov 25, 2024
8fb09d1
refactored UI first version
Nov 25, 2024
ef70773
refactor
Nov 25, 2024
7890cfc
Merge remote-tracking branch 'upstream/master' into pr-osparc-add-dyb…
Nov 25, 2024
4e4d014
sticky tarcking
Nov 26, 2024
a47c732
fixed update interval in UI and extended capability
Nov 26, 2024
76802fe
refactor
Nov 26, 2024
db61f1f
Merge remote-tracking branch 'upstream/master' into pr-osparc-add-dyb…
Nov 26, 2024
63b8f1e
remove stickyness
Nov 26, 2024
c74a2bb
rename
Nov 26, 2024
12fa00a
rename restructure
Nov 26, 2024
b2ffc56
ui touches
Nov 26, 2024
0613b9f
revert
Nov 26, 2024
ba618d2
Merge remote-tracking branch 'upstream/master' into pr-osparc-add-dyb…
Nov 26, 2024
73db351
added new makefile entry
Nov 26, 2024
6fbd1eb
added service count
Nov 26, 2024
209303e
typo
Nov 26, 2024
b7b1b44
remove note and fixed for pydantic2
Nov 26, 2024
1aae2e4
extended description
Nov 26, 2024
9a4dbfd
enhanced texts
Nov 26, 2024
25a9b95
feedback
Nov 26, 2024
de0db8c
fixed previously failing test
Nov 26, 2024
b183aff
using secret string
Nov 26, 2024
64c21dd
Merge remote-tracking branch 'upstream/master' into pr-osparc-add-dyb…
Nov 27, 2024
9d8ab8e
added back nicegui dependencies after merge
Nov 27, 2024
665c70d
fixed broken unit tests
Nov 27, 2024
1a3bdba
Merge remote-tracking branch 'upstream/master' into pr-osparc-add-dyb…
Nov 27, 2024
926d88d
added tests for index page to see if it renders as expected
Nov 27, 2024
da197d4
refactor stop dialog
Nov 27, 2024
46fb5d0
rename
Nov 27, 2024
696ff79
added base tests with playwright
Dec 2, 2024
179ac90
fixed test
Dec 2, 2024
c19c878
Merge remote-tracking branch 'upstream/master' into pr-osparc-add-dyb…
Dec 2, 2024
5fb1314
added tests for service details
Dec 2, 2024
1db89fe
fixed interface rendering
Dec 2, 2024
d65d155
refactor
Dec 2, 2024
10dafbd
refactor page rendering
Dec 2, 2024
f98a96d
added 404 test
Dec 2, 2024
1d488c8
fixed broken tests
Dec 3, 2024
0f3374e
Merge remote-tracking branch 'upstream/master' into pr-osparc-add-dyb…
Dec 3, 2024
e79e6af
Merge branch 'master' into pr-osparc-add-dybamic-services-monitor-das…
GitHK Dec 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .env-devel
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ DYNAMIC_SCHEDULER_LOGLEVEL=DEBUG
DYNAMIC_SCHEDULER_PROFILING=1
DYNAMIC_SCHEDULER_STOP_SERVICE_TIMEOUT=01:00:00
DYNAMIC_SCHEDULER_TRACING={}
DYNAMIC_SCHEDULER_UI_STORAGE_SECRET=c411085b-a75e-4a38-aa37-f085c91c3371
GitHK marked this conversation as resolved.
Show resolved Hide resolved

FUNCTION_SERVICES_AUTHORS='{"UN": {"name": "Unknown", "email": "[email protected]", "affiliation": "unknown"}}'

Expand Down
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,7 @@ printf "$$rows" "oSparc platform" "http://$(get_my_ip).nip.io:9081";\
printf "$$rows" "oSparc public API doc" "http://$(get_my_ip).nip.io:8006/dev/doc";\
printf "$$rows" "oSparc web API doc" "http://$(get_my_ip).nip.io:9081/dev/doc";\
printf "$$rows" "Dask Dashboard" "http://$(get_my_ip).nip.io:8787";\
printf "$$rows" "Dy-schd Dashboard" "http://$(get_my_ip).nip.io:8012";\
GitHK marked this conversation as resolved.
Show resolved Hide resolved
printf "$$rows" "Docker Registry" "http://$${REGISTRY_URL}/v2/_catalog" $${REGISTRY_USER} $${REGISTRY_PW};\
printf "$$rows" "Invitations" "http://$(get_my_ip).nip.io:8008/dev/doc" $${INVITATIONS_USERNAME} $${INVITATIONS_PASSWORD};\
printf "$$rows" "Jaeger" "http://$(get_my_ip).nip.io:16686";\
Expand Down
11 changes: 2 additions & 9 deletions packages/models-library/tests/test_service_settings_labels.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from typing import Any, Final, NamedTuple

import pytest
from common_library.json_serialization import json_dumps
from models_library.basic_types import PortInt
from models_library.osparc_variable_identifier import (
OsparcVariableIdentifier,
Expand All @@ -32,7 +33,6 @@
from models_library.services_resources import DEFAULT_SINGLE_SERVICE_NAME
from models_library.utils.string_substitution import TextTemplate
from pydantic import BaseModel, TypeAdapter, ValidationError
from pydantic.json import pydantic_encoder


class _Parametrization(NamedTuple):
Expand Down Expand Up @@ -558,11 +558,6 @@ def test_can_parse_labels_with_osparc_identifiers(
assert "$" not in service_meta_str


def servicelib__json_serialization__json_dumps(obj: Any, **kwargs):
# Analogous to 'models_library.utils.json_serialization.json_dumps'
return json.dumps(obj, default=pydantic_encoder, **kwargs)


def test_resolving_some_service_labels_at_load_time(
vendor_environments: dict[str, Any], service_labels: dict[str, str]
):
Expand All @@ -579,9 +574,7 @@ def test_resolving_some_service_labels_at_load_time(
("settings", SimcoreServiceSettingsLabel),
):
to_serialize = getattr(service_meta, attribute_name)
template = TextTemplate(
servicelib__json_serialization__json_dumps(to_serialize)
)
template = TextTemplate(json_dumps(to_serialize))
assert template.is_valid()
resolved_label: str = template.safe_substitute(vendor_environments)
to_restore = TypeAdapter(pydantic_model).validate_json(resolved_label)
Expand Down
20 changes: 3 additions & 17 deletions packages/models-library/tests/test_utils_fastapi_encoders.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,36 +4,22 @@
# pylint: disable=too-many-arguments

import json
from typing import Any
from uuid import uuid4

import pytest
from common_library.json_serialization import json_dumps
from faker import Faker
from models_library.utils.fastapi_encoders import servicelib_jsonable_encoder
from pydantic.json import pydantic_encoder


def servicelib__json_serialization__json_dumps(obj: Any, **kwargs):
# Analogous to 'models_library.utils.json_serialization.json_dumps'
return json.dumps(obj, default=pydantic_encoder, **kwargs)


def test_using_uuids_as_keys(faker: Faker):
uuid_key = uuid4()

with pytest.raises(TypeError):
# IMPORTANT NOTE: we cannot serialize UUID objects as keys.
# We have to convert them to strings but then the class information is lost upon deserialization i.e. it is not reversable!
# NOTE: This could potentially be solved using 'orjson' !!
#
servicelib__json_serialization__json_dumps({uuid_key: "value"}, indent=1)

# use encoder
# uuid keys now serialize without raising to the expected format string
data = servicelib_jsonable_encoder({uuid_key: "value"})
assert data == {f"{uuid_key}": "value"}

# serialize w/o raising
dumped_data = servicelib__json_serialization__json_dumps(data, indent=1)
dumped_data = json_dumps(data, indent=1)
GitHK marked this conversation as resolved.
Show resolved Hide resolved

# deserialize w/o raising
loaded_data = json.loads(dumped_data)
Expand Down
1 change: 1 addition & 0 deletions services/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -567,6 +567,7 @@ services:
DYNAMIC_SCHEDULER_STOP_SERVICE_TIMEOUT: ${DYNAMIC_SCHEDULER_STOP_SERVICE_TIMEOUT}
DYNAMIC_SCHEDULER_PROFILING: ${DYNAMIC_SCHEDULER_PROFILING}
DYNAMIC_SCHEDULER_TRACING: ${DYNAMIC_SCHEDULER_TRACING}
DYNAMIC_SCHEDULER_UI_STORAGE_SECRET: ${DYNAMIC_SCHEDULER_UI_STORAGE_SECRET}
TRACING_OPENTELEMETRY_COLLECTOR_ENDPOINT: ${TRACING_OPENTELEMETRY_COLLECTOR_ENDPOINT}
TRACING_OPENTELEMETRY_COLLECTOR_PORT: ${TRACING_OPENTELEMETRY_COLLECTOR_PORT}
static-webserver:
Expand Down
2 changes: 1 addition & 1 deletion services/dynamic-scheduler/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ HEALTHCHECK --interval=30s \
--timeout=20s \
--start-period=30s \
--retries=3 \
CMD ["python3", "services/dynamic-scheduler/docker/healthcheck.py", "http://localhost:8000/"]
CMD ["python3", "services/dynamic-scheduler/docker/healthcheck.py", "http://localhost:8000/health"]
GitHK marked this conversation as resolved.
Show resolved Hide resolved

ENTRYPOINT [ "/bin/sh", "services/dynamic-scheduler/docker/entrypoint.sh" ]
CMD ["/bin/sh", "services/dynamic-scheduler/docker/boot.sh"]
Expand Down
1 change: 1 addition & 0 deletions services/dynamic-scheduler/requirements/_base.in
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
arrow
fastapi
httpx
nicegui
GitHK marked this conversation as resolved.
Show resolved Hide resolved
packaging
python-socketio
typer[all]
Expand Down
66 changes: 60 additions & 6 deletions services/dynamic-scheduler/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ aiodebug==2.3.0
aiodocker==0.23.0
# via -r requirements/../../../packages/service-library/requirements/_base.in
aiofiles==24.1.0
# via -r requirements/../../../packages/service-library/requirements/_base.in
# via
# -r requirements/../../../packages/service-library/requirements/_base.in
# nicegui
aiohappyeyeballs==2.4.3
# via aiohttp
aiohttp==3.10.10
Expand All @@ -27,6 +29,8 @@ aiohttp==3.10.10
# -c requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../requirements/constraints.txt
# aiodocker
# nicegui
# python-socketio
aiormq==6.8.1
# via aio-pika
aiosignal==1.3.1
Expand Down Expand Up @@ -79,6 +83,7 @@ certifi==2024.8.30
# -c requirements/../../../requirements/constraints.txt
# httpcore
# httpx
# nicegui
# requests
charset-normalizer==3.4.0
# via requests
Expand All @@ -94,6 +99,8 @@ deprecated==1.2.14
# opentelemetry-semantic-conventions
dnspython==2.7.0
# via email-validator
docutils==0.21.2
# via nicegui
email-validator==2.2.0
# via pydantic
fast-depends==2.4.12
Expand All @@ -102,6 +109,7 @@ fastapi==0.115.5
# via
# -r requirements/../../../packages/service-library/requirements/_fastapi.in
# -r requirements/_base.in
# nicegui
faststream==0.5.28
# via -r requirements/../../../packages/service-library/requirements/_base.in
frozenlist==1.4.1
Expand Down Expand Up @@ -143,15 +151,37 @@ httpx==0.27.2
# -c requirements/../../../requirements/constraints.txt
# -r requirements/../../../packages/service-library/requirements/_fastapi.in
# -r requirements/_base.in
# nicegui
idna==3.10
# via
# anyio
# email-validator
# httpx
# requests
# yarl
ifaddr==0.2.0
# via nicegui
importlib-metadata==8.4.0
# via opentelemetry-api
itsdangerous==2.2.0
# via nicegui
jinja2==3.1.4
# via
# -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/postgres-database/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/postgres-database/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/service-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/service-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/settings-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../requirements/constraints.txt
# nicegui
jsonschema==4.23.0
# via
# -r requirements/../../../packages/models-library/requirements/_base.in
Expand All @@ -177,14 +207,20 @@ mako==1.3.5
# alembic
markdown-it-py==3.0.0
# via rich
markdown2==2.5.1
# via nicegui
markupsafe==3.0.1
# via mako
# via
# jinja2
# mako
mdurl==0.1.2
# via markdown-it-py
multidict==6.1.0
# via
# aiohttp
# yarl
nicegui==2.7.0
# via -r requirements/_base.in
opentelemetry-api==1.27.0
# via
# -r requirements/../../../packages/service-library/requirements/_base.in
Expand Down Expand Up @@ -279,6 +315,7 @@ orjson==3.10.7
# -r requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
# -r requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/../../../packages/common-library/requirements/_base.in
# -r requirements/../../../packages/settings-library/requirements/../../../packages/common-library/requirements/_base.in
# nicegui
packaging==24.1
# via -r requirements/_base.in
pamqp==3.3.0
Expand All @@ -295,6 +332,8 @@ protobuf==4.25.5
# via
# googleapis-common-protos
# opentelemetry-proto
pscript==0.7.7
# via vbuild
psutil==6.0.0
# via -r requirements/../../../packages/service-library/requirements/_base.in
psycopg2-binary==2.9.10
Expand Down Expand Up @@ -352,7 +391,9 @@ pydantic-settings==2.6.1
# -r requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/_base.in
# -r requirements/../../../packages/settings-library/requirements/_base.in
pygments==2.18.0
# via rich
# via
# nicegui
# rich
pyinstrument==5.0.0
# via -r requirements/../../../packages/service-library/requirements/_base.in
python-dateutil==2.9.0.post0
Expand All @@ -363,8 +404,12 @@ python-dotenv==1.0.1
# uvicorn
python-engineio==4.10.1
# via python-socketio
python-multipart==0.0.17
# via nicegui
python-socketio==5.11.4
# via -r requirements/_base.in
# via
# -r requirements/_base.in
# nicegui
pyyaml==6.0.2
# via
# -c requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt
Expand Down Expand Up @@ -408,7 +453,9 @@ referencing==0.29.3
repro-zipfile==0.3.1
# via -r requirements/../../../packages/service-library/requirements/_base.in
requests==2.32.3
# via opentelemetry-exporter-otlp-proto-http
# via
# nicegui
# opentelemetry-exporter-otlp-proto-http
rich==13.9.2
# via
# -r requirements/../../../packages/service-library/requirements/../../../packages/settings-library/requirements/_base.in
Expand Down Expand Up @@ -485,6 +532,7 @@ typing-extensions==4.12.2
# alembic
# fastapi
# faststream
# nicegui
# opentelemetry-sdk
# pydantic
# pydantic-core
Expand All @@ -507,15 +555,21 @@ urllib3==2.2.3
# -c requirements/../../../packages/settings-library/requirements/../../../packages/common-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/settings-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../requirements/constraints.txt
# nicegui
# requests
uvicorn==0.32.0
# via
# -r requirements/../../../packages/service-library/requirements/_fastapi.in
# -r requirements/_base.in
# nicegui
uvloop==0.21.0
# via uvicorn
vbuild==0.8.2
# via nicegui
watchfiles==0.24.0
# via uvicorn
# via
# nicegui
# uvicorn
websockets==13.1
# via uvicorn
wrapt==1.16.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from settings_library.redis import RedisDatabase
from simcore_service_dynamic_scheduler.services.redis import get_all_redis_clients

from ...services.rabbitmq import get_rabbitmq_client, get_rabbitmq_rpc_server
from ..services.rabbitmq import get_rabbitmq_client, get_rabbitmq_rpc_server

assert get_app # nosec
assert get_reverse_url_mapper # nosec
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from ._setup import setup_frontend

__all__: tuple[str, ...] = ("setup_frontend",)
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import nicegui
from fastapi import FastAPI

from ...core.settings import ApplicationSettings
from ._utils import set_parent_app
from .routes import router


def setup_frontend(app: FastAPI) -> None:
settings: ApplicationSettings = app.state.settings

nicegui.app.include_router(router)

nicegui.ui.run_with(
app, mount_path="/", storage_secret=settings.DYNAMIC_SCHEDULER_UI_STORAGE_SECRET
)
set_parent_app(app)
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import nicegui
from fastapi import FastAPI


def set_parent_app(parent_app: FastAPI) -> None:
nicegui.app.state.parent_app = parent_app


def get_parent_app(app: FastAPI) -> FastAPI:
parent_app: FastAPI = app.state.parent_app
return parent_app
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from nicegui import APIRouter

from . import _index, _service

router = APIRouter()

router.include_router(_index.router)
router.include_router(_service.router)

__all__: tuple[str, ...] = ("router",)
Loading
Loading