Skip to content

Commit 2354e68

Browse files
author
Andrei Neagu
committed
Merge remote-tracking branch 'upstream/master' into pr-osparc-orphaned-containers-removal
2 parents 688f10d + 4eeaa5c commit 2354e68

File tree

259 files changed

+6529
-2192
lines changed

Some content is hidden

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

259 files changed

+6529
-2192
lines changed

api/specs/web-server/_catalog_licensed_items.py renamed to api/specs/web-server/_licensed_items.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,8 @@
1414
from models_library.generics import Envelope
1515
from models_library.rest_error import EnvelopedError
1616
from simcore_service_webserver._meta import API_VTAG
17-
from simcore_service_webserver.catalog.licenses._exceptions_handlers import (
18-
_TO_HTTP_ERROR_MAP,
19-
)
20-
from simcore_service_webserver.catalog.licenses._models import (
17+
from simcore_service_webserver.licenses._exceptions_handlers import _TO_HTTP_ERROR_MAP
18+
from simcore_service_webserver.licenses._models import (
2119
LicensedItemsBodyParams,
2220
LicensedItemsListQueryParams,
2321
LicensedItemsPathParams,
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
""" Helper script to generate OAS automatically
2+
"""
3+
4+
# pylint: disable=redefined-outer-name
5+
# pylint: disable=unused-argument
6+
# pylint: disable=unused-variable
7+
# pylint: disable=too-many-arguments
8+
9+
from typing import Annotated
10+
11+
from _common import as_query
12+
from fastapi import APIRouter, Depends
13+
from models_library.api_schemas_webserver.licensed_items_purchases import (
14+
LicensedItemPurchaseGet,
15+
)
16+
from models_library.generics import Envelope
17+
from models_library.rest_error import EnvelopedError
18+
from models_library.rest_pagination import Page
19+
from simcore_service_webserver._meta import API_VTAG
20+
from simcore_service_webserver.licenses._exceptions_handlers import _TO_HTTP_ERROR_MAP
21+
from simcore_service_webserver.licenses._models import (
22+
LicensedItemsPurchasesListQueryParams,
23+
LicensedItemsPurchasesPathParams,
24+
)
25+
from simcore_service_webserver.wallets._handlers import WalletsPathParams
26+
27+
router = APIRouter(
28+
prefix=f"/{API_VTAG}",
29+
tags=[
30+
"licenses",
31+
],
32+
responses={
33+
i.status_code: {"model": EnvelopedError} for i in _TO_HTTP_ERROR_MAP.values()
34+
},
35+
)
36+
37+
38+
@router.get(
39+
"/wallets/{wallet_id}/licensed-items-purchases",
40+
response_model=Page[LicensedItemPurchaseGet],
41+
tags=["wallets"],
42+
)
43+
async def list_wallet_licensed_items_purchases(
44+
_path: Annotated[WalletsPathParams, Depends()],
45+
_query: Annotated[as_query(LicensedItemsPurchasesListQueryParams), Depends()],
46+
):
47+
...
48+
49+
50+
@router.get(
51+
"/licensed-items-purchases/{licensed_item_purchase_id}",
52+
response_model=Envelope[LicensedItemPurchaseGet],
53+
)
54+
async def get_licensed_item_purchase(
55+
_path: Annotated[LicensedItemsPurchasesPathParams, Depends()],
56+
):
57+
...

api/specs/web-server/_projects_nodes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
ServiceResourcesDict,
2222
)
2323
from models_library.generics import Envelope
24+
from models_library.groups import GroupID
2425
from models_library.projects import ProjectID
2526
from models_library.projects_nodes_io import NodeID
26-
from models_library.users import GroupID
2727
from simcore_service_webserver._meta import API_VTAG
2828
from simcore_service_webserver.projects._crud_handlers import ProjectPathParams
2929
from simcore_service_webserver.projects._nodes_handlers import (

api/specs/web-server/_wallets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
WalletPaymentInitiated,
2828
)
2929
from models_library.generics import Envelope
30+
from models_library.groups import GroupID
3031
from models_library.rest_pagination import Page, PageQueryParameters
31-
from models_library.users import GroupID
3232
from models_library.wallets import WalletID
3333
from simcore_service_webserver._meta import API_VTAG
3434
from simcore_service_webserver.wallets._groups_api import WalletGroupGet

api/specs/web-server/openapi.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,12 @@
3232
"_announcements",
3333
"_catalog",
3434
"_catalog_tags", # MUST BE after _catalog
35-
"_catalog_licensed_items",
3635
"_computations",
3736
"_exporter",
3837
"_folders",
3938
"_long_running_tasks",
39+
"_licensed_items",
40+
"_licensed_items_purchases",
4041
"_metamodeling",
4142
"_nih_sparc",
4243
"_nih_sparc_redirections",

packages/aws-library/src/aws_library/ec2/_client.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,8 @@ async def launch_instances(
181181
)
182182
instance_ids = [i["InstanceId"] for i in instances["Instances"]]
183183
_logger.info(
184-
"New instances launched: %s, waiting for them to start now...",
184+
"%s New instances launched: %s, waiting for them to start now...",
185+
len(instance_ids),
185186
instance_ids,
186187
)
187188

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import enum
2+
3+
4+
class GroupType(enum.Enum):
5+
"""
6+
standard: standard group, e.g. any group that is not a primary group or special group such as the everyone group
7+
primary: primary group, e.g. the primary group is the user own defined group that typically only contain the user (same as in linux)
8+
everyone: the only group for all users
9+
"""
10+
11+
STANDARD = "standard"
12+
PRIMARY = "primary"
13+
EVERYONE = "everyone"

packages/models-library/src/models_library/api_schemas_catalog/service_access_rights.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from pydantic import BaseModel
22

3+
from ..groups import GroupID
34
from ..services import ServiceKey, ServiceVersion
4-
from ..users import GroupID
55

66

77
class ServiceAccessRightsGet(BaseModel):

packages/models-library/src/models_library/api_schemas_catalog/services.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from ..boot_options import BootOptions
88
from ..emails import LowerCaseEmailStr
9+
from ..groups import GroupID
910
from ..services_access import ServiceAccessRights, ServiceGroupAccessRightsV2
1011
from ..services_authoring import Author
1112
from ..services_enums import ServiceType
@@ -18,7 +19,6 @@
1819
)
1920
from ..services_resources import ServiceResourcesDict
2021
from ..services_types import ServiceKey, ServiceVersion
21-
from ..users import GroupID
2222
from ..utils.change_case import snake_to_camel
2323

