Skip to content

Commit 42071a0

Browse files
add force release of license seats on stop event
1 parent 8b6b38c commit 42071a0

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

services/resource-usage-tracker/src/simcore_service_resource_usage_tracker/services/modules/db/licensed_items_checkouts_db.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
import sqlalchemy as sa
66
from models_library.licensed_items import LicensedItemID
77
from models_library.products import ProductName
8-
from models_library.resource_tracker import ServiceRunId
98
from models_library.resource_tracker_licensed_items_checkouts import (
109
LicensedItemCheckoutID,
1110
)
1211
from models_library.rest_ordering import OrderBy, OrderDirection
12+
from models_library.services_types import ServiceRunID
1313
from models_library.wallets import WalletID
1414
from pydantic import NonNegativeInt
1515
from servicelib.rabbitmq.rpc_interfaces.resource_usage_tracker.errors import (
@@ -225,7 +225,7 @@ async def force_release_license_seats_by_run_id(
225225
engine: AsyncEngine,
226226
connection: AsyncConnection | None = None,
227227
*,
228-
service_run_id: ServiceRunId,
228+
service_run_id: ServiceRunID,
229229
) -> None:
230230
"""
231231
Purpose: This function is utilized by a periodic heartbeat check task that monitors whether running services are

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

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,12 @@
3333
ServiceRunLastHeartbeatUpdate,
3434
ServiceRunStoppedAtUpdate,
3535
)
36-
from .modules.db import credit_transactions_db, pricing_plans_db, service_runs_db
36+
from .modules.db import (
37+
credit_transactions_db,
38+
licensed_items_checkouts_db,
39+
pricing_plans_db,
40+
service_runs_db,
41+
)
3742
from .modules.rabbitmq import RabbitMQClient, get_rabbitmq_client
3843
from .utils import (
3944
compute_service_run_credit_costs,
@@ -269,9 +274,15 @@ async def _process_stop_event(
269274
running_service = await service_runs_db.update_service_run_stopped_at(
270275
db_engine, data=update_service_run_stopped_at
271276
)
277+
await licensed_items_checkouts_db.force_release_license_seats_by_run_id(
278+
db_engine, service_run_id=msg.service_run_id
279+
)
272280

273281
if running_service is None:
274-
_logger.error("Nothing to update. This should not happen investigate.")
282+
_logger.error(
283+
"Nothing to update. This should not happen investigate. service_run_id: %s",
284+
msg.service_run_id,
285+
)
275286
return
276287

277288
if running_service.wallet_id and running_service.pricing_unit_cost is not None:

0 commit comments

Comments
 (0)