ironic_inspector.common.ironic module¶
-
exception
ironic_inspector.common.ironic.
NotFound
(node_ident, code=404, *args, **kwargs)[source]¶ Bases:
ironic_inspector.utils.Error
Node not found in Ironic.
-
ironic_inspector.common.ironic.
call_with_retries
(func, *args, **kwargs)[source]¶ Call an ironic client function retrying all errors.
If an ironic client exception is raised, try calling the func again, at most 5 times, waiting 1 sec between each call. If on the 5th attempt the func raises again, the exception is propagated to the caller.
-
ironic_inspector.common.ironic.
capabilities_to_dict
(caps)[source]¶ Convert the Node’s capabilities into a dictionary.
-
ironic_inspector.common.ironic.
check_provision_state
(node)[source]¶ Sanity checks the provision state of the node.
- Parameters
node – An API client returned node object describing the baremetal node according to ironic’s node data model.
- Returns
None if no action is to be taken, True if the power node state should not be modified.
- Raises
Error on an invalid state being detected.
-
ironic_inspector.common.ironic.
dict_to_capabilities
(caps_dict)[source]¶ Convert a dictionary into a string with the capabilities syntax.
-
ironic_inspector.common.ironic.
get_ipmi_address
(node)[source]¶ Get the BMC address defined in node.driver_info dictionary
Possible names of BMC address value examined in order of list [‘ipmi_address’] + CONF.ipmi_address_fields. The value could be an IP address or a hostname. DNS lookup performed for the first non empty value.
The first valid BMC address value returned along with it’s v4 and v6 IP addresses.
- Parameters
node – Node object with defined driver_info dictionary
- Returns
tuple (ipmi_address, ipv4_address, ipv6_address)
-
ironic_inspector.common.ironic.
get_node
(node_id, ironic=None, **kwargs)[source]¶ Get a node from Ironic.
- Parameters
node_id – node UUID or name.
ironic – ironic client instance.
kwargs – arguments to pass to Ironic client.
- Raises
Error on failure
-
ironic_inspector.common.ironic.
lookup_node
(macs=None, bmc_addresses=None, introspection_data=None, ironic=None)[source]¶ Lookup a node in the ironic database.
-
ironic_inspector.common.ironic.
lookup_node_by_bmc_addresses
(addresses, introspection_data=None, ironic=None, fail=False)[source]¶ Find a node by its BMC address.