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.