Skip to content

Commit f57b3a9

Browse files
GitHKAndrei Neagu
and
Andrei Neagu
authored
🐛 Fixes issue with parsing logs polluting sidecar logs (#6442)
Co-authored-by: Andrei Neagu <[email protected]>
1 parent 2889c20 commit f57b3a9

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed

packages/simcore-sdk/src/simcore_sdk/node_ports_common/r_clone_utils.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class _RCloneSyncTransferringMessage(_RCloneSyncMessageBase):
4444
_RCloneSyncTransferCompletedMessage,
4545
_RCloneSyncUpdatedMessage,
4646
_RCloneSyncTransferringMessage,
47+
_RCloneSyncMessageBase,
4748
]
4849

4950

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import json
2+
from unittest.mock import AsyncMock
3+
4+
import pytest
5+
from pydantic import parse_raw_as
6+
from simcore_sdk.node_ports_common.r_clone_utils import (
7+
SyncProgressLogParser,
8+
_RCloneSyncMessageBase,
9+
_RCloneSyncMessages,
10+
_RCloneSyncTransferCompletedMessage,
11+
_RCloneSyncTransferringMessage,
12+
_RCloneSyncUpdatedMessage,
13+
)
14+
15+
16+
@pytest.mark.parametrize(
17+
"log_message,expected",
18+
[
19+
(
20+
'{"level":"info","msg":"There was nothing to transfer","source":"sync/sync.go:954","time":"2024-09-25T10:18:04.904537+00:00"}',
21+
_RCloneSyncMessageBase,
22+
),
23+
(
24+
'{"level":"info","msg":"","object":".hidden_do_not_remove","objectType":"*s3.Object","source":"operations/operations.go:277","time":"2024-09-24T07:11:22.147117+00:00"}',
25+
_RCloneSyncUpdatedMessage,
26+
),
27+
(
28+
'{"level":"info","msg":"Copied (new)","object":"README.ipynb","objectType":"*s3.Object","size":5123,"source":"operations/copy.go:360","time":"2024-04-23T14:05:10.408277+00:00"}',
29+
_RCloneSyncTransferCompletedMessage,
30+
),
31+
(
32+
json.dumps(
33+
{
34+
"level": "",
35+
"msg": "",
36+
"source": "",
37+
"time": "2024-09-24T07:11:22.147117+00:00",
38+
"object": "str",
39+
}
40+
),
41+
_RCloneSyncUpdatedMessage,
42+
),
43+
(
44+
json.dumps(
45+
{
46+
"level": "",
47+
"msg": "",
48+
"source": "",
49+
"time": "2024-09-24T07:11:22.147117+00:00",
50+
"object": "str",
51+
"size": 1,
52+
}
53+
),
54+
_RCloneSyncTransferCompletedMessage,
55+
),
56+
(
57+
json.dumps(
58+
{
59+
"level": "",
60+
"msg": "",
61+
"source": "",
62+
"time": "2024-09-24T07:11:22.147117+00:00",
63+
"stats": {"bytes": 1, "totalBytes": 1},
64+
}
65+
),
66+
_RCloneSyncTransferringMessage,
67+
),
68+
],
69+
)
70+
async def test_rclone_stbc_message_parsing_regression(log_message: str, expected: type):
71+
parsed_log = parse_raw_as(_RCloneSyncMessages, log_message) # type: ignore[arg-type]
72+
assert isinstance(parsed_log, expected)
73+
74+
progress_log_parser = SyncProgressLogParser(AsyncMock())
75+
await progress_log_parser(log_message)

0 commit comments

Comments
 (0)