Skip to content

Commit 8be8d85

Browse files
authored
189 refactor new code imported from gl workflow scripts (#232)
* not using _bucket property anymore * release notes mock fixed to support quoted version numbers * calling CName constructor with the commit parameter * using cname.cname in download_metadata
1 parent 4ecf676 commit 8be8d85

File tree

2 files changed

+37
-31
lines changed

2 files changed

+37
-31
lines changed

src/gardenlinux/github/release_notes/helpers.py

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,9 @@ def download_all_metadata_files(version, commitish, s3_bucket_name):
6161

6262
s3_artifacts = S3Artifacts(s3_bucket_name)
6363

64-
commitish_short = commitish[:8]
65-
6664
for flavor in flavors:
67-
cname = CName(flavor[1], flavor[0], "{0}-{1}".format(version, commitish_short))
6865
LOGGER.debug(f"{flavor=} {version=} {commitish=}")
66+
cname = CName(flavor[1], flavor[0], commitish)
6967
# Filter by image variants - only download if the flavor matches one of the variants
7068
flavor_matches_variant = False
7169
for variant_suffix in IMAGE_VARIANTS:
@@ -86,8 +84,9 @@ def download_all_metadata_files(version, commitish, s3_bucket_name):
8684
continue
8785

8886
try:
87+
commit_short = commitish[:8]
8988
download_metadata_file(
90-
s3_artifacts, cname.cname, version, commitish_short, local_dest_path
89+
s3_artifacts, cname, version, commit_short, local_dest_path
9190
)
9291
except IndexError:
9392
LOGGER.warn(f"No artifacts found for flavor {cname.cname}, skipping...")
@@ -96,24 +95,23 @@ def download_all_metadata_files(version, commitish, s3_bucket_name):
9695
return [str(artifact) for artifact in local_dest_path.iterdir()]
9796

9897

99-
def download_metadata_file(
100-
s3_artifacts, cname, version, commitish_short, artifacts_dir
101-
):
98+
def download_metadata_file(s3_artifacts, cname, version, commit_short, artifacts_dir):
10299
"""
103100
Download metadata file (s3_metadata.yaml)
104101
"""
105102
LOGGER.debug(
106-
f"{s3_artifacts=} | {cname=} | {version=} | {commitish_short=} | {artifacts_dir=}"
103+
f"{s3_artifacts=} | {cname.cname=} | {version=} | {cname.commit_id=} | {commit_short=} | {artifacts_dir=}"
104+
)
105+
maybe_release_objects = s3_artifacts.bucket.objects.filter(
106+
Prefix=f"meta/singles/{cname.cname}-{version}-{commit_short}"
107107
)
108-
release_object = list(
109-
s3_artifacts._bucket.objects.filter(
110-
Prefix=f"meta/singles/{cname}-{version}-{commitish_short}"
111-
)
112-
)[0]
108+
109+
release_object = list(maybe_release_objects)[0]
113110
LOGGER.debug(f"{release_object.bucket_name=} | {release_object.key=}")
114111

115112
s3_artifacts.bucket.download_file(
116-
release_object.key, artifacts_dir.joinpath(f"{cname}.s3_metadata.yaml")
113+
release_object.key,
114+
artifacts_dir.joinpath(f"{cname.cname}.s3_metadata.yaml"),
117115
)
118116

119117

tests/github/test_download_metadata_files.py

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
from ..constants import (
99
RELEASE_NOTES_S3_ARTIFACTS_DIR,
10-
TEST_GARDENLINUX_COMMIT,
1110
TEST_GARDENLINUX_COMMIT_SHORT,
1211
TEST_GARDENLINUX_RELEASE,
1312
TEST_GARDENLINUX_RELEASE_BUCKET_NAME,
@@ -17,20 +16,16 @@
1716
def test_download_metadata_file(downloads_dir, release_s3_bucket):
1817
release_s3_bucket.upload_file(
1918
RELEASE_NOTES_S3_ARTIFACTS_DIR / "aws-gardener_prod-amd64.s3_metadata.yaml",
20-
f"meta/singles/test-aws-gardener_prod-amd64-{TEST_GARDENLINUX_RELEASE}-{TEST_GARDENLINUX_COMMIT}",
19+
f"meta/singles/test-aws-gardener_prod-amd64-{TEST_GARDENLINUX_RELEASE}-{TEST_GARDENLINUX_COMMIT_SHORT}",
2120
)
2221

2322
s3_artifacts = S3Artifacts(TEST_GARDENLINUX_RELEASE_BUCKET_NAME)
2423
s3_artifacts._bucket = release_s3_bucket
2524

26-
cname = CName(
27-
"test-aws-gardener_prod",
28-
"amd64",
29-
"{0}-{1}".format(TEST_GARDENLINUX_RELEASE, TEST_GARDENLINUX_COMMIT_SHORT),
30-
)
25+
cname = CName("test-aws-gardener_prod", "amd64", TEST_GARDENLINUX_COMMIT_SHORT)
3126
download_metadata_file(
3227
s3_artifacts,
33-
cname.cname,
28+
cname,
3429
TEST_GARDENLINUX_RELEASE,
3530
TEST_GARDENLINUX_COMMIT_SHORT,
3631
S3_DOWNLOADS_DIR,
@@ -41,18 +36,22 @@ def test_download_metadata_file(downloads_dir, release_s3_bucket):
4136
def test_download_metadata_file_no_such_release(downloads_dir, release_s3_bucket):
4237
release_s3_bucket.upload_file(
4338
RELEASE_NOTES_S3_ARTIFACTS_DIR / "aws-gardener_prod-amd64.s3_metadata.yaml",
44-
f"meta/singles/test-aws-gardener_prod-amd64-{TEST_GARDENLINUX_RELEASE}-{TEST_GARDENLINUX_COMMIT}",
39+
f"meta/singles/test-aws-gardener_prod-amd64-{TEST_GARDENLINUX_RELEASE}-{TEST_GARDENLINUX_COMMIT_SHORT}",
4540
)
4641
s3_artifacts = S3Artifacts(TEST_GARDENLINUX_RELEASE_BUCKET_NAME)
4742
s3_artifacts._bucket = release_s3_bucket
4843

4944
release = "0000.0"
5045
commit = TEST_GARDENLINUX_COMMIT_SHORT
51-
cname = CName("aws-gardener_prod", "amd64", "{0}-{1}".format(release, commit))
46+
cname = CName("aws-gardener_prod", "amd64", commit)
5247

5348
with pytest.raises(IndexError):
5449
download_metadata_file(
55-
s3_artifacts, cname.cname, release, commit, S3_DOWNLOADS_DIR
50+
s3_artifacts,
51+
cname,
52+
release,
53+
TEST_GARDENLINUX_COMMIT_SHORT,
54+
S3_DOWNLOADS_DIR,
5655
)
5756
assert not (
5857
S3_DOWNLOADS_DIR / "test-aws-gardener_prod-amd64.s3_metadata.yaml"
@@ -62,19 +61,23 @@ def test_download_metadata_file_no_such_release(downloads_dir, release_s3_bucket
6261
def test_download_metadata_file_no_such_commit(downloads_dir, release_s3_bucket):
6362
release_s3_bucket.upload_file(
6463
RELEASE_NOTES_S3_ARTIFACTS_DIR / "aws-gardener_prod-amd64.s3_metadata.yaml",
65-
f"meta/singles/test-aws-gardener_prod-amd64-{TEST_GARDENLINUX_RELEASE}-{TEST_GARDENLINUX_COMMIT}",
64+
f"meta/singles/test-aws-gardener_prod-amd64-{TEST_GARDENLINUX_RELEASE}-{TEST_GARDENLINUX_COMMIT_SHORT}",
6665
)
6766

6867
s3_artifacts = S3Artifacts(TEST_GARDENLINUX_RELEASE_BUCKET_NAME)
6968
s3_artifacts._bucket = release_s3_bucket
7069

7170
release = TEST_GARDENLINUX_RELEASE
7271
commit = "deadbeef"
73-
cname = CName("test-aws-gardener_prod", "amd64", "{0}-{1}".format(release, commit))
72+
cname = CName("test-aws-gardener_prod", "amd64", commit)
7473

7574
with pytest.raises(IndexError):
7675
download_metadata_file(
77-
s3_artifacts, cname.cname, release, commit, S3_DOWNLOADS_DIR
76+
s3_artifacts,
77+
cname,
78+
release,
79+
commit,
80+
S3_DOWNLOADS_DIR,
7881
)
7982
assert not (
8083
S3_DOWNLOADS_DIR / "test-aws-gardener_prod-amd64.s3_metadata.yaml"
@@ -86,19 +89,24 @@ def test_download_metadata_file_no_such_release_and_commit(
8689
):
8790
release_s3_bucket.upload_file(
8891
RELEASE_NOTES_S3_ARTIFACTS_DIR / "aws-gardener_prod-amd64.s3_metadata.yaml",
89-
f"meta/singles/test-aws-gardener_prod-amd64-{TEST_GARDENLINUX_RELEASE}-{TEST_GARDENLINUX_COMMIT}",
92+
f"meta/singles/test-aws-gardener_prod-amd64-{TEST_GARDENLINUX_RELEASE}-{TEST_GARDENLINUX_COMMIT_SHORT}",
9093
)
9194

9295
s3_artifacts = S3Artifacts(TEST_GARDENLINUX_RELEASE_BUCKET_NAME)
9396
s3_artifacts._bucket = release_s3_bucket
9497

9598
release = "0000.0"
9699
commit = "deadbeef"
97-
cname = CName("test-aws-gardener_prod", "amd64", "{0}-{1}".format(release, commit))
100+
cname = CName("test-aws-gardener_prod", "amd64", commit)
101+
print(f"{cname.cname=}")
98102

99103
with pytest.raises(IndexError):
100104
download_metadata_file(
101-
s3_artifacts, cname.cname, release, commit, S3_DOWNLOADS_DIR
105+
s3_artifacts,
106+
cname,
107+
release,
108+
TEST_GARDENLINUX_COMMIT_SHORT,
109+
S3_DOWNLOADS_DIR,
102110
)
103111
assert not (
104112
S3_DOWNLOADS_DIR / "test-aws-gardener_prod-amd64.s3_metadata.yaml"

0 commit comments

Comments
 (0)