Skip to content

Commit dac26e1

Browse files
♻️ Refactor RUT (renaming/rearranging/error handling) (#6648)
1 parent 7d52bf7 commit dac26e1

File tree

53 files changed

+369
-785
lines changed

Some content is hidden

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

53 files changed

+369
-785
lines changed

packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/resource_usage_tracker/errors.py

Lines changed: 0 additions & 9 deletions
This file was deleted.

services/dynamic-sidecar/src/simcore_service_dynamic_sidecar/core/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ class ApplicationSettings(BaseCustomSettings, MixinLoggingSettings):
135135
description="Enables local development log format. WARNING: make sure it is disabled if you want to have structured logs!",
136136
)
137137
DY_SIDECAR_LOG_FILTER_MAPPING: dict[LoggerName, list[MessageSubstring]] = Field(
138-
default={},
138+
default_factory=dict,
139139
env=["DY_SIDECAR_LOG_FILTER_MAPPING", "LOG_FILTER_MAPPING"],
140140
description="is a dictionary that maps specific loggers (such as 'uvicorn.access' or 'gunicorn.access') to a list of log message patterns that should be filtered out.",
141141
)

services/resource-usage-tracker/docker/boot.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ if [ "${SC_BOOT_MODE}" = "debug" ]; then
5656
--log-level \"${SERVER_LOG_LEVEL}\"
5757
"
5858
else
59-
exec uvicorn simcore_service_resource_usage_tracker.web_main:the_app \
59+
exec uvicorn simcore_service_resource_usage_tracker.main:the_app \
6060
--host 0.0.0.0 \
6161
--log-level "${SERVER_LOG_LEVEL}"
6262
fi

services/resource-usage-tracker/src/simcore_service_resource_usage_tracker/api/rest/_health.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from models_library.errors import RABBITMQ_CLIENT_UNHEALTHY_MSG
88
from servicelib.rabbitmq import RabbitMQClient
99

10-
from ...modules.rabbitmq import get_rabbitmq_client_from_request
10+
from ...services.modules.rabbitmq import get_rabbitmq_client_from_request
1111

1212
logger = logging.getLogger(__name__)
1313

services/resource-usage-tracker/src/simcore_service_resource_usage_tracker/api/rest/_resource_tracker.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,7 @@
1212
)
1313
from models_library.resource_tracker import CreditTransactionId
1414

15-
from ...services import (
16-
resource_tracker_credit_transactions,
17-
resource_tracker_pricing_plans,
18-
resource_tracker_pricing_units,
19-
)
15+
from ...services import credit_transactions, pricing_plans, pricing_units
2016

2117
_logger = logging.getLogger(__name__)
2218

