Skip to content

Commit 29aeace

Browse files
committed
ruffing
1 parent 89086e4 commit 29aeace

File tree

5 files changed

+24
-19
lines changed

5 files changed

+24
-19
lines changed

services/web/server/src/simcore_service_webserver/resource_manager/registry.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,11 @@ async def find_keys(self, resource: tuple[str, str]) -> list[UserSession]:
117117
== await handle_redis_returns_union_types(self.client.hget(hash_key, field))
118118
]
119119

120-
async def set_key_alive(self, key: UserSession, timeout: int) -> None:
120+
async def set_key_alive(self, key: UserSession, *, expiration_time: int) -> None:
121121
# setting the timeout to always expire, timeout > 0
122-
timeout = int(max(1, timeout))
122+
expiration_time = int(max(1, expiration_time))
123123
hash_key = f"{key.to_redis_hash_key()}:{ALIVE_SUFFIX}"
124-
await self.client.set(hash_key, 1, ex=timeout)
124+
await self.client.set(hash_key, 1, ex=expiration_time)
125125

126126
async def is_key_alive(self, key: UserSession) -> bool:
127127
hash_key = f"{key.to_redis_hash_key()}:{ALIVE_SUFFIX}"

services/web/server/src/simcore_service_webserver/resource_manager/user_sessions.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,9 @@ async def set_socket_id(self, socket_id: str) -> None:
8383
# NOTE: hearthbeat is not emulated in tests, make sure that with very small GC intervals
8484
# the resources do not expire; this value is usually in the order of minutes
8585
timeout = max(3, _get_service_deletion_timeout(self.app))
86-
await self._registry.set_key_alive(self._resource_key(), timeout)
86+
await self._registry.set_key_alive(
87+
self._resource_key(), expiration_time=timeout
88+
)
8789

8890
async def get_socket_id(self) -> str | None:
8991
_logger.debug(
@@ -100,7 +102,7 @@ async def user_pressed_disconnect(self) -> None:
100102
"""When the user disconnects expire as soon as possible the alive key
101103
to ensure garbage collection will trigger in the next 2 cycles."""
102104

103-
await self._registry.set_key_alive(self._resource_key(), 1)
105+
await self._registry.set_key_alive(self._resource_key(), expiration_time=1)
104106

105107
async def remove_socket_id(self) -> None:
106108
_logger.debug(
@@ -112,14 +114,16 @@ async def remove_socket_id(self) -> None:
112114

113115
await self._registry.remove_resource(self._resource_key(), _SOCKET_ID_FIELDNAME)
114116
await self._registry.set_key_alive(
115-
self._resource_key(), _get_service_deletion_timeout(self.app)
117+
self._resource_key(),
118+
expiration_time=_get_service_deletion_timeout(self.app),
116119
)
117120

118121
async def set_heartbeat(self) -> None:
119122
"""Extends TTL to avoid expiration of all resources under this session"""
120123

121124
await self._registry.set_key_alive(
122-
self._resource_key(), _get_service_deletion_timeout(self.app)
125+
self._resource_key(),
126+
expiration_time=_get_service_deletion_timeout(self.app),
123127
)
124128

125129
async def find_socket_ids(self) -> list[str]:

services/web/server/tests/integration/01/test_garbage_collection.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ class SioConnectionData(NamedTuple):
359359

360360
async def connect_to_socketio(
361361
client: TestClient,
362-
user,
362+
user: UserInfoDict,
363363
socketio_client_factory: Callable[
364364
[str | None, TestClient | None], Awaitable[tuple[socketio.AsyncClient, str]]
365365
],
@@ -369,10 +369,9 @@ async def connect_to_socketio(
369369
socket_registry = get_registry(client.app)
370370
cur_client_session_id = f"{uuid4()}"
371371
sio, *_ = await socketio_client_factory(cur_client_session_id, client)
372-
resource_key: UserSession = {
373-
"user_id": str(user["id"]),
374-
"client_session_id": cur_client_session_id,
375-
}
372+
resource_key = UserSession(
373+
user_id=user["id"], client_session_id=cur_client_session_id
374+
)
376375
sid = sio.get_sid()
377376
assert sid
378377
assert await socket_registry.find_keys(("socket_id", sid)) == [resource_key]

services/web/server/tests/unit/with_dbs/04/garbage_collector/test_resource_manager.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ async def test_websocket_resource_management(
9999
sio, cur_client_session_id = await create_socketio_connection(None, client)
100100
sid = sio.get_sid()
101101
resource_key = UserSession(
102-
user_id=f"{logged_user['id']}", client_session_id=cur_client_session_id
102+
user_id=logged_user["id"], client_session_id=cur_client_session_id
103103
)
104104

105105
assert await socket_registry.find_keys(("socket_id", sio.get_sid())) == [
@@ -150,7 +150,7 @@ async def test_websocket_multiple_connections(
150150
for socket_count in range(1, NUMBER_OF_SOCKETS + 1):
151151
sio, cur_client_session_id = await create_socketio_connection(None, client)
152152
resource_key = UserSession(
153-
user_id=f"{logged_user['id']}", client_session_id=cur_client_session_id
153+
user_id=logged_user["id"], client_session_id=cur_client_session_id
154154
)
155155
assert await socket_registry.find_keys(("socket_id", sio.get_sid())) == [
156156
resource_key
@@ -161,7 +161,7 @@ async def test_websocket_multiple_connections(
161161
assert (
162162
len(
163163
await socket_registry.find_resources(
164-
{"user_id": str(logged_user["id"]), "client_session_id": "*"},
164+
UserSession(user_id=logged_user["id"], client_session_id="*"),
165165
"socket_id",
166166
)
167167
)

services/web/server/tests/unit/with_dbs/04/garbage_collector/test_resource_manager_user_sessions.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,12 @@ async def test_redis_registry(
183183
STILL_ALIVE_KEY_TIMEOUT = DEAD_KEY_TIMEOUT + 1
184184

185185
# create a key which will be alive when testing
186-
await redis_registry.set_key_alive(user_session, STILL_ALIVE_KEY_TIMEOUT)
186+
await redis_registry.set_key_alive(
187+
user_session, expiration_time=STILL_ALIVE_KEY_TIMEOUT
188+
)
187189
assert await redis_registry.is_key_alive(user_session) is True
188190
# create soon to be dead key
189-
await redis_registry.set_key_alive(user_session2, DEAD_KEY_TIMEOUT)
191+
await redis_registry.set_key_alive(user_session2, expiration_time=DEAD_KEY_TIMEOUT)
190192
alive_keys, dead_keys = await redis_registry.get_all_resource_keys()
191193
assert not dead_keys
192194
assert all(x in alive_keys for x in [user_session, user_session2])
@@ -225,8 +227,8 @@ def get_random_int():
225227
await redis_registry.set_resource(first_key, resource)
226228
await redis_registry.set_resource(second_key, resource)
227229

228-
await redis_registry.set_key_alive(first_key, 0)
229-
await redis_registry.set_key_alive(second_key, -3000)
230+
await redis_registry.set_key_alive(first_key, expiration_time=0)
231+
await redis_registry.set_key_alive(second_key, expiration_time=-3000)
230232

231233
async for attempt in AsyncRetrying(
232234
wait=wait_fixed(0.1),

0 commit comments

Comments
 (0)