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