ironic_inspector.db.api module¶
DB models API for inspection data and shared database code.
- ironic_inspector.db.api.add_node(uuid, state, started_at=None, finished_at=None, error=None, manage_boot=None)[source]¶
Add new node
Before creating new node with certain uuid clean ups all existing node info.
- Parameters:
uuid – node uuid
state – initial node state
started_at – node caching datetime
finished_at – introspection finished datetime
error – introspection error
manage_boot – whether to manage boot for this node
- Returns:
created node object
- ironic_inspector.db.api.create_node(uuid, state, started_at=None, finished_at=None, error=None, manage_boot=None)[source]¶
Create new node
- Parameters:
uuid – node uuid
state – initial node state
started_at – node caching datetime
finished_at – introspection finished datetime
error – introspection error
- Returns:
created node object
- ironic_inspector.db.api.create_rule(uuid, conditions, actions, description=None, scope=None)[source]¶
Create new rule
- Parameters:
uuid – rule uuid
conditions – list of (field, op, multiple, invert, params) tuple, which represents condition object
actions – list of (action, params) pair, which represents action object
description – rule description
scope – rule scope
- Returns:
created rule
- ironic_inspector.db.api.delete_attributes(uuid)[source]¶
Delete all attributes
- Parameters:
uuid – the UUID of the node whose attributes you wish tod elete
- Returns:
None
- ironic_inspector.db.api.delete_node(uuid)[source]¶
Delete node and its attributes
- Parameters:
uuid – node uuid
- Returns:
None
- ironic_inspector.db.api.delete_nodes(finished_until=None)[source]¶
Delete all nodes
- Parameters:
finished_until – datetime object, delete nodes are introspected before finished_until time
- Returns:
None
- ironic_inspector.db.api.delete_options(**filters)[source]¶
Delete all options
- Parameters:
filters – deletion filter criteria
- Returns:
None
- ironic_inspector.db.api.delete_rule(uuid)[source]¶
Delete the rule by uuid
- Parameters:
uuid – rule uuid
- Raises:
RuleNotFoundError in case rule not found
- Returns:
None
- ironic_inspector.db.api.get_active_nodes(started_before=None)[source]¶
Get list of nodes on introspection
- Parameters:
started_before – datetime object, returns nodes, started before provided time
- Returns:
list of nodes, could be empty
- ironic_inspector.db.api.get_attributes(order_by=None, **fields)[source]¶
Get all attributes
- Parameters:
order_by – ordering criterion
fields – filter criteria fields
- Returns:
list of attributes
- ironic_inspector.db.api.get_introspection_data(node_id, processed=True)[source]¶
Get introspection data for this node.
- Parameters:
node_id – node UUID.
processed – Specify the type of introspected data, set to False indicates retrieving the unprocessed data.
- Returns:
A dictionary representation of intropsected data
- ironic_inspector.db.api.get_node(uuid, **fields)[source]¶
Get all cached nodes
- Parameters:
uuid – node uuid
fields – fields are used as filtering criterion
- Returns:
get node object
- Raises:
NodeNotFoundInDBError in case node not found or node version differ from passed in fields.
- ironic_inspector.db.api.get_nodes()[source]¶
Get list of cached nodes
- Returns:
list of nodes, could be empty
- ironic_inspector.db.api.get_options(**fields)[source]¶
Get all options
- Parameters:
fields – filter criteria fields
- Returns:
list of options
- ironic_inspector.db.api.get_rule(uuid)[source]¶
Get rule by uuid
- Parameters:
uuid – rule uuid
- Returns:
rule object
- ironic_inspector.db.api.get_rules_actions(**fields)[source]¶
Get all rule actions
- Parameters:
fields – field filter criteria
- Returns:
list of actions
- ironic_inspector.db.api.get_rules_conditions(**fields)[source]¶
Get all rule conditions
- Parameters:
fields – field filter criteria
- Returns:
list of conditions
- ironic_inspector.db.api.get_writer_session()[source]¶
Help method to get writer session.
- Returns:
The writer session.
- ironic_inspector.db.api.init()[source]¶
Initialize the database.
Method called on service start up, initialize transaction context manager and try to create db session.
- ironic_inspector.db.api.list_nodes_by_attributes(attributes)[source]¶
Get list of nodes with certain attributes
- Parameters:
attributes – list of attributes as (name, value) pair
- Returns:
list of nodes, could be empty
- ironic_inspector.db.api.list_nodes_options_by_uuid(uuid)[source]¶
Get list of node options
- Parameters:
uuid – node uuid
- Returns:
list of node options, could be empty
- ironic_inspector.db.api.model_query(model, *args, **kwargs)[source]¶
Query helper for simpler session usage.
- Parameters:
session – if present, the session to use
- ironic_inspector.db.api.set_attribute(node_uuid, name, values)[source]¶
Set lookup attributes for node
- Parameters:
node_uuid – node uuid
name – option name
values – list of attribute values
- Returns:
None
- ironic_inspector.db.api.set_option(node_uuid, name, value)[source]¶
Set option for node
- Parameters:
node_uuid – node uuid
name – option name
value – option value
- Returns:
None
- ironic_inspector.db.api.store_introspection_data(node_id, introspection_data, processed=True)[source]¶
Store introspection data for this node.
- Parameters:
node_id – node UUID.
introspection_data – A dictionary of introspection data
processed – Specify the type of introspected data, set to False indicates the data is unprocessed.
- ironic_inspector.db.api.update_node(uuid, **values)[source]¶
Update node by uuid
Updates node fields with provided values, also bump node version.
- Parameters:
uuid – node uuid
values – node fields with values to be updated
- Raises:
NodeNotFoundInDBError in case node not found or node version differ from passed in values.