ironic.common.inspection_rules.utils module

Utilities and helper functions for rules.

class ironic.common.inspection_rules.utils.ShallowMaskDict(data, sensitive_fields=None, mask_enabled=True)[source]

Bases: MutableMapping

Dictionary wrapper to mask sensitive fields on the fly.

This class implements the MutableMapping ABC to provide a complete dict-like interface while masking sensitive fields when accessed.

copy()[source]
set_mask_enabled(mask_enabled)[source]
class ironic.common.inspection_rules.utils.ShallowMaskList(original_list, sensitive_fields=None, mask_enabled=True)[source]

Bases: MutableSequence

A proxy list to maintain original list and applies masking on the fly.

This class implements the MutableSequence ABC to provide a complete list-like interface while handling sensitive data masking consistently with ShallowMaskDict.

copy()[source]
insert(index, value)[source]

S.insert(index, value) – insert value before index

set_mask_enabled(mask_enabled)[source]
ironic.common.inspection_rules.utils.normalize_path(path)[source]

Convert a path (dot or slash notation) to a list of path parts

ironic.common.inspection_rules.utils.parse_inverted_operator(op)[source]

Handle inverted operators.

Parses a logical condition operator to determine if it has been negated using a single leading exclamation mark (‘!’). Ensures only one exclamation mark is allowed.

Example Usage:

parse_inverted_operator(“!eq”) # Returns (“eq”, True) parse_inverted_operator(” eq “) # Returns (“eq”, False) parse_inverted_operator(“!!eq”) # Raises ValueError

raises: ValueError: If multiple exclamation marks are present returns: A tuple containing the cleaned operator and a

boolean indicating whether negation was applied.