Skip to content

Commit c106d0a

Browse files
authored
Merge pull request #6689 from sanderegg/update-from-master-10
⬆️Update from upstream/master
2 parents 0527b1e + 7d0fbdb commit c106d0a

File tree

247 files changed

+2793
-1663
lines changed

Some content is hidden

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

247 files changed

+2793
-1663
lines changed

.codecov.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ flag_management:
1818

1919
component_management:
2020
default_rules:
21+
carryforward: true
2122
statuses:
2223
- type: project
2324
target: auto

.env-devel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ COMPUTATIONAL_BACKEND_DEFAULT_FILE_LINK_TYPE=PRESIGNED
8888
COMPUTATIONAL_BACKEND_ON_DEMAND_CLUSTERS_FILE_LINK_TYPE=PRESIGNED
8989
DIRECTOR_V2_DEV_FEATURES_ENABLED=0
9090
DIRECTOR_V2_DYNAMIC_SCHEDULER_CLOSE_SERVICES_VIA_FRONTEND_WHEN_CREDITS_LIMIT_REACHED=1
91-
DIRECTOR_V2_DYNAMIC_SIDECAR_SLEEP_AFTER_CONTAINER_REMOVAL=0
91+
DIRECTOR_V2_DYNAMIC_SIDECAR_SLEEP_AFTER_CONTAINER_REMOVAL=PT0S
9292
DIRECTOR_V2_GENERIC_RESOURCE_PLACEMENT_CONSTRAINTS_SUBSTITUTIONS='{}'
9393
DIRECTOR_V2_HOST=director-v2
9494
DIRECTOR_V2_LOGLEVEL=INFO

.github/workflows/ci-testing-deploy.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,51 @@ jobs:
453453
with:
454454
token: ${{ secrets.CODECOV_TOKEN }}
455455

456+
unit-test-webserver-04:
457+
needs: changes
458+
if: ${{ needs.changes.outputs.webserver == 'true' || github.event_name == 'push' }}
459+
timeout-minutes: 25 # if this timeout gets too small, then split the tests
460+
name: "[unit] webserver 04"
461+
runs-on: ${{ matrix.os }}
462+
strategy:
463+
matrix:
464+
python: ["3.11"]
465+
os: [ubuntu-22.04]
466+
fail-fast: false
467+
steps:
468+
- uses: actions/checkout@v4
469+
- name: setup docker buildx
470+
id: buildx
471+
uses: docker/setup-buildx-action@v3
472+
with:
473+
driver: docker-container
474+
- name: setup python environment
475+
uses: actions/setup-python@v5
476+
with:
477+
python-version: ${{ matrix.python }}
478+
- name: install uv
479+
uses: astral-sh/setup-uv@v3
480+
with:
481+
version: "0.4.x"
482+
enable-cache: false
483+
cache-dependency-glob: "**/web/server/requirements/ci.txt"
484+
- name: show system version
485+
run: ./ci/helpers/show_system_versions.bash
486+
- name: install webserver
487+
run: ./ci/github/unit-testing/webserver.bash install
488+
- name: test
489+
run: ./ci/github/unit-testing/webserver.bash test_with_db 04
490+
- uses: codecov/[email protected]
491+
env:
492+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
493+
with:
494+
flags: unittests #optional
495+
- name: Upload test results to Codecov
496+
if: ${{ !cancelled() }}
497+
uses: codecov/test-results-action@v1
498+
with:
499+
token: ${{ secrets.CODECOV_TOKEN }}
500+
456501
unit-test-storage:
457502
needs: changes
458503
if: ${{ needs.changes.outputs.storage == 'true' || github.event_name == 'push' }}
@@ -1920,6 +1965,7 @@ jobs:
19201965
unit-test-webserver-01,
19211966
unit-test-webserver-02,
19221967
unit-test-webserver-03,
1968+
unit-test-webserver-04,
19231969
]
19241970
runs-on: ubuntu-latest
19251971
steps:

api/specs/web-server/_groups.py

Lines changed: 66 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,21 @@
88