@@ -38,9 +34,7 @@
3834
async def get_credit_transactions_sum(
3935
wallet_total_credits: Annotated[
4036
WalletTotalCredits,
41-
Depends(
42-
resource_tracker_credit_transactions.sum_credit_transactions_by_product_and_wallet
43-
),
37+
Depends(credit_transactions.sum_credit_transactions_by_product_and_wallet),
4438
],
4539
):
4640
return wallet_total_credits
@@ -56,7 +50,7 @@ async def get_credit_transactions_sum(
5650
async def create_credit_transaction(
5751
transaction_id: Annotated[
5852
CreditTransactionId,
59-
Depends(resource_tracker_credit_transactions.create_credit_transaction),
53+
Depends(credit_transactions.create_credit_transaction),
6054
],
6155
):
6256
return {"credit_transaction_id": transaction_id}
@@ -77,7 +71,7 @@ async def create_credit_transaction(
7771
async def get_service_default_pricing_plan(
7872
service_pricing_plans: Annotated[
7973
PricingPlanGet,
80-
Depends(resource_tracker_pricing_plans.get_service_default_pricing_plan),
74+
Depends(pricing_plans.get_service_default_pricing_plan),
8175
],
8276
):
8377
return service_pricing_plans
@@ -93,7 +87,7 @@ async def get_service_default_pricing_plan(
9387
async def get_pricing_plan_unit(
9488
pricing_unit: Annotated[
9589
PricingUnitGet,
96-
Depends(resource_tracker_pricing_units.get_pricing_unit),
90+
Depends(pricing_units.get_pricing_unit),
9791
]
9892
):
9993
return pricing_unit

services/resource-usage-tracker/src/simcore_service_resource_usage_tracker/api/rest/dependencies.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from servicelib.fastapi.dependencies import get_app, get_reverse_url_mapper
1313
from sqlalchemy.ext.asyncio import AsyncEngine
1414

15-
from ...modules.db.repositories._base import BaseRepository
15+
from ...services.modules.db.repositories._base import BaseRepository
1616

1717
logger = logging.getLogger(__name__)
1818

services/resource-usage-tracker/src/simcore_service_resource_usage_tracker/api/rpc/_resource_tracker.py

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -26,24 +26,21 @@
2626
from models_library.wallets import WalletID
2727
from pydantic import AnyUrl
2828
from servicelib.rabbitmq import RPCRouter
29-
from servicelib.rabbitmq.rpc_interfaces.resource_usage_tracker.errors import (
30-
CustomResourceUsageTrackerError,
31-
)
3229

3330
from ...core.settings import ApplicationSettings
34-
from ...modules.db.repositories.resource_tracker import ResourceTrackerRepository
35-
from ...modules.s3 import get_s3_client
36-
from ...services import resource_tracker_pricing_plans as pricing_plans
37-
from ...services import resource_tracker_pricing_units as pricing_units
38-
from ...services import resource_tracker_service_runs as service_runs
31+
from ...services import pricing_plans, pricing_units, service_runs
32+
from ...services.modules.db.repositories.resource_tracker import (
33+
ResourceTrackerRepository,
34+
)
35+
from ...services.modules.s3 import get_s3_client
3936

4037
router = RPCRouter()
4138

4239

4340
## Service runs
4441

4542

46-
@router.expose(reraise_if_error_type=(CustomResourceUsageTrackerError,))
43+
@router.expose(reraise_if_error_type=())
4744
async def get_service_run_page(
4845
app: FastAPI,
4946
*,
@@ -69,7 +66,7 @@ async def get_service_run_page(
6966
)
7067

7168

72-
@router.expose(reraise_if_error_type=(CustomResourceUsageTrackerError,))
69+
@router.expose(reraise_if_error_type=())
7370
async def export_service_runs(
7471
app: FastAPI,
7572
*,
@@ -98,7 +95,7 @@ async def export_service_runs(
9895
)
9996

10097

101-
@router.expose(reraise_if_error_type=(CustomResourceUsageTrackerError,))
98+
@router.expose(reraise_if_error_type=())
10299
async def get_osparc_credits_aggregated_usages_page(
103100
app: FastAPI,
104101
*,
@@ -127,7 +124,7 @@ async def get_osparc_credits_aggregated_usages_page(
127124
## Pricing plans
128125

129126

130-
@router.expose(reraise_if_error_type=(CustomResourceUsageTrackerError,))
127+
@router.expose(reraise_if_error_type=())
131128
async def get_pricing_plan(
132129
app: FastAPI,
133130
*,
@@ -141,7 +138,7 @@ async def get_pricing_plan(
141138
)
142139

143140

144-
@router.expose(reraise_if_error_type=(CustomResourceUsageTrackerError,))
141+
@router.expose(reraise_if_error_type=())
145142
async def list_pricing_plans(
146143
app: FastAPI,
147144
*,
@@ -153,7 +150,7 @@ async def list_pricing_plans(
153150
)
154151

155152

156-
@router.expose(reraise_if_error_type=(CustomResourceUsageTrackerError,))
153+
@router.expose(reraise_if_error_type=())
157154
async def create_pricing_plan(
158155
app: FastAPI,
159156
*,
@@ -165,7 +162,7 @@ async def create_pricing_plan(
165162
)
166163

167164

168-
@router.expose(reraise_if_error_type=(CustomResourceUsageTrackerError,))
165+
@router.expose(reraise_if_error_type=())
169166
async def update_pricing_plan(
170167
app: FastAPI,
171168
*,
@@ -182,7 +179,7 @@ async def update_pricing_plan(
182179
## Pricing units
183180

184181

185-
@router.expose(reraise_if_error_type=(CustomResourceUsageTrackerError,))
182+
@router.expose(reraise_if_error_type=())
186183
async def get_pricing_unit(
187184
app: FastAPI,
188185
*,
@@ -198,7 +195,7 @@ async def get_pricing_unit(
198195
)
199196

200197

201-
@router.expose(reraise_if_error_type=(CustomResourceUsageTrackerError,))
198+
@router.expose(reraise_if_error_type=())
202199
async def create_pricing_unit(
203200
app: FastAPI,
204201
*,
@@ -212,7 +209,7 @@ async def create_pricing_unit(
212209
)
213210

214211

215-
@router.expose(reraise_if_error_type=(CustomResourceUsageTrackerError,))
212+
@router.expose(reraise_if_error_type=())
216213
async def update_pricing_unit(
217214
app: FastAPI,
218215
*,
@@ -229,7 +226,7 @@ async def update_pricing_unit(
229226
## Pricing plan to service
230227

231228

232-
@router.expose(reraise_if_error_type=(CustomResourceUsageTrackerError,))
229+
@router.expose(reraise_if_error_type=())
233230
async def list_connected_services_to_pricing_plan_by_pricing_plan(
234231
app: FastAPI,
235232
*,
@@ -246,7 +243,7 @@ async def list_connected_services_to_pricing_plan_by_pricing_plan(
246243
return output
247244

248245

249-
@router.expose(reraise_if_error_type=(CustomResourceUsageTrackerError,))
246+
@router.expose(reraise_if_error_type=())
250247
async def connect_service_to_pricing_plan(
251248
app: FastAPI,
252249
*,

services/resource-usage-tracker/src/simcore_service_resource_usage_tracker/api/rpc/routes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
)
55
from servicelib.rabbitmq import RPCRouter
66

7-
from ...modules.rabbitmq import get_rabbitmq_rpc_server
7+
from ...services.modules.rabbitmq import get_rabbitmq_rpc_server
88
from . import _resource_tracker
99

1010
ROUTERS: list[RPCRouter] = [

services/resource-usage-tracker/src/simcore_service_resource_usage_tracker/core/application.py

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,7 @@
22

33
from fastapi import FastAPI
44
from servicelib.fastapi.openapi import override_fastapi_openapi_method
5-
from servicelib.fastapi.prometheus_instrumentation import (
6-
setup_prometheus_instrumentation,
7-
)
85
from servicelib.fastapi.tracing import setup_tracing
9-
from servicelib.rabbitmq.rpc_interfaces.resource_usage_tracker.errors import (
10-
CustomResourceUsageTrackerError,
11-
)
126

137
from .._meta import (
148
API_VERSION,
@@ -20,12 +14,17 @@
2014
)
2115
from ..api.rest.routes import setup_api_routes
2216
from ..api.rpc.routes import setup_rpc_api_routes
23-
from ..modules.db import setup as setup_db
24-
from ..modules.rabbitmq import setup as setup_rabbitmq
25-
from ..modules.redis import setup as setup_redis
26-
from ..modules.s3 import setup as setup_s3
27-
from ..resource_tracker import setup as setup_resource_tracker
28-
from .errors import http404_error_handler
17+
from ..exceptions.handlers import setup_exception_handlers
18+
from ..services.background_task_periodic_heartbeat_check_setup import (
19+
setup as setup_background_task_periodic_heartbeat_check,
20+
)
21+
from ..services.modules.db import setup as setup_db
22+
from ..services.modules.rabbitmq import setup as setup_rabbitmq
23+
from ..services.modules.redis import setup as setup_redis
24+
from ..services.modules.s3 import setup as setup_s3
25+
from ..services.process_message_running_service_setup import (
26+
setup as setup_process_message_running_service,
27+
)
2928
from .settings import ApplicationSettings
3029

3130
_logger = logging.getLogger(__name__)
@@ -52,18 +51,6 @@ def create_app(settings: ApplicationSettings) -> FastAPI:
5251
# PLUGINS SETUP
5352
setup_api_routes(app)
5453

55-
if app.state.settings.RESOURCE_USAGE_TRACKER_PROMETHEUS_INSTRUMENTATION_ENABLED:
56-
setup_prometheus_instrumentation(app)
57-
if app.state.settings.RESOURCE_USAGE_TRACKER_TRACING:
58-
setup_tracing(
59-
app,
60-
app.state.settings.RESOURCE_USAGE_TRACKER_TRACING,
61-
app.state.settings.APP_NAME,
62-
)
63-
64-
# ERROR HANDLERS
65-
app.add_exception_handler(CustomResourceUsageTrackerError, http404_error_handler)
66-
6754
if settings.RESOURCE_USAGE_TRACKER_POSTGRES:
6855
setup_db(app)
6956
setup_redis(app)
@@ -72,8 +59,20 @@ def create_app(settings: ApplicationSettings) -> FastAPI:
7259
# Needed for CSV export functionality
7360
setup_s3(app)
7461

75-
setup_resource_tracker(app)
76-
setup_rpc_api_routes(app)
62+
setup_rpc_api_routes(app) # Requires Rabbit, S3
63+
setup_background_task_periodic_heartbeat_check(app) # Requires Redis, DB
64+
65+
setup_process_message_running_service(app) # Requires Rabbit
66+
67+
if app.state.settings.RESOURCE_USAGE_TRACKER_TRACING:
68+
setup_tracing(
69+
app,
70+
app.state.settings.RESOURCE_USAGE_TRACKER_TRACING,
71+
app.state.settings.APP_NAME,
72+
)
73+
74+
# ERROR HANDLERS
75+
setup_exception_handlers(app)
7776

7877
# EVENTS
7978
async def _on_startup() -> None:

services/resource-usage-tracker/src/simcore_service_resource_usage_tracker/core/errors.py

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)