From 8f4785599d93b25eb7c674802e5a7fafd8d997fd Mon Sep 17 00:00:00 2001 From: Gang Li Date: Fri, 13 Jun 2025 08:15:19 +0800 Subject: [PATCH] RADAS: fix radas response format --- charon/pkgs/radas_sign.py | 16 ++++++--- tests/test_radas_sign_receiver.py | 57 +++++++++++++++++++++---------- 2 files changed, 51 insertions(+), 22 deletions(-) diff --git a/charon/pkgs/radas_sign.py b/charon/pkgs/radas_sign.py index 3ca817cd..bf63ff64 100644 --- a/charon/pkgs/radas_sign.py +++ b/charon/pkgs/radas_sign.py @@ -130,7 +130,15 @@ def _process_message(self, msg: Any) -> None: msg: The message body received """ msg_dict = json.loads(msg) - msg_request_id = msg_dict.get("request_id") + radas_response = msg_dict.get("msg") + if not radas_response: + self.log.info( + "Message %s is not valid, ignoring", + msg_dict + ) + return + + msg_request_id = radas_response.get("request_id") if msg_request_id != self.request_id: self.log.info( "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: self.log.info( "Start to process the sign event message, request_id %s is matched", msg_request_id ) - self.sign_result_status = msg_dict.get("signing_status") - self.sign_result_errors = msg_dict.get("errors", []) + self.sign_result_status = radas_response.get("signing_status") + self.sign_result_errors = radas_response.get("errors", []) if self.sign_result_status == "success": - result_reference_url = msg_dict.get("result_reference") + result_reference_url = radas_response.get("result_reference") if not result_reference_url: self.log.warning("Not found result_reference in message,ignore.") return diff --git a/tests/test_radas_sign_receiver.py b/tests/test_radas_sign_receiver.py index e80f0435..1090c61b 100644 --- a/tests/test_radas_sign_receiver.py +++ b/tests/test_radas_sign_receiver.py @@ -60,12 +60,19 @@ def test_radas_receiver(self): # test on_message: unmatched case test_ummatch_result = { - "request_id": "test-request-id-no-match", - "file_reference": "quay.io/example/test-repo", - "result_reference": "quay.io/example-sign/sign-repo", - "sig_keyname": "testkey", - "signing_status": "success", - "errors": [] + "i": "1", + "msg_id": "test-id", + "timestamp": time.time(), + "topic": "test-topic", + "username": "test-user", + "msg": { + "request_id": "test-request-id-no-match", + "file_reference": "quay.io/example/test-repo", + "result_reference": "quay.io/example-sign/sign-repo", + "sig_keyname": "testkey", + "signing_status": "success", + "errors": [] + } } event.message.body = json.dumps(test_ummatch_result) r_receiver.on_message(event) @@ -79,12 +86,19 @@ def test_radas_receiver(self): # test on_message: matched case with failed status self.reset_receiver(r_receiver) test_failed_result = { - "request_id": "test-request-id", - "file_reference": "quay.io/example/test-repo", - "result_reference": "quay.io/example-sign/sign-repo", - "sig_keyname": "testkey", - "signing_status": "failed", - "errors": ["error1", "error2"] + "i": "1", + "msg_id": "test-id", + "timestamp": time.time(), + "topic": "test-topic", + "username": "test-user", + "msg": { + "request_id": "test-request-id", + "file_reference": "quay.io/example/test-repo", + "result_reference": "quay.io/example-sign/sign-repo", + "sig_keyname": "testkey", + "signing_status": "failed", + "errors": ["error1", "error2"] + } } event.message.body = json.dumps(test_failed_result) r_receiver.on_message(event) @@ -98,12 +112,19 @@ def test_radas_receiver(self): # test on_message: matched case with success status self.reset_receiver(r_receiver) test_success_result = { - "request_id": "test-request-id", - "file_reference": "quay.io/example/test-repo", - "result_reference": "quay.io/example-sign/sign-repo", - "sig_keyname": "testkey", - "signing_status": "success", - "errors": [] + "i": "1", + "msg_id": "test-id", + "timestamp": time.time(), + "topic": "test-topic", + "username": "test-user", + "msg": { + "request_id": "test-request-id", + "file_reference": "quay.io/example/test-repo", + "result_reference": "quay.io/example-sign/sign-repo", + "sig_keyname": "testkey", + "signing_status": "success", + "errors": [] + } } event.message.body = json.dumps(test_success_result) r_receiver.on_message(event)