99
from fastapi import APIRouter, Depends, status
1010
from models_library.api_schemas_webserver.groups import (
11-
AllUsersGroups,
11+
GroupCreate,
12+
GroupGet,
13+
GroupUpdate,
1214
GroupUserGet,
13-
UsersGroup,
15+
MyGroupsGet,
1416
)
1517
from models_library.generics import Envelope
16-
from models_library.users import GroupID, UserID
1718
from simcore_service_webserver._meta import API_VTAG
18-
from simcore_service_webserver.groups._handlers import _ClassifiersQuery
19+
from simcore_service_webserver.groups._handlers import (
20+
GroupUserAdd,
21+
GroupUserUpdate,
22+
_ClassifiersQuery,
23+
_GroupPathParams,
24+
_GroupUserPathParams,
25+
)
1926
from simcore_service_webserver.scicrunch.models import ResearchResource, ResourceHit
2027

2128
router = APIRouter(
@@ -28,106 +35,130 @@
2835

2936
@router.get(
3037
"/groups",
31-
response_model=Envelope[AllUsersGroups],
38+
response_model=Envelope[MyGroupsGet],
3239
)
3340
async def list_groups():
34-
...
41+
"""
42+
List all groups (organizations, primary, everyone and products) I belong to
43+
"""
3544

3645

3746
@router.post(
3847
"/groups",
39-
response_model=Envelope[UsersGroup],
48+
response_model=Envelope[GroupGet],
4049
status_code=status.HTTP_201_CREATED,
4150
)
42-
async def create_group():
43-
...
51+
async def create_group(_b: GroupCreate):
52+
"""
53+
Creates an organization group
54+
"""
4455

4556

4657
@router.get(
4758
"/groups/{gid}",
48-
response_model=Envelope[UsersGroup],
59+
response_model=Envelope[GroupGet],
4960
)
50-
async def get_group(gid: GroupID):
51-
...
61+
async def get_group(_p: Annotated[_GroupPathParams, Depends()]):
62+
"""
63+
Get an organization group
64+
"""
5265

5366

5467
@router.patch(
5568
"/groups/{gid}",
56-
response_model=Envelope[UsersGroup],
69+
response_model=Envelope[GroupGet],
5770
)
58-
async def update_group(gid: GroupID, _update: UsersGroup):
59-
...
71+
async def update_group(
72+
_p: Annotated[_GroupPathParams, Depends()],
73+
_b: GroupUpdate,
74+
):
75+
"""
76+
Updates organization groups
77+
"""
6078

6179

6280
@router.delete(
6381
"/groups/{gid}",
6482
status_code=status.HTTP_204_NO_CONTENT,
6583
)
66-
async def delete_group(gid: GroupID):
67-
...
84+
async def delete_group(_p: Annotated[_GroupPathParams, Depends()]):
85+
"""
86+
Deletes organization groups
87+
"""
6888

6989

7090
@router.get(
7191
"/groups/{gid}/users",
7292
response_model=Envelope[list[GroupUserGet]],
7393
)
74-
async def get_group_users(gid: GroupID):
75-
...
94+
async def get_all_group_users(_p: Annotated[_GroupPathParams, Depends()]):
95+
"""
96+
Gets users in organization groups
97+
"""
7698

7799

78100
@router.post(
79101
"/groups/{gid}/users",
80102
status_code=status.HTTP_204_NO_CONTENT,
81103
)
82104
async def add_group_user(
83-
gid: GroupID,
84-
_new: GroupUserGet,
105+
_p: Annotated[_GroupPathParams, Depends()],
106+
_b: GroupUserAdd,
85107
):
86-
...
108+
"""
109+
Adds a user to an organization group
110+
"""
87111

88112

89113
@router.get(
90114
"/groups/{gid}/users/{uid}",
91115
response_model=Envelope[GroupUserGet],
92116
)
93117
async def get_group_user(
94-
gid: GroupID,
95-
uid: UserID,
118+
_p: Annotated[_GroupUserPathParams, Depends()],
96119
):
97-
...
120+
"""
121+
Gets specific user in an organization group
122+
"""
98123

99124

100125
@router.patch(
101126
"/groups/{gid}/users/{uid}",
102127
response_model=Envelope[GroupUserGet],
103128
)
104129
async def update_group_user(
105-
gid: GroupID,
106-
uid: UserID,
107-
_update: GroupUserGet,
130+
_p: Annotated[_GroupUserPathParams, Depends()],
131+
_b: GroupUserUpdate,
108132
):
109-
# FIXME: update type
110-
...
133+
"""
134+
Updates user (access-rights) to an organization group
135+
"""
111136

112137

113138
@router.delete(
114139
"/groups/{gid}/users/{uid}",
115140
status_code=status.HTTP_204_NO_CONTENT,
116141
)
117142
async def delete_group_user(
118-
gid: GroupID,
119-
uid: UserID,
143+
_p: Annotated[_GroupUserPathParams, Depends()],
120144
):
121-
...
145+
"""
146+
Removes a user from an organization group
147+
"""
148+
149+
150+
#
151+
# Classifiers
152+
#
122153

123154

124155
@router.get(
125156
"/groups/{gid}/classifiers",
126157
response_model=Envelope[dict[str, Any]],
127158
)
128159
async def get_group_classifiers(
129-
gid: GroupID,
130-
_query: Annotated[_ClassifiersQuery, Depends()],
160+
_p: Annotated[_GroupPathParams, Depends()],
161+
_q: Annotated[_ClassifiersQuery, Depends()],
131162
):
132163
...
133164

packages/aws-library/requirements/_base.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ aiocache
1212
arrow
1313
pydantic[email]
1414
types-aiobotocore[ec2,s3,ssm]
15+
opentelemetry-instrumentation-botocore
1516
sh

packages/aws-library/requirements/_base.txt

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ arrow==1.3.0
5252
# -r requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
5353
# -r requirements/../../../packages/service-library/requirements/_base.in
5454
# -r requirements/_base.in
55+
async-timeout==4.0.3
56+
# via redis
5557
attrs==24.2.0
5658
# via
5759
# aiohttp
@@ -141,7 +143,10 @@ opentelemetry-api==1.27.0
141143
# opentelemetry-exporter-otlp-proto-grpc
142144
# opentelemetry-exporter-otlp-proto-http
143145
# opentelemetry-instrumentation
146+
# opentelemetry-instrumentation-botocore
147+
# opentelemetry-instrumentation-redis
144148
# opentelemetry-instrumentation-requests
149+
# opentelemetry-propagator-aws-xray
145150
# opentelemetry-sdk
146151
# opentelemetry-semantic-conventions
147152
opentelemetry-exporter-otlp==1.27.0
@@ -155,9 +160,18 @@ opentelemetry-exporter-otlp-proto-grpc==1.27.0
155160
opentelemetry-exporter-otlp-proto-http==1.27.0
156161
# via opentelemetry-exporter-otlp
157162
opentelemetry-instrumentation==0.48b0
158-
# via opentelemetry-instrumentation-requests
163+
# via
164+
# opentelemetry-instrumentation-botocore
165+
# opentelemetry-instrumentation-redis
166+
# opentelemetry-instrumentation-requests
167+
opentelemetry-instrumentation-botocore==0.48b0
168+
# via -r requirements/_base.in
169+
opentelemetry-instrumentation-redis==0.48b0
170+
# via -r requirements/../../../packages/service-library/requirements/_base.in
159171
opentelemetry-instrumentation-requests==0.48b0
160172
# via -r requirements/../../../packages/service-library/requirements/_base.in
173+
opentelemetry-propagator-aws-xray==1.0.2
174+
# via opentelemetry-instrumentation-botocore
161175
opentelemetry-proto==1.27.0
162176
# via
163177
# opentelemetry-exporter-otlp-proto-common
@@ -170,6 +184,8 @@ opentelemetry-sdk==1.27.0
170184
# opentelemetry-exporter-otlp-proto-http
171185
opentelemetry-semantic-conventions==0.48b0
172186
# via
187+
# opentelemetry-instrumentation-botocore
188+
# opentelemetry-instrumentation-redis
173189
# opentelemetry-instrumentation-requests
174190
# opentelemetry-sdk
175191
opentelemetry-util-http==0.48b0
@@ -376,6 +392,7 @@ wrapt==1.16.0
376392
# aiobotocore
377393
# deprecated
378394
# opentelemetry-instrumentation
395+
# opentelemetry-instrumentation-redis
379396
yarl==1.12.1
380397
# via
381398
# aio-pika

0 commit comments

Comments
 (0)