ironic_inspector.rules module¶
Support for introspection rules.
-
class
ironic_inspector.rules.
IntrospectionRule
(uuid, conditions, actions, description, scope=None)[source]¶ Bases:
object
High-level class representing an introspection rule.
-
apply_actions
(node_info, data=None)[source]¶ Run actions on a node.
- Parameters
node_info – NodeInfo instance
data – introspection data
-
check_conditions
(node_info, data)[source]¶ Check if conditions are true for a given node.
- Parameters
node_info – a NodeInfo object
data – introspection data
- Returns
True if conditions match, otherwise False
-
check_scope
(node_info)[source]¶ Check if node’s scope falls under rule._scope and rule is applicable
- Parameters
node_info – a NodeInfo object
- Returns
True if conditions match, otherwise False
-
property
description
¶
-
-
ironic_inspector.rules.
create
(conditions_json, actions_json, uuid=None, description=None, scope=None)[source]¶ Create a new rule in database.
- Parameters
conditions_json – list of dicts with the following keys: * op - operator * field - JSON path to field to compare Other keys are stored as is.
actions_json – list of dicts with the following keys: * action - action type Other keys are stored as is.
uuid – rule UUID, will be generated if empty
description – human-readable rule description
scope – if scope on node and rule matches, rule applies; if its empty, rule applies to all nodes.
- Returns
new IntrospectionRule object
- Raises
utils.Error on failure