Skip to content

Commit afc1eb0

Browse files
authored
🐛 Fixes replace operation in projects and uninitialized variable in health-check (#4469)
1 parent e3b40b4 commit afc1eb0

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

packages/service-library/src/servicelib/aiohttp/incidents.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Any, Callable, Generic, List, Optional, TypeVar
1+
from typing import Any, Callable, Generic, TypeVar
22

33
import attr
44

@@ -20,9 +20,9 @@ class LimitedOrderedStack(Generic[ItemT]):
2020
"""
2121

2222
max_size: int = 100
23-
order_by: Optional[Callable[[ItemT], Any]] = None
23+
order_by: Callable[[ItemT], Any] | None = None
2424

25-
_items: List[ItemT] = attr.ib(init=False, default=attr.Factory(list))
25+
_items: list[ItemT] = attr.ib(init=False, default=attr.Factory(list))
2626
_hits: int = attr.ib(init=False, default=0)
2727

2828
def __len__(self) -> int:
@@ -38,13 +38,13 @@ def hits(self) -> int:
3838
return self._hits
3939

4040
@property
41-
def max_item(self) -> Optional[ItemT]:
41+
def max_item(self) -> ItemT | None:
4242
if self._items:
4343
return self._items[0]
4444
return None
4545

4646
@property
47-
def min_item(self) -> Optional[ItemT]:
47+
def min_item(self) -> ItemT | None:
4848
if self._items:
4949
return self._items[-1]
5050
return None

services/web/server/src/simcore_service_webserver/diagnostics/_healthcheck.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@
2525

2626
class IncidentsRegistry(LimitedOrderedStack[SlowCallback]):
2727
def max_delay(self) -> float:
28-
delay: float = self.max_item.delay_secs or 0.0
28+
delay: float = 0.0
29+
if self.max_item:
30+
delay = self.max_item.delay_secs
2931
return delay
3032

3133

services/web/server/src/simcore_service_webserver/projects/_handlers_crud.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,8 +442,10 @@ async def replace_project(request: web.Request):
442442

443443
try:
444444
new_project = await request.json()
445+
# NOTE: this is a temporary fix until proper Model is introduced in ProjectReplace
445446
# Prune state field (just in case)
446447
new_project.pop("state", None)
448+
new_project.pop("permalink", None)
447449

448450
except json.JSONDecodeError as exc:
449451
raise web.HTTPBadRequest(reason="Invalid request body") from exc

0 commit comments

Comments
 (0)