Skip to content

Commit 7be787f

Browse files
authored
✨ Deletion of trashed projects/folders upon expiration of retention time (#7246)
1 parent ba9624a commit 7be787f

File tree

27 files changed

+1130
-280
lines changed

27 files changed

+1130
-280
lines changed

packages/common-library/src/common_library/exclude.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ def is_unset(v: Any) -> bool:
1212
return isinstance(v, UnSet)
1313

1414

15+
def is_set(v: Any) -> bool:
16+
return not isinstance(v, UnSet)
17+
18+
1519
def as_dict_exclude_unset(**params) -> dict[str, Any]:
1620
return {k: v for k, v in params.items() if not isinstance(v, UnSet)}
1721

packages/models-library/src/models_library/licenses.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,18 @@ class LicensedResourceType(StrAutoEnum):
2626
VIP_MODEL = auto()
2727

2828

29-
VIP_FEATURES_EXAMPLE = {
30-
"name": "Duke",
31-
"version": "V2.0",
32-
"sex": "Mas bien poco",
29+
_VIP_FEATURES_EXAMPLE = {
30+
# NOTE: this view is how it would be after parsed and validated
3331
"age": "34 years",
34-
"weight": "70.2 Kg",
35-
"height": "1.77 m",
3632
"date": "2015-03-01",
3733
"ethnicity": "Caucasian",
3834
"functionality": "Static",
35+
"height": "1.77 m",
36+
"name": "Duke",
37+
"sex": "Male",
38+
"version": "V2.0",
39+
"weight": "70.2 Kg",
40+
# other
3941
"additional_field": "allowed",
4042
}
4143

@@ -58,7 +60,7 @@ class FeaturesDict(TypedDict):
5860
"id": 1,
5961
"description": "A detailed description of the VIP model",
6062
"thumbnail": "https://example.com/thumbnail.jpg",
61-
"features": VIP_FEATURES_EXAMPLE,
63+
"features": _VIP_FEATURES_EXAMPLE,
6264
"doi": "10.1000/xyz123",
6365
"license_key": "ABC123XYZ",
6466
"license_version": "1.0",

packages/pytest-simcore/src/pytest_simcore/helpers/assert_checks.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@ async def assert_status(
2929
data, error = unwrap_envelope(json_response)
3030

3131
assert response.status == expected_status_code, (
32-
f"received {response.status}: ({data},{error})"
33-
f", expected {get_code_display_name(expected_status_code)} : {expected_msg or ''}"
32+
f"Expected: {get_code_display_name(expected_status_code)} : {expected_msg or ''}"
33+
f"Got: {response.status}:\n"
34+
f" - data :{pformat(data)}\n"
35+
f" - error:{pformat(error)}\n)"
3436
)
3537

3638
if is_error(expected_status_code):

services/docker-compose.yml

Lines changed: 37 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -971,16 +971,15 @@ services:
971971
init: true
972972
hostname: "gc-{{.Node.Hostname}}-{{.Task.Slot}}" # the hostname is used in conjonction with other services and must be unique see https://github.com/ITISFoundation/osparc-simcore/pull/5931
973973
environment:
974-
WEBSERVER_LOGLEVEL: ${WB_GC_LOGLEVEL}
975974

976-
WEBSERVER_HOST: ${WEBSERVER_HOST}
977-
WEBSERVER_PORT: ${WEBSERVER_PORT}
975+
# WEBSERVER_DIRECTOR_V2
976+
DIRECTOR_V2_HOST: ${DIRECTOR_V2_HOST}
977+
DIRECTOR_V2_PORT: ${DIRECTOR_V2_PORT}
978978

979-
# WEBSERVER_RESOURCE_USAGE_TRACKER
980-
RESOURCE_USAGE_TRACKER_HOST: ${RESOURCE_USAGE_TRACKER_HOST}
981-
RESOURCE_USAGE_TRACKER_PORT: ${RESOURCE_USAGE_TRACKER_EXTERNAL_PORT}
979+
GUNICORN_CMD_ARGS: ${WEBSERVER_GUNICORN_CMD_ARGS}
982980

983-
REST_SWAGGER_API_DOC_ENABLED: ${WB_GC_REST_SWAGGER_API_DOC_ENABLED}
981+
LOG_FILTER_MAPPING : ${LOG_FILTER_MAPPING}
982+
LOG_FORMAT_LOCAL_DEV_ENABLED: ${LOG_FORMAT_LOCAL_DEV_ENABLED}
984983

985984
# WEBSERVER_DB
986985
POSTGRES_DB: ${POSTGRES_DB}
@@ -990,47 +989,61 @@ services:
990989
POSTGRES_PORT: ${POSTGRES_PORT}
991990
POSTGRES_USER: ${POSTGRES_USER}
992991

993-
DIRECTOR_V2_HOST: ${DIRECTOR_V2_HOST}
994-
DIRECTOR_V2_PORT: ${DIRECTOR_V2_PORT}
995-
996-
GUNICORN_CMD_ARGS: ${WEBSERVER_GUNICORN_CMD_ARGS}
997-
998-
LOG_FORMAT_LOCAL_DEV_ENABLED: ${LOG_FORMAT_LOCAL_DEV_ENABLED}
999-
LOG_FILTER_MAPPING : ${LOG_FILTER_MAPPING}
1000-
1001-
STORAGE_HOST: ${STORAGE_HOST}
1002-
STORAGE_PORT: ${STORAGE_PORT}
992+
# WEBSERVER_RABBITMQ
993+
RABBIT_HOST: ${RABBIT_HOST}
994+
RABBIT_PASSWORD: ${RABBIT_PASSWORD}
995+
RABBIT_PORT: ${RABBIT_PORT}
996+
RABBIT_SECURE: ${RABBIT_SECURE}
997+
RABBIT_USER: ${RABBIT_USER}
1003998

999+
# WEBSERVER_REDIS
10041000
REDIS_HOST: ${REDIS_HOST}
1001+
REDIS_PASSWORD: ${REDIS_PASSWORD}
10051002
REDIS_PORT: ${REDIS_PORT}
10061003
REDIS_SECURE: ${REDIS_SECURE}
10071004
REDIS_USER: ${REDIS_USER}
1008-
REDIS_PASSWORD: ${REDIS_PASSWORD}
1009-
1010-
SWARM_STACK_NAME: ${SWARM_STACK_NAME}
10111005

1012-
WEBSERVER_DB_LISTENER: ${WB_GC_DB_LISTENER}
1006+
# WEBSERVER_RESOURCE_MANAGER
1007+
RESOURCE_MANAGER_RESOURCE_TTL_S: ${WB_GC_RESOURCE_MANAGER_RESOURCE_TTL_S}
10131008

1014-
WEBSERVER_GARBAGE_COLLECTOR: ${WB_GC_GARBAGE_COLLECTOR}
1009+
# WEBSERVER_RESOURCE_USAGE_TRACKER
1010+
RESOURCE_USAGE_TRACKER_HOST: ${RESOURCE_USAGE_TRACKER_HOST}
1011+
RESOURCE_USAGE_TRACKER_PORT: ${RESOURCE_USAGE_TRACKER_EXTERNAL_PORT}
10151012

1016-
RESOURCE_MANAGER_RESOURCE_TTL_S: ${WB_GC_RESOURCE_MANAGER_RESOURCE_TTL_S}
1013+
REST_SWAGGER_API_DOC_ENABLED: ${WB_GC_REST_SWAGGER_API_DOC_ENABLED}
10171014

1015+
# WEBSERVER_SESSION
10181016
SESSION_SECRET_KEY: ${WEBSERVER_SESSION_SECRET_KEY}
1017+
1018+
# WEBSERVER_STORAGE
1019+
STORAGE_HOST: ${STORAGE_HOST}
1020+
STORAGE_PORT: ${STORAGE_PORT}
1021+
1022+
SWARM_STACK_NAME: ${SWARM_STACK_NAME}
1023+
1024+
# WEBSERVER_TRASH
1025+
TRASH_RETENTION_DAYS: ${TRASH_RETENTION_DAYS}
1026+
10191027
WEBSERVER_ACTIVITY: ${WB_GC_ACTIVITY}
10201028
WEBSERVER_ANNOUNCEMENTS: ${WB_GC_ANNOUNCEMENTS}
10211029
WEBSERVER_CATALOG: ${WB_GC_CATALOG}
10221030
WEBSERVER_CLUSTERS: ${WB_GC_CLUSTERS}
1031+
WEBSERVER_DB_LISTENER: ${WB_GC_DB_LISTENER}
10231032
WEBSERVER_DIAGNOSTICS: ${WB_GC_DIAGNOSTICS}
10241033
WEBSERVER_EMAIL: ${WB_GC_EMAIL}
10251034
WEBSERVER_EXPORTER: ${WB_GC_EXPORTER}
10261035
WEBSERVER_FOLDERS: ${WB_GC_FOLDERS}
10271036
WEBSERVER_FRONTEND: ${WB_GC_FRONTEND}
1037+
WEBSERVER_GARBAGE_COLLECTOR: ${WB_GC_GARBAGE_COLLECTOR}
10281038
WEBSERVER_GROUPS: ${WB_GC_GROUPS}
1039+
WEBSERVER_HOST: ${WEBSERVER_HOST}
10291040
WEBSERVER_INVITATIONS: ${WB_GC_INVITATIONS}
10301041
WEBSERVER_LICENSES: null
10311042
WEBSERVER_LOGIN: ${WB_GC_LOGIN}
1043+
WEBSERVER_LOGLEVEL: ${WB_GC_LOGLEVEL}
10321044
WEBSERVER_NOTIFICATIONS: ${WB_GC_NOTIFICATIONS}
10331045
WEBSERVER_PAYMENTS: ${WB_GC_PAYMENTS}
1046+
WEBSERVER_PORT: ${WEBSERVER_PORT}
10341047
WEBSERVER_PRODUCTS: ${WB_GC_PRODUCTS}
10351048
WEBSERVER_PROJECTS: ${WB_GC_PROJECTS}
10361049
WEBSERVER_PUBLICATIONS: ${WB_GC_PUBLICATIONS}
@@ -1043,12 +1056,7 @@ services:
10431056
WEBSERVER_USERS: ${WB_GC_USERS}
10441057
WEBSERVER_WALLETS: ${WB_GC_WALLETS}
10451058

1046-
# WEBSERVER_RABBITMQ
1047-
RABBIT_HOST: ${RABBIT_HOST}
1048-
RABBIT_PASSWORD: ${RABBIT_PASSWORD}
1049-
RABBIT_PORT: ${RABBIT_PORT}
1050-
RABBIT_SECURE: ${RABBIT_SECURE}
1051-
RABBIT_USER: ${RABBIT_USER}
1059+
10521060
networks:
10531061
- default
10541062
- interactive_services_subnet

0 commit comments

Comments
 (0)