mirror of
https://github.com/kubevirt/kubevirt.core.git
synced 2026-07-25 00:44:35 +00:00
fix: respect user-configured strict option in _set_composite_vars
Previously, `_set_composable_vars` hardcoded `strict=True` for the `_set_composite_vars` call while correctly passing the user-configured value to `_add_host_to_composed_groups` and `_add_host_to_keyed_groups`. This meant `strict: false` had no effect on compose expressions. Pass `strict=strict` consistently to all three calls, matching the behavior of Ansible's own `constructed` inventory plugin. Adds a unit test verifying that compose errors are suppressed when `strict: false` is configured. Signed-off-by: Jathavedhan M <jathavedhan.m@ibm.com> Assisted-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -920,7 +920,7 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
|
|||||||
trust_compose_groups(self.get_option("compose")),
|
trust_compose_groups(self.get_option("compose")),
|
||||||
hostvars,
|
hostvars,
|
||||||
hostname,
|
hostname,
|
||||||
strict=True,
|
strict=strict,
|
||||||
)
|
)
|
||||||
self._add_host_to_composed_groups(
|
self._add_host_to_composed_groups(
|
||||||
trust_compose_groups(self.get_option("groups")),
|
trust_compose_groups(self.get_option("groups")),
|
||||||
|
|||||||
@@ -61,3 +61,30 @@ def test_set_composable_vars(
|
|||||||
assert host in groups["block_migratable_vmis"]["children"]
|
assert host in groups["block_migratable_vmis"]["children"]
|
||||||
assert "fedora_40" in groups
|
assert "fedora_40" in groups
|
||||||
assert host in groups["fedora_40"]["children"]
|
assert host in groups["fedora_40"]["children"]
|
||||||
|
|
||||||
|
|
||||||
|
def test_set_composable_vars_strict_false_ignores_compose_errors(
|
||||||
|
inventory,
|
||||||
|
groups,
|
||||||
|
hosts,
|
||||||
|
):
|
||||||
|
inventory._options = {
|
||||||
|
"compose": {"custom_label": "vmi_nonexistent_label"},
|
||||||
|
"groups": {},
|
||||||
|
"keyed_groups": [],
|
||||||
|
"strict": False,
|
||||||
|
}
|
||||||
|
inventory._populate_inventory(
|
||||||
|
{
|
||||||
|
"default_hostname": "test",
|
||||||
|
"cluster_domain": "test.com",
|
||||||
|
"namespaces": {
|
||||||
|
"default": {"vms": [], "vmis": [VMI], "services": {}},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
InventoryOptions(),
|
||||||
|
)
|
||||||
|
|
||||||
|
host = f"{DEFAULT_NAMESPACE}-testvmi"
|
||||||
|
assert host in hosts
|
||||||
|
assert "custom_label" not in hosts[host]
|
||||||
|
|||||||
Reference in New Issue
Block a user