ironic_inspector.common.ironic module¶
- exception ironic_inspector.common.ironic.NotFound(node_ident, code=404, *args, **kwargs)[source]¶
Bases:
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.