Skip to content

Commit 8fb1914

Browse files
committed
make PricingUnitget backwards compatible
1 parent a30635d commit 8fb1914

File tree

5 files changed

+97
-42
lines changed

5 files changed

+97
-42
lines changed

services/api-server/openapi.json

Lines changed: 71 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3928,7 +3928,7 @@
39283928
"content": {
39293929
"application/json": {
39303930
"schema": {
3931-
"$ref": "#/components/schemas/PricingUnitGet"
3931+
"$ref": "#/components/schemas/simcore_service_api_server__models__schemas__backwards_compatibility__PricingUnitGet"
39323932
}
39333933
}
39343934
}
@@ -6469,40 +6469,6 @@
64696469
"const": "TIER",
64706470
"title": "PricingPlanClassification"
64716471
},
6472-
"PricingUnitGet": {
6473-
"properties": {
6474-
"pricingUnitId": {
6475-
"type": "integer",
6476-
"exclusiveMinimum": true,
6477-
"title": "Pricingunitid",
6478-
"minimum": 0
6479-
},
6480-
"unitName": {
6481-
"type": "string",
6482-
"title": "Unitname"
6483-
},
6484-
"unitExtraInfo": {
6485-
"$ref": "#/components/schemas/UnitExtraInfo"
6486-
},
6487-
"currentCostPerUnit": {
6488-
"type": "string",
6489-
"title": "Currentcostperunit"
6490-
},
6491-
"default": {
6492-
"type": "boolean",
6493-
"title": "Default"
6494-
}
6495-
},
6496-
"type": "object",
6497-
"required": [
6498-
"pricingUnitId",
6499-
"unitName",
6500-
"unitExtraInfo",
6501-
"currentCostPerUnit",
6502-
"default"
6503-
],
6504-
"title": "PricingUnitGet"
6505-
},
65066472
"Profile": {
65076473
"properties": {
65086474
"first_name": {
@@ -6673,7 +6639,7 @@
66736639
},
66746640
"pricingUnits": {
66756641
"items": {
6676-
"$ref": "#/components/schemas/PricingUnitGet"
6642+
"$ref": "#/components/schemas/models_library__api_schemas_webserver__resource_usage__PricingUnitGet"
66776643
},
66786644
"type": "array",
66796645
"title": "Pricingunits"
@@ -7109,6 +7075,75 @@
71097075
"INACTIVE"
71107076
],
71117077
"title": "WalletStatus"
7078+
},
7079+
"models_library__api_schemas_webserver__resource_usage__PricingUnitGet": {
7080+
"properties": {
7081+
"pricingUnitId": {
7082+
"type": "integer",
7083+
"exclusiveMinimum": true,
7084+
"title": "Pricingunitid",
7085+
"minimum": 0
7086+
},
7087+
"unitName": {
7088+
"type": "string",
7089+
"title": "Unitname"
7090+
},
7091+
"unitExtraInfo": {
7092+
"$ref": "#/components/schemas/UnitExtraInfo"
7093+
},
7094+
"currentCostPerUnit": {
7095+
"type": "string",
7096+
"title": "Currentcostperunit"
7097+
},
7098+
"default": {
7099+
"type": "boolean",
7100+
"title": "Default"
7101+
}
7102+
},
7103+
"type": "object",
7104+
"required": [
7105+
"pricingUnitId",
7106+
"unitName",
7107+
"unitExtraInfo",
7108+
"currentCostPerUnit",
7109+
"default"
7110+
],
7111+
"title": "PricingUnitGet"
7112+
},
7113+
"simcore_service_api_server__models__schemas__backwards_compatibility__PricingUnitGet": {
7114+
"properties": {
7115+
"pricingUnitId": {
7116+
"type": "integer",
7117+
"exclusiveMinimum": true,
7118+
"title": "Pricingunitid",
7119+
"minimum": 0
7120+
},
7121+
"unitName": {
7122+
"type": "string",
7123+
"title": "Unitname"
7124+
},
7125+
"unitExtraInfo": {
7126+
"$ref": "#/components/schemas/UnitExtraInfo"
7127+
},
7128+
"currentCostPerUnit": {
7129+
"type": "number",
7130+
"minimum": 0.0,
7131+
"title": "Currentcostperunit"
7132+
},
7133+
"default": {
7134+
"type": "boolean",
7135+
"title": "Default"
7136+
}
7137+
},
7138+
"type": "object",
7139+
"required": [
7140+
"pricingUnitId",
7141+
"unitName",
7142+
"unitExtraInfo",
7143+
"currentCostPerUnit",
7144+
"default"
7145+
],
7146+
"title": "PricingUnitGet"
71127147
}
71137148
},
71147149
"securitySchemes": {

services/api-server/src/simcore_service_api_server/api/routes/solvers_jobs_getters.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
from fastapi.responses import RedirectResponse
1212
from fastapi_pagination.api import create_page
1313
from models_library.api_schemas_webserver.projects import ProjectGet
14-
from models_library.api_schemas_webserver.resource_usage import PricingUnitGet
1514
from models_library.api_schemas_webserver.wallets import WalletGetWithAvailableCredits
1615
from models_library.projects_nodes_io import BaseFileLink
1716
from models_library.users import UserID
@@ -25,6 +24,7 @@
2524
from ...exceptions.service_errors_utils import DEFAULT_BACKEND_SERVICE_STATUS_CODES
2625
from ...models.basic_types import LogStreamingResponse, VersionStr
2726
from ...models.pagination import Page, PaginationParams
27+
from ...models.schemas.backwards_compatibility import PricingUnitGet
2828
from ...models.schemas.errors import ErrorGet
2929
from ...models.schemas.files import File
3030
from ...models.schemas.jobs import (

services/api-server/src/simcore_service_api_server/models/schemas/backwards_compatibility.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
# Models added here "cover" models from within the deployment in order to restore backwards compatibility
22

3+
from decimal import Decimal
34
from typing import Annotated
45

56
from models_library.api_schemas_webserver._base import OutputSchema
67
from models_library.api_schemas_webserver.product import (
78
GetCreditPrice as _GetCreditPrice,
89
)
10+
from models_library.api_schemas_webserver.resource_usage import (
11+
PricingUnitGet as _PricingUnitGet,
12+
)
913
from models_library.basic_types import NonNegativeDecimal
14+
from models_library.resource_tracker import PricingUnitId, UnitExtraInfo
1015
from pydantic import Field, NonNegativeFloat, NonNegativeInt, PlainSerializer
1116

1217

@@ -30,3 +35,18 @@ class GetCreditPrice(OutputSchema):
3035
assert set(GetCreditPrice.model_fields.keys()) == set(
3136
_GetCreditPrice.model_fields.keys()
3237
)
38+
39+
40+
class PricingUnitGet(OutputSchema):
41+
pricing_unit_id: PricingUnitId
42+
unit_name: str
43+
unit_extra_info: UnitExtraInfo
44+
current_cost_per_unit: Annotated[
45+
Decimal, PlainSerializer(float, return_type=NonNegativeFloat, when_used="json")
46+
]
47+
default: bool
48+
49+
50+
assert set(PricingUnitGet.model_fields.keys()) == set(
51+
_PricingUnitGet.model_fields.keys()
52+
)

services/api-server/src/simcore_service_api_server/services/webserver.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,7 @@
2828
ProjectInputGet,
2929
ProjectInputUpdate,
3030
)
31-
from models_library.api_schemas_webserver.resource_usage import (
32-
PricingPlanGet,
33-
PricingUnitGet,
34-
)
31+
from models_library.api_schemas_webserver.resource_usage import PricingPlanGet
3532
from models_library.api_schemas_webserver.wallets import (
3633
WalletGet,
3734
WalletGetWithAvailableCredits,
@@ -80,6 +77,7 @@
8077
)
8178
from ..models.basic_types import VersionStr
8279
from ..models.pagination import MAXIMUM_NUMBER_OF_ITEMS_PER_PAGE
80+
from ..models.schemas.backwards_compatibility import PricingUnitGet
8381
from ..models.schemas.jobs import MetaValueType
8482
from ..models.schemas.profiles import Profile, ProfileUpdate
8583
from ..models.schemas.solvers import SolverKeyId

services/api-server/tests/unit/test_api_solver_jobs.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
from fastapi import status
1515
from fastapi.encoders import jsonable_encoder
1616
from httpx import AsyncClient
17-
from models_library.api_schemas_webserver.resource_usage import PricingUnitGet
1817
from models_library.api_schemas_webserver.wallets import WalletGetWithAvailableCredits
1918
from models_library.generics import Envelope
2019
from pydantic import TypeAdapter
@@ -24,6 +23,9 @@
2423
SideEffectCallback,
2524
)
2625
from simcore_service_api_server._meta import API_VTAG
26+
from simcore_service_api_server.models.schemas.backwards_compatibility import (
27+
PricingUnitGet,
28+
)
2729
from simcore_service_api_server.models.schemas.jobs import Job, JobStatus
2830
from simcore_service_api_server.models.schemas.solvers import Solver
2931
from simcore_service_api_server.services.director_v2 import ComputationTaskGet

0 commit comments

Comments
 (0)