Skip to content

Commit f69a4b8

Browse files
committed
@pcrespov use SingletonInAppStateMixin
1 parent 3d3b3f4 commit f69a4b8

File tree

4 files changed

+16
-12
lines changed

4 files changed

+16
-12
lines changed
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Annotated, cast
1+
from typing import Annotated
22

33
from fastapi import Depends, FastAPI
44
from servicelib.fastapi.dependencies import get_app
@@ -9,5 +9,4 @@
99
async def get_resource_usage_tracker_client(
1010
app: Annotated[FastAPI, Depends(get_app)]
1111
) -> ResourceUsageTrackerClient:
12-
assert app.state.resource_usage_tracker_rpc_client # nosec
13-
return cast(ResourceUsageTrackerClient, app.state.resource_usage_tracker_rpc_client)
12+
return ResourceUsageTrackerClient.get_from_app_state(app=app)
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Annotated, cast
1+
from typing import Annotated
22

33
from fastapi import Depends, FastAPI
44
from servicelib.fastapi.dependencies import get_app
@@ -9,5 +9,4 @@
99
async def get_wb_api_rpc_client(
1010
app: Annotated[FastAPI, Depends(get_app)]
1111
) -> WbApiRpcClient:
12-
assert app.state.wb_api_rpc_client # nosec
13-
return cast(WbApiRpcClient, app.state.wb_api_rpc_client)
12+
return WbApiRpcClient.get_from_app_state(app=app)

services/api-server/src/simcore_service_api_server/services_rpc/resource_usage_tracker.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from models_library.resource_tracker_licensed_items_checkouts import (
66
LicensedItemCheckoutID,
77
)
8+
from servicelib.fastapi.app_state import SingletonInAppStateMixin
89
from servicelib.rabbitmq._client_rpc import RabbitMQRPCClient
910
from servicelib.rabbitmq.rpc_interfaces.resource_usage_tracker.errors import (
1011
LicensedItemCheckoutNotFoundError as _LicensedItemCheckoutNotFoundError,
@@ -23,7 +24,8 @@
2324

2425

2526
@dataclass
26-
class ResourceUsageTrackerClient:
27+
class ResourceUsageTrackerClient(SingletonInAppStateMixin):
28+
app_state_name = "resource_usage_tracker_rpc_client"
2729
_client: RabbitMQRPCClient
2830

2931
@_exception_mapper(
@@ -51,7 +53,8 @@ async def get_licensed_item_checkout(
5153
)
5254

5355

54-
def setup(app: FastAPI, rabbitmq_rmp_client: RabbitMQRPCClient):
55-
app.state.resource_usage_tracker_rpc_client = ResourceUsageTrackerClient(
56-
_client=rabbitmq_rmp_client
56+
def setup(app: FastAPI, rabbitmq_rpc_client: RabbitMQRPCClient):
57+
resource_usage_tracker_rpc_client = ResourceUsageTrackerClient(
58+
_client=rabbitmq_rpc_client
5759
)
60+
resource_usage_tracker_rpc_client.set_to_app_state(app=app)

services/api-server/src/simcore_service_api_server/services_rpc/wb_api_server.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from models_library.services_types import ServiceRunID
1212
from models_library.users import UserID
1313
from models_library.wallets import WalletID
14+
from servicelib.fastapi.app_state import SingletonInAppStateMixin
1415
from servicelib.rabbitmq._client_rpc import RabbitMQRPCClient
1516
from servicelib.rabbitmq.rpc_interfaces.resource_usage_tracker.errors import (
1617
CanNotCheckoutNotEnoughAvailableSeatsError,
@@ -72,7 +73,8 @@ def _create_licensed_items_get_page(
7273

7374

7475
@dataclass
75-
class WbApiRpcClient:
76+
class WbApiRpcClient(SingletonInAppStateMixin):
77+
app_state_name = "wb_api_rpc_client"
7678
_client: RabbitMQRPCClient
7779

7880
@_exception_mapper(rpc_exception_map={})
@@ -178,4 +180,5 @@ async def release_licensed_item_for_wallet(
178180

179181

180182
def setup(app: FastAPI, rabbitmq_rmp_client: RabbitMQRPCClient):
181-
app.state.wb_api_rpc_client = WbApiRpcClient(_client=rabbitmq_rmp_client)
183+
wb_api_rpc_client = WbApiRpcClient(_client=rabbitmq_rmp_client)
184+
wb_api_rpc_client.set_to_app_state(app=app)

0 commit comments

Comments
 (0)