diff --git a/ironic_inspector/plugins/rules.py b/ironic_inspector/plugins/rules.py index 6d96fcb58..436965fc1 100644 --- a/ironic_inspector/plugins/rules.py +++ b/ironic_inspector/plugins/rules.py @@ -69,6 +69,7 @@ class NeCondition(SimpleCondition): class EmptyCondition(base.RuleConditionPlugin): REQUIRED_PARAMS = set() + ALLOW_NONE = True def check(self, node_info, field, params, **kwargs): return field in ('', None, [], {}) diff --git a/ironic_inspector/test/functional.py b/ironic_inspector/test/functional.py index 023c9d87b..88241e0ae 100644 --- a/ironic_inspector/test/functional.py +++ b/ironic_inspector/test/functional.py @@ -320,6 +320,7 @@ class Test(Base): {'field': 'inventory.interfaces[*].ipv4_address', 'op': 'contains', 'value': r'127\.0\.0\.1', 'invert': True, 'multiple': 'all'}, + {'field': 'i.do.not.exist', 'op': 'is-empty'}, ], 'actions': [ {'action': 'set-attribute', 'path': '/extra/foo', diff --git a/releasenotes/notes/is-empty-missing-a590d580cb62761d.yaml b/releasenotes/notes/is-empty-missing-a590d580cb62761d.yaml new file mode 100644 index 000000000..c048fdcf3 --- /dev/null +++ b/releasenotes/notes/is-empty-missing-a590d580cb62761d.yaml @@ -0,0 +1,3 @@ +--- +fixes: + - Fixed the "is-empty" condition to return True on missing values.