Skip to content

Commit d0d8d12

Browse files
committed
RADAS: use result file directly instead of folder in maven upload
1 parent f60f2ce commit d0d8d12

File tree

4 files changed

+13
-40
lines changed

4 files changed

+13
-40
lines changed

charon/cmd/cmd_upload.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ def upload(
161161
debug=False,
162162
quiet=False,
163163
dryrun=False,
164-
sign_result_loc="/tmp/sign"
164+
sign_result_file=None,
165165
):
166166
"""Upload all files from a released product REPO to Ronda
167167
Service. The REPO points to a product released tarball which
@@ -233,7 +233,7 @@ def upload(
233233
dry_run=dryrun,
234234
manifest_bucket_name=manifest_bucket_name,
235235
config=config,
236-
sign_result_loc=sign_result_loc
236+
sign_result_file=sign_result_file
237237
)
238238
if not succeeded:
239239
sys.exit(1)

charon/pkgs/maven.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ def handle_maven_uploading(
276276
dry_run=False,
277277
manifest_bucket_name=None,
278278
config=None,
279-
sign_result_loc="/tmp/sign"
279+
sign_result_file=None
280280
) -> Tuple[str, bool]:
281281
""" Handle the maven product release tarball uploading process.
282282
* repo is the location of the tarball in filesystem
@@ -416,10 +416,10 @@ def handle_maven_uploading(
416416
if not conf:
417417
sys.exit(1)
418418

419-
if conf.is_radas_enabled():
419+
if conf.is_radas_enabled() and sign_result_file and os.path.isfile(sign_result_file):
420420
logger.info("Start generating radas signature files for s3 bucket %s\n", bucket_name)
421421
(_failed_metas, _generated_signs) = radas_signature.generate_radas_sign(
422-
top_level=top_level, sign_result_loc=sign_result_loc
422+
top_level=top_level, sign_result_file=sign_result_file
423423
)
424424
if not _generated_signs:
425425
logger.error(

charon/pkgs/radas_sign.py

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -276,31 +276,17 @@ def _handle_failed_delivery(self, reason: str):
276276
self.close()
277277

278278

279-
def generate_radas_sign(top_level: str, sign_result_loc: str) -> Tuple[List[str], List[str]]:
279+
def generate_radas_sign(top_level: str, sign_result_file: str) -> Tuple[List[str], List[str]]:
280280
"""
281281
Generate .asc files based on RADAS sign result json file
282282
"""
283-
if not os.path.isdir(sign_result_loc):
284-
logger.error("Sign result loc dir does not exist: %s", sign_result_loc)
285-
return [], []
286-
287-
files = [
288-
os.path.join(sign_result_loc, f)
289-
for f in os.listdir(sign_result_loc)
290-
if os.path.isfile(os.path.join(sign_result_loc, f))
291-
]
292-
293-
if not files:
294-
return [], []
295-
296-
if len(files) > 1:
297-
logger.error("Multiple files found in %s. Expected only one file.", sign_result_loc)
283+
if not sign_result_file or not os.path.isfile(sign_result_file):
284+
logger.error("Sign result file does not exist: %s", sign_result_file)
298285
return [], []
299286

300287
# should only have the single sign result json file from the radas registry
301-
json_file_path = files[0]
302288
try:
303-
with open(json_file_path, "r") as f:
289+
with open(sign_result_file, "r") as f:
304290
data = json.load(f)
305291
except Exception as e:
306292
logger.error("Failed to read or parse the JSON file: %s", e)

tests/test_radas_sign_generation.py

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def tearDown(self) -> None:
3939

4040
def test_multi_sign_files_generation(self):
4141
self.__prepare_artifacts()
42-
failed, generated = generate_radas_sign(self.__repo_dir, self.__sign_result_loc)
42+
failed, generated = generate_radas_sign(self.__repo_dir, self.__sign_result_file)
4343
self.assertEqual(failed, [])
4444
expected_asc1 = os.path.join(self.__repo_dir, "foo/bar/1.0/foo-bar-1.0.jar.asc")
4545
expected_asc2 = os.path.join(self.__repo_dir, "foo/bar/2.0/foo-bar-2.0.jar.asc")
@@ -55,7 +55,7 @@ def test_multi_sign_files_generation(self):
5555
self.assertIn("signature2@hash", content2)
5656

5757
def test_sign_files_generation_with_missing_artifacts(self):
58-
failed, generated = generate_radas_sign(self.__repo_dir, self.__sign_result_loc)
58+
failed, generated = generate_radas_sign(self.__repo_dir, self.__sign_result_file)
5959
self.assertEqual(failed, [])
6060
expected_asc1 = os.path.join(self.__repo_dir, "foo/bar/1.0/foo-bar-1.0.jar.asc")
6161
expected_asc2 = os.path.join(self.__repo_dir, "foo/bar/2.0/foo-bar-2.0.jar.asc")
@@ -82,7 +82,7 @@ def side_effect(path, *args, **kwargs):
8282
raise IOError("mock write error")
8383
return real_open(path, *args, **kwargs)
8484
mock_open.side_effect = side_effect
85-
failed, generated = generate_radas_sign(self.__repo_dir, self.__sign_result_loc)
85+
failed, generated = generate_radas_sign(self.__repo_dir, self.__sign_result_file)
8686

8787
self.assertEqual(len(failed), 1)
8888
self.assertNotIn(expected_asc1, generated)
@@ -93,20 +93,7 @@ def test_sign_files_generation_with_missing_result(self):
9393
# simulate missing pull result by removing the sign result file loc
9494
shutil.rmtree(self.__sign_result_loc)
9595

96-
failed, generated = generate_radas_sign(self.__repo_dir, self.__sign_result_loc)
97-
self.assertEqual(failed, [])
98-
expected_asc1 = os.path.join(self.__repo_dir, "foo/bar/1.0/foo-bar-1.0.jar.asc")
99-
expected_asc2 = os.path.join(self.__repo_dir, "foo/bar/2.0/foo-bar-2.0.jar.asc")
100-
self.assertEqual(generated, [])
101-
self.assertFalse(os.path.exists(expected_asc1))
102-
self.assertFalse(os.path.exists(expected_asc2))
103-
104-
def test_sign_files_generation_with_not_single_results(self):
105-
self.__prepare_artifacts()
106-
another_result_file = os.path.join(self.__sign_result_loc, "result2.json")
107-
overwrite_file(another_result_file, "test_json")
108-
109-
failed, generated = generate_radas_sign(self.__repo_dir, self.__sign_result_loc)
96+
failed, generated = generate_radas_sign(self.__repo_dir, self.__sign_result_file)
11097
self.assertEqual(failed, [])
11198
expected_asc1 = os.path.join(self.__repo_dir, "foo/bar/1.0/foo-bar-1.0.jar.asc")
11299
expected_asc2 = os.path.join(self.__repo_dir, "foo/bar/2.0/foo-bar-2.0.jar.asc")

0 commit comments

Comments
 (0)