Skip to content

Commit 7a34092

Browse files
committed
Fix for build_info computation
1 parent e6d67ca commit 7a34092

File tree

4 files changed

+35
-44
lines changed

4 files changed

+35
-44
lines changed

scripts/release/build/build_info.py

Lines changed: 23 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,49 @@
11
import json
2+
from dataclasses import dataclass
23
from typing import Dict
34

45
from scripts.release.build.build_scenario import BuildScenario
56
from scripts.release.constants import DEFAULT_REPOSITORY_PATH, DEFAULT_CHANGELOG_PATH, RELEASE_INITIAL_VERSION_ENV_VAR, \
67
get_initial_version, get_initial_commit_sha
78

89

9-
class ImageInfo(dict):
10-
def __init__(self, repository: str, platforms: list[str], version: str, sign: bool):
11-
super().__init__()
12-
self.repository = repository
13-
self.platforms = platforms
14-
self.version = version
15-
self.sign = sign
10+
@dataclass
11+
class ImageInfo:
12+
repository: str
13+
platforms: list[str]
14+
version: str
15+
sign: bool
1616

1717
def to_json(self):
1818
return {"repository": self.repository, "platforms": self.platforms, "version": self.version}
1919

2020

21-
class BinaryInfo(dict):
22-
def __init__(self, s3_store: str, platforms: list[str], version: str, sign: bool):
23-
super().__init__()
24-
self.s3_store = s3_store
25-
self.platforms = platforms
26-
self.version = version
27-
self.sign = sign
21+
@dataclass
22+
class BinaryInfo:
23+
s3_store: str
24+
platforms: list[str]
25+
version: str
26+
sign: bool
2827

2928
def to_json(self):
3029
return {"platforms": self.platforms, "version": self.version}
3130

3231

33-
class HelmChartInfo(dict):
34-
def __init__(self, repository: str, version: str, sign: bool):
35-
super().__init__()
36-
self.repository = repository
37-
self.version = version
38-
self.sign = sign
32+
@dataclass
33+
class HelmChartInfo:
34+
repository: str
35+
version: str
36+
sign: bool
3937

4038
def to_json(self):
4139
return {"repository": self.repository, "version": self.version}
4240

4341

44-
class BuildInfo(dict):
45-
def __init__(
46-
self, images: Dict[str, ImageInfo], binaries: Dict[str, BinaryInfo], helm_charts: Dict[str, HelmChartInfo]
47-
):
48-
super().__init__()
49-
self.images = images
50-
self.binaries = binaries
51-
self.helm_charts = helm_charts
52-
53-
def __dict__(self):
54-
return {
55-
"images": {name: images.__dict__ for name, images in self.images.items()},
56-
"binaries": {name: bin.__dict__ for name, bin in self.binaries.items()},
57-
"helm-charts": {name: chart.__dict__ for name, chart in self.helm_charts.items()},
58-
}
42+
@dataclass
43+
class BuildInfo:
44+
images: Dict[str, ImageInfo]
45+
binaries: Dict[str, BinaryInfo]
46+
helm_charts: Dict[str, HelmChartInfo]
5947

6048
def to_json(self):
6149
return {

scripts/release/build/build_info_test.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ def test_load_build_info_patch(git_repo: Repo):
103103

104104
build_info = load_build_info(BuildScenario.PATCH, git_repo.working_dir)
105105

106-
assert build_info.__dict__() == expected_build_info.__dict__()
106+
assert build_info == expected_build_info
107107

108108

109109
def test_load_build_info_staging(git_repo: Repo):
@@ -199,7 +199,7 @@ def test_load_build_info_staging(git_repo: Repo):
199199

200200
build_info = load_build_info(BuildScenario.STAGING, git_repo.working_dir)
201201

202-
assert build_info.__dict__() == expected_build_info.__dict__()
202+
assert build_info == expected_build_info
203203

204204

205205
def test_load_build_info_release(git_repo: Repo, readinessprobe_version: str,
@@ -271,4 +271,4 @@ def test_load_build_info_release(git_repo: Repo, readinessprobe_version: str,
271271

272272
build_info = load_build_info(BuildScenario.RELEASE, git_repo.working_dir)
273273

274-
assert build_info.__dict__() == expected_build_info.__dict__()
274+
assert build_info == expected_build_info

scripts/release/pipeline_main.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,10 @@ def image_build_config_from_args(args) -> ImageBuildConfiguration:
8484
build_scenario = get_scenario_from_arg(args.scenario) or BuildScenario.infer_scenario_from_environment()
8585

8686
build_info = load_build_info(build_scenario)
87+
logger.info(f"image is {image}")
88+
logger.info(f"images are {build_info.images}")
8789
image_build_info = build_info.images.get(image)
90+
logger.info(f"image_build_info is {image_build_info}")
8891
if not image_build_info:
8992
raise ValueError(f"Image '{image}' is not defined in the build info for scenario '{build_scenario}'")
9093

scripts/release/release_info_test.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,22 @@ def test_create_release_info_json(
1313

1414
expected_json = {
1515
"images": {
16-
"mongodbOperator": {
16+
"operator": {
1717
"repository": "quay.io/mongodb/mongodb-kubernetes",
1818
"platforms": ["linux/arm64", "linux/amd64"],
1919
"version": "1.2.0",
2020
},
21-
"initDatabase": {
21+
"init-database": {
2222
"repository": "quay.io/mongodb/mongodb-kubernetes-init-database",
2323
"platforms": ["linux/arm64", "linux/amd64"],
2424
"version": "1.2.0",
2525
},
26-
"initAppDb": {
26+
"init-appdb": {
2727
"repository": "quay.io/mongodb/mongodb-kubernetes-init-appdb",
2828
"platforms": ["linux/arm64", "linux/amd64"],
2929
"version": "1.2.0",
3030
},
31-
"initOpsManager": {
31+
"init-ops-manager": {
3232
"repository": "quay.io/mongodb/mongodb-kubernetes-init-ops-manager",
3333
"platforms": ["linux/arm64", "linux/amd64"],
3434
"version": "1.2.0",
@@ -38,12 +38,12 @@ def test_create_release_info_json(
3838
"platforms": ["linux/arm64", "linux/amd64"],
3939
"version": "1.2.0",
4040
},
41-
"readinessprobe": {
41+
"readiness-probe": {
4242
"repository": "quay.io/mongodb/mongodb-kubernetes-readinessprobe",
4343
"platforms": ["linux/arm64", "linux/amd64"],
4444
"version": readinessprobe_version,
4545
},
46-
"operator-version-upgrade-post-start-hook": {
46+
"upgrade-hook": {
4747
"repository": "quay.io/mongodb/mongodb-kubernetes-operator-version-upgrade-post-start-hook",
4848
"platforms": ["linux/arm64", "linux/amd64"],
4949
"version": operator_version_upgrade_post_start_hook_version,

0 commit comments

Comments
 (0)