is-empty conditions should accept missing values

Returning False from is-empty condition on missing values seems extremely
confusing and rules out some potential use cases.

Closes-Bug: #1578184
Change-Id: I8f976516f89367512e2ffae2815085be1776b6f6
changes/31/310031/2
Dmitry Tantsur 7 years ago
parent 77b4725261
commit 50b989474d
  1. 1
      ironic_inspector/plugins/rules.py
  2. 1
      ironic_inspector/test/functional.py
  3. 3
      releasenotes/notes/is-empty-missing-a590d580cb62761d.yaml

@ -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, [], {})

@ -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',

@ -0,0 +1,3 @@
---
fixes:
- Fixed the "is-empty" condition to return True on missing values.
Loading…
Cancel
Save