Skip to content

Commit c033058

Browse files
authored
Merge pull request #1054 from luissimas/fix-zone-constraints
#1054 #### Description Closes #1050. This fixes the parsing of the `zones` constraint in bundles. The format in the Juju API is defined in: https://github.com/juju/juju/blob/3.6/core/constraints/constraints.go#L107. #### QA Steps The following python script can be used to verify both the bug in the current version as well as the fix implemented: ```python import asyncio from juju.model import Model bundle_file = "./bundle.yaml" bundle = """ name: sample-bundle series: jammy machines: "0": constraints: zones=z-1 applications: postgresql: charm: postgresql channel: 14/stable num_units: 1 to: - lxd:0 """ async def main(): with open(bundle_file, "w") as f: f.write(bundle) model = Model() await model.connect() await model.deploy(bundle_file) asyncio.run(main()) ``` All CI tests need to pass.
2 parents 18917b4 + c12adde commit c033058

2 files changed

Lines changed: 2 additions & 2 deletions

File tree

juju/constraints.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
"zones",
5555
"allocate_public_ip"]
5656

57-
LIST_KEYS = {'tags', 'spaces'}
57+
LIST_KEYS = {'tags', 'spaces', 'zones'}
5858

5959
SNAKE1 = re.compile(r'(.)([A-Z][a-z]+)')
6060
SNAKE2 = re.compile('([a-z0-9])([A-Z])')

tests/unit/test_constraints.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def test_parse_constraints(self):
6060
self.assertEqual(
6161
_("mem=10G zones=bar,baz tags=tag1 spaces=space1,space2"),
6262
{"mem": 10 * 1024,
63-
"zones": "bar,baz",
63+
"zones": ["bar", "baz"],
6464
"tags": ["tag1"],
6565
"spaces": ["space1", "space2"]}
6666
)

0 commit comments

Comments
 (0)