Skip to content

Commit 77d8545

Browse files
authored
Merge pull request #317 from ligangty/radas-umb
RADAS: fix radas response format
2 parents 19a9b5c + 8f47855 commit 77d8545

File tree

2 files changed

+51
-22
lines changed

2 files changed

+51
-22
lines changed

charon/pkgs/radas_sign.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,15 @@ def _process_message(self, msg: Any) -> None:
130130
msg: The message body received
131131
"""
132132
msg_dict = json.loads(msg)
133-
msg_request_id = msg_dict.get("request_id")
133+
radas_response = msg_dict.get("msg")
134+
if not radas_response:
135+
self.log.info(
136+
"Message %s is not valid, ignoring",
137+
msg_dict
138+
)
139+
return
140+
141+
msg_request_id = radas_response.get("request_id")
134142
if msg_request_id != self.request_id:
135143
self.log.info(
136144
"Message request_id %s does not match the request_id %s from sender, ignoring",
@@ -143,10 +151,10 @@ def _process_message(self, msg: Any) -> None:
143151
self.log.info(
144152
"Start to process the sign event message, request_id %s is matched", msg_request_id
145153
)
146-
self.sign_result_status = msg_dict.get("signing_status")
147-
self.sign_result_errors = msg_dict.get("errors", [])
154+
self.sign_result_status = radas_response.get("signing_status")
155+
self.sign_result_errors = radas_response.get("errors", [])
148156
if self.sign_result_status == "success":
149-
result_reference_url = msg_dict.get("result_reference")
157+
result_reference_url = radas_response.get("result_reference")
150158
if not result_reference_url:
151159
self.log.warning("Not found result_reference in message,ignore.")
152160
return

tests/test_radas_sign_receiver.py

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,19 @@ def test_radas_receiver(self):
6060

6161
# test on_message: unmatched case
6262
test_ummatch_result = {
63-
"request_id": "test-request-id-no-match",
64-
"file_reference": "quay.io/example/test-repo",
65-
"result_reference": "quay.io/example-sign/sign-repo",
66-
"sig_keyname": "testkey",
67-
"signing_status": "success",
68-
"errors": []
63+
"i": "1",
64+
"msg_id": "test-id",
65+
"timestamp": time.time(),
66+
"topic": "test-topic",
67+
"username": "test-user",
68+
"msg": {
69+
"request_id": "test-request-id-no-match",
70+
"file_reference": "quay.io/example/test-repo",
71+
"result_reference": "quay.io/example-sign/sign-repo",
72+
"sig_keyname": "testkey",
73+
"signing_status": "success",
74+
"errors": []
75+
}
6976
}
7077
event.message.body = json.dumps(test_ummatch_result)
7178
r_receiver.on_message(event)
@@ -79,12 +86,19 @@ def test_radas_receiver(self):
7986
# test on_message: matched case with failed status
8087
self.reset_receiver(r_receiver)
8188
test_failed_result = {
82-
"request_id": "test-request-id",
83-
"file_reference": "quay.io/example/test-repo",
84-
"result_reference": "quay.io/example-sign/sign-repo",
85-
"sig_keyname": "testkey",
86-
"signing_status": "failed",
87-
"errors": ["error1", "error2"]
89+
"i": "1",
90+
"msg_id": "test-id",
91+
"timestamp": time.time(),
92+
"topic": "test-topic",
93+
"username": "test-user",
94+
"msg": {
95+
"request_id": "test-request-id",
96+
"file_reference": "quay.io/example/test-repo",
97+
"result_reference": "quay.io/example-sign/sign-repo",
98+
"sig_keyname": "testkey",
99+
"signing_status": "failed",
100+
"errors": ["error1", "error2"]
101+
}
88102
}
89103
event.message.body = json.dumps(test_failed_result)
90104
r_receiver.on_message(event)
@@ -98,12 +112,19 @@ def test_radas_receiver(self):
98112
# test on_message: matched case with success status
99113
self.reset_receiver(r_receiver)
100114
test_success_result = {
101-
"request_id": "test-request-id",
102-
"file_reference": "quay.io/example/test-repo",
103-
"result_reference": "quay.io/example-sign/sign-repo",
104-
"sig_keyname": "testkey",
105-
"signing_status": "success",
106-
"errors": []
115+
"i": "1",
116+
"msg_id": "test-id",
117+
"timestamp": time.time(),
118+
"topic": "test-topic",
119+
"username": "test-user",
120+
"msg": {
121+
"request_id": "test-request-id",
122+
"file_reference": "quay.io/example/test-repo",
123+
"result_reference": "quay.io/example-sign/sign-repo",
124+
"sig_keyname": "testkey",
125+
"signing_status": "success",
126+
"errors": []
127+
}
107128
}
108129
event.message.body = json.dumps(test_success_result)
109130
r_receiver.on_message(event)

0 commit comments

Comments
 (0)