2424

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
from datetime import datetime
2+
from decimal import Decimal
3+
from typing import NamedTuple
4+
5+
from models_library.licensed_items import LicensedItemID
6+
from models_library.products import ProductName
7+
from models_library.resource_tracker import PricingUnitCostId
8+
from models_library.resource_tracker_licensed_items_purchases import (
9+
LicensedItemPurchaseID,
10+
)
11+
from models_library.users import UserID
12+
from models_library.wallets import WalletID
13+
from pydantic import BaseModel, ConfigDict, PositiveInt
14+
15+
16+
class LicensedItemPurchaseGet(BaseModel):
17+
licensed_item_purchase_id: LicensedItemPurchaseID
18+
product_name: ProductName
19+
licensed_item_id: LicensedItemID
20+
wallet_id: WalletID
21+
wallet_name: str
22+
pricing_unit_cost_id: PricingUnitCostId
23+
pricing_unit_cost: Decimal
24+
start_at: datetime
25+
expire_at: datetime
26+
num_of_seats: int
27+
purchased_by_user: UserID
28+
purchased_at: datetime
29+
modified: datetime
30+
31+
model_config = ConfigDict(
32+
json_schema_extra={
33+
"examples": [
34+
{
35+
"licensed_item_purchase_id": "beb16d18-d57d-44aa-a638-9727fa4a72ef",
36+
"product_name": "osparc",
37+
"licensed_item_id": "303942ef-6d31-4ba8-afbe-dbb1fce2a953",
38+
"wallet_id": 1,
39+
"wallet_name": "My Wallet",
40+
"pricing_unit_cost_id": 1,
41+
"pricing_unit_cost": 10,
42+
"start_at": "2023-01-11 13:11:47.293595",
43+
"expire_at": "2023-01-11 13:11:47.293595",
44+
"num_of_seats": 1,
45+
"purchased_by_user": 1,
46+
"purchased_at": "2023-01-11 13:11:47.293595",
47+
"modified": "2023-01-11 13:11:47.293595",
48+
}
49+
]
50+
}
51+
)
52+
53+
54+
class LicensedItemsPurchasesPage(NamedTuple):
55+
items: list[LicensedItemPurchaseGet]
56+
total: PositiveInt

0 commit comments

Comments
 (0)