Skip to content

Commit 7a1dcf7

Browse files
renaming
1 parent a43626d commit 7a1dcf7

File tree

10 files changed

+63
-63
lines changed

10 files changed

+63
-63
lines changed

packages/models-library/src/models_library/api_schemas_resource_usage_tracker/licensed_items_checkouts.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from datetime import datetime
2-
from typing import NamedTuple, TypeAlias
3-
from uuid import UUID
2+
from typing import NamedTuple
43

54
from models_library.licensed_items import LicensedItemID
65
from models_library.products import ProductName
@@ -12,8 +11,6 @@
1211
from models_library.wallets import WalletID
1312
from pydantic import BaseModel, ConfigDict, PositiveInt
1413

15-
LicenseCheckoutID: TypeAlias = UUID
16-
1714

1815
class LicensedItemCheckoutGet(BaseModel):
1916
licensed_item_checkout_id: LicensedItemCheckoutID
@@ -48,7 +45,3 @@ class LicensedItemCheckoutGet(BaseModel):
4845
class LicensedItemsCheckoutsPage(NamedTuple):
4946
items: list[LicensedItemCheckoutGet]
5047
total: PositiveInt
51-
52-
53-
class LicenseCheckoutGet(BaseModel):
54-
checkout_id: LicenseCheckoutID # This is a licensed_item_checkout_id generated in the `resource_tracker_licensed_items_checkouts` table

packages/models-library/src/models_library/api_schemas_webserver/licensed_items_checkouts.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
from datetime import datetime
22
from typing import NamedTuple
33

4-
from pydantic import BaseModel, PositiveInt
4+
from pydantic import PositiveInt
55

6-
from ..api_schemas_resource_usage_tracker.licensed_items_checkouts import (
7-
LicenseCheckoutID,
8-
)
96
from ..licensed_items import LicensedItemID
107
from ..products import ProductName
118
from ..resource_tracker_licensed_items_checkouts import LicensedItemCheckoutID
@@ -28,7 +25,3 @@ class LicensedItemCheckoutGet(OutputSchema):
2825
class LicensedItemUsageGetPage(NamedTuple):
2926
items: list[LicensedItemCheckoutGet]
3027
total: PositiveInt
31-
32-
33-
class LicenseCheckoutGet(BaseModel):
34-
checkout_id: LicenseCheckoutID

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

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
RESOURCE_USAGE_TRACKER_RPC_NAMESPACE,
66
)
77
from models_library.api_schemas_resource_usage_tracker.licensed_items_checkouts import (
8-
LicenseCheckoutGet,
9-
LicenseCheckoutID,
108
LicensedItemCheckoutGet,
119
LicensedItemsCheckoutsPage,
1210
)
@@ -93,8 +91,8 @@ async def checkout_licensed_item(
9391
service_run_id: ServiceRunId,
9492
user_id: UserID,
9593
user_email: str,
96-
) -> LicenseCheckoutGet:
97-
result: LicenseCheckoutGet = await rabbitmq_rpc_client.request(
94+
) -> LicensedItemCheckoutGet:
95+
result: LicensedItemCheckoutGet = await rabbitmq_rpc_client.request(
9896
RESOURCE_USAGE_TRACKER_RPC_NAMESPACE,
9997
_RPC_METHOD_NAME_ADAPTER.validate_python("checkout_licensed_item"),
10098
licensed_item_id=licensed_item_id,
@@ -106,21 +104,21 @@ async def checkout_licensed_item(
106104
user_email=user_email,
107105
timeout_s=_DEFAULT_TIMEOUT_S,
108106
)
109-
assert isinstance(result, LicenseCheckoutGet) # nosec
107+
assert isinstance(result, LicensedItemCheckoutGet) # nosec
110108
return result
111109

112110

113111
@log_decorator(_logger, level=logging.DEBUG)
114112
async def release_licensed_item(
115113
rabbitmq_rpc_client: RabbitMQRPCClient,
116114
*,
117-
checkout_id: LicenseCheckoutID,
115+
licensed_item_checkout_id: LicensedItemCheckoutID,
118116
product_name: ProductName,
119117
) -> LicensedItemCheckoutGet:
120118
result: LicensedItemCheckoutGet = await rabbitmq_rpc_client.request(
121119
RESOURCE_USAGE_TRACKER_RPC_NAMESPACE,
122120
_RPC_METHOD_NAME_ADAPTER.validate_python("release_licensed_item"),
123-
checkout_id=checkout_id,
121+
licensed_item_checkout_id=licensed_item_checkout_id,
124122
product_name=product_name,
125123
timeout_s=_DEFAULT_TIMEOUT_S,
126124
)

packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/webserver/licenses/licensed_items.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
)
88
from models_library.api_schemas_webserver.licensed_items_checkouts import (
99
LicenseCheckoutGet,
10-
LicenseCheckoutID,
1110
LicensedItemCheckoutGet,
1211
)
1312
from models_library.licensed_items import LicensedItemID
@@ -19,6 +18,7 @@
1918
from pydantic import TypeAdapter
2019
from servicelib.logging_utils import log_decorator
2120
from servicelib.rabbitmq import RabbitMQRPCClient
21+
from simcore_service_webserver.licenses._rpc import LicensedItemCheckoutID
2222

2323
_logger = logging.getLogger(__name__)
2424

@@ -98,14 +98,14 @@ async def release_licensed_item_for_wallet(
9898
*,
9999
product_name: ProductName,
100100
user_id: UserID,
101-
checkout_id: LicenseCheckoutID,
101+
licensed_item_checkout_id: LicensedItemCheckoutID,
102102
) -> LicensedItemCheckoutGet:
103103
result = await rabbitmq_rpc_client.request(
104104
WEBSERVER_RPC_NAMESPACE,
105105
TypeAdapter(RPCMethodName).validate_python("release_licensed_item_for_wallet"),
106106
product_name=product_name,
107107
user_id=user_id,
108-
checkout_id=checkout_id,
108+
licensed_item_checkout_id=licensed_item_checkout_id,
109109
)
110110
assert isinstance(result, LicensedItemCheckoutGet) # nosec
111111
return result

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

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
from fastapi import FastAPI
22
from models_library.api_schemas_resource_usage_tracker.licensed_items_checkouts import (
3-
LicenseCheckoutGet,
4-
LicenseCheckoutID,
53
LicensedItemCheckoutGet,
64
LicensedItemsCheckoutsPage,
75
)
@@ -66,7 +64,7 @@ async def checkout_licensed_item(
6664
service_run_id: ServiceRunId,
6765
user_id: UserID,
6866
user_email: str,
69-
) -> LicenseCheckoutGet:
67+
) -> LicensedItemCheckoutGet:
7068
return await licensed_items_checkouts.checkout_licensed_item(
7169
db_engine=app.state.engine,
7270
licensed_item_id=licensed_item_id,
@@ -81,8 +79,13 @@ async def checkout_licensed_item(
8179

8280
@router.expose(reraise_if_error_type=())
8381
async def release_licensed_item(
84-
app: FastAPI, *, checkout_id: LicenseCheckoutID, product_name: ProductName
82+
app: FastAPI,
83+
*,
84+
licensed_item_checkout_id: LicensedItemCheckoutID,
85+
product_name: ProductName,
8586
) -> LicensedItemCheckoutGet:
8687
return await licensed_items_checkouts.release_licensed_item(
87-
db_engine=app.state.engine, checkout_id=checkout_id, product_name=product_name
88+
db_engine=app.state.engine,
89+
licensed_item_checkout_id=licensed_item_checkout_id,
90+
product_name=product_name,
8891
)

services/resource-usage-tracker/src/simcore_service_resource_usage_tracker/services/licensed_items_checkouts.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33

44
from fastapi import Depends
55
from models_library.api_schemas_resource_usage_tracker.licensed_items_checkouts import (
6-
LicenseCheckoutGet,
7-
LicenseCheckoutID,
86
LicensedItemCheckoutGet,
97
LicensedItemsCheckoutsPage,
108
)
@@ -104,7 +102,7 @@ async def checkout_licensed_item(
104102
service_run_id: ServiceRunId,
105103
user_id: UserID,
106104
user_email: str,
107-
) -> LicenseCheckoutGet:
105+
) -> LicensedItemCheckoutGet:
108106

109107
_active_purchased_seats: int = await licensed_items_purchases_db.get_active_purchased_seats_for_item_and_wallet(
110108
db_engine,
@@ -149,27 +147,35 @@ async def checkout_licensed_item(
149147
started_at=datetime.now(tz=UTC),
150148
num_of_seats=num_of_seats,
151149
)
152-
license_item_checkout_db = await licensed_items_checkouts_db.create(
150+
licensed_item_checkout_db = await licensed_items_checkouts_db.create(
153151
db_engine, data=_create_item_checkout
154152
)
155153

156154
# Return checkout ID
157-
return LicenseCheckoutGet(
158-
checkout_id=license_item_checkout_db.licensed_item_checkout_id
155+
return LicensedItemCheckoutGet(
156+
licensed_item_checkout_id=licensed_item_checkout_db.licensed_item_checkout_id,
157+
licensed_item_id=licensed_item_checkout_db.licensed_item_id,
158+
wallet_id=licensed_item_checkout_db.wallet_id,
159+
user_id=licensed_item_checkout_db.user_id,
160+
product_name=licensed_item_checkout_db.product_name,
161+
service_run_id=licensed_item_checkout_db.service_run_id,
162+
started_at=licensed_item_checkout_db.started_at,
163+
stopped_at=licensed_item_checkout_db.stopped_at,
164+
num_of_seats=licensed_item_checkout_db.num_of_seats,
159165
)
160166

161167

162168
async def release_licensed_item(
163169
db_engine: Annotated[AsyncEngine, Depends(get_resource_tracker_db_engine)],
164170
*,
165-
checkout_id: LicenseCheckoutID,
171+
licensed_item_checkout_id: LicensedItemCheckoutID,
166172
product_name: ProductName,
167173
) -> LicensedItemCheckoutGet:
168174

169175
licensed_item_checkout_db: LicensedItemCheckoutDB = (
170176
await licensed_items_checkouts_db.update(
171177
db_engine,
172-
licensed_item_checkout_id=checkout_id,
178+
licensed_item_checkout_id=licensed_item_checkout_id,
173179
product_name=product_name,
174180
stopped_at=datetime.now(tz=UTC),
175181
)

services/resource-usage-tracker/tests/unit/with_dbs/test_api_licensed_items_checkouts.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,9 @@ async def test_rpc_licensed_items_checkouts_workflow(
131131

132132
# Release num of seats
133133
license_item_checkout = await licensed_items_checkouts.release_licensed_item(
134-
rpc_client, checkout_id=checkout.checkout_id, product_name="osparc"
134+
rpc_client,
135+
licensed_item_checkout_id=checkout.licensed_item_checkout_id,
136+
product_name="osparc",
135137
)
136138
assert license_item_checkout
137139
assert isinstance(license_item_checkout.stopped_at, datetime)

services/web/server/src/simcore_service_webserver/licenses/_licensed_checkouts_api.py

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ async def checkout_licensed_item_for_wallet(
2727
num_of_seats: int,
2828
service_run_id: ServiceRunId,
2929
user_id: UserID,
30-
) -> webserver_licensed_items_checkouts.LicenseCheckoutGet:
30+
) -> webserver_licensed_items_checkouts.LicensedItemCheckoutGet:
3131
# Check whether user has access to the wallet
3232
await get_wallet_by_user(
3333
app,
@@ -39,7 +39,7 @@ async def checkout_licensed_item_for_wallet(
3939
user = await get_user(app, user_id=user_id)
4040

4141
rpc_client = get_rabbitmq_rpc_client(app)
42-
license_checkout_get: rut_licensed_items_checkouts.LicenseCheckoutGet = (
42+
licensed_item_get: rut_licensed_items_checkouts.LicensedItemCheckoutGet = (
4343
await licensed_items_checkouts.checkout_licensed_item(
4444
rpc_client,
4545
licensed_item_id=licensed_item_id,
@@ -52,21 +52,30 @@ async def checkout_licensed_item_for_wallet(
5252
)
5353
)
5454

55-
return webserver_licensed_items_checkouts.LicenseCheckoutGet(
56-
checkout_id=license_checkout_get.checkout_id
55+
return webserver_licensed_items_checkouts.LicensedItemCheckoutGet(
56+
licensed_item_checkout_id=licensed_item_get.licensed_item_checkout_id,
57+
licensed_item_id=licensed_item_get.licensed_item_id,
58+
wallet_id=licensed_item_get.wallet_id,
59+
user_id=licensed_item_get.user_id,
60+
product_name=licensed_item_get.product_name,
61+
started_at=licensed_item_get.started_at,
62+
stopped_at=licensed_item_get.stopped_at,
63+
num_of_seats=licensed_item_get.num_of_seats,
5764
)
5865

5966

6067
async def release_licensed_item_for_wallet(
6168
app: web.Application,
6269
product_name: ProductName,
6370
user_id: UserID,
64-
checkout_id: rut_licensed_items_checkouts.LicenseCheckoutID,
71+
licensed_item_checkout_id: rut_licensed_items_checkouts.LicensedItemCheckoutID,
6572
) -> webserver_licensed_items_checkouts.LicensedItemCheckoutGet:
6673
rpc_client = get_rabbitmq_rpc_client(app)
6774

6875
checkout_item = await licensed_items_checkouts.get_licensed_item_checkout(
69-
rpc_client, product_name=product_name, licensed_item_checkout_id=checkout_id
76+
rpc_client,
77+
product_name=product_name,
78+
licensed_item_checkout_id=licensed_item_checkout_id,
7079
)
7180

7281
# Check whether user has access to the wallet
@@ -81,7 +90,7 @@ async def release_licensed_item_for_wallet(
8190
await licensed_items_checkouts.release_licensed_item(
8291
rpc_client,
8392
product_name=product_name,
84-
checkout_id=checkout_id,
93+
licensed_item_checkout_id=licensed_item_checkout_id,
8594
)
8695
)
8796

services/web/server/src/simcore_service_webserver/licenses/_rpc.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
from aiohttp import web
2+
from models_library.api_schemas_resource_usage_tracker.licensed_items_checkouts import (
3+
LicensedItemCheckoutID,
4+
)
25
from models_library.api_schemas_webserver import WEBSERVER_RPC_NAMESPACE
36
from models_library.api_schemas_webserver.licensed_items import LicensedItemGetPage
47
from models_library.api_schemas_webserver.licensed_items_checkouts import (
5-
LicenseCheckoutGet,
6-
LicenseCheckoutID,
78
LicensedItemCheckoutGet,
89
)
910
from models_library.basic_types import IDStr
@@ -64,7 +65,7 @@ async def checkout_licensed_item_for_wallet(
6465
licensed_item_id: LicensedItemID,
6566
num_of_seats: int,
6667
service_run_id: ServiceRunId,
67-
) -> LicenseCheckoutGet:
68+
) -> LicensedItemCheckoutGet:
6869
return await _licensed_checkouts_api.checkout_licensed_item_for_wallet(
6970
app,
7071
licensed_item_id=licensed_item_id,
@@ -82,10 +83,13 @@ async def release_licensed_item_for_wallet(
8283
*,
8384
product_name: ProductName,
8485
user_id: UserID,
85-
checkout_id: LicenseCheckoutID,
86+
licensed_item_checkout_id: LicensedItemCheckoutID,
8687
) -> LicensedItemCheckoutGet:
8788
return await _licensed_checkouts_api.release_licensed_item_for_wallet(
88-
app, product_name=product_name, user_id=user_id, checkout_id=checkout_id
89+
app,
90+
product_name=product_name,
91+
user_id=user_id,
92+
licensed_item_checkout_id=licensed_item_checkout_id,
8993
)
9094

9195

services/web/server/tests/unit/with_dbs/04/licenses/test_licenses_rpc.py

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import pytest
99
from aiohttp.test_utils import TestClient
1010
from models_library.api_schemas_resource_usage_tracker.licensed_items_checkouts import (
11-
LicenseCheckoutGet,
1211
LicensedItemCheckoutGet,
1312
)
1413
from models_library.licensed_items import LicensedResourceType
@@ -79,10 +78,8 @@ def mock_get_wallet_by_user(mocker: MockerFixture) -> tuple:
7978
)
8079

8180

82-
_LICENSE_CHECKOUT_GET = LicenseCheckoutGet.model_validate(
83-
{
84-
"checkout_id": "beb16d18-d57d-44aa-a638-9727fa4a72ef",
85-
}
81+
_LICENSED_ITEM_CHECKOUT_GET = LicensedItemCheckoutGet.model_validate(
82+
LicensedItemCheckoutGet.model_config["json_schema_extra"]["examples"][0]
8683
)
8784

8885

@@ -91,15 +88,10 @@ def mock_checkout_licensed_item(mocker: MockerFixture) -> tuple:
9188
return mocker.patch(
9289
"simcore_service_webserver.licenses._licensed_checkouts_api.licensed_items_checkouts.checkout_licensed_item",
9390
spec=True,
94-
return_value=_LICENSE_CHECKOUT_GET,
91+
return_value=_LICENSED_ITEM_CHECKOUT_GET,
9592
)
9693

9794

98-
_LICENSED_ITEM_CHECKOUT_GET = LicensedItemCheckoutGet.model_validate(
99-
LicensedItemCheckoutGet.model_config["json_schema_extra"]["examples"][0]
100-
)
101-
102-
10395
@pytest.fixture
10496
def mock_get_licensed_item_checkout(mocker: MockerFixture) -> tuple:
10597
return mocker.patch(

0 commit comments

Comments
 (0)