ironic_python_agent.device_hints module¶
- ironic_python_agent.device_hints.find_devices_by_hints(devices, root_device_hints)[source]¶
Find all devices that match the root device hints.
Try to find devices that match the root device hints. In order for a device to be matched it needs to satisfy all the given hints.
- Parameters:
devices –
- A list of dictionaries representing the devices
containing one or more of the following keys:
- name:
(String) The device name, e.g /dev/sda
- size:
(Integer) Size of the device in bytes
- model:
(String) Device model
- vendor:
(String) Device vendor name
- serial:
(String) Device serial number
- wwn:
(String) Unique storage identifier
- wwn_with_extension:
(String): Unique storage identifier with the vendor extension appended
- wwn_vendor_extension:
(String): United vendor storage identifier
- rotational:
(Boolean) Whether it’s a rotational device or not. Useful to distinguish HDDs (rotational) and SSDs (not rotational).
- hctl:
(String): The SCSI address: Host, channel, target and lun. For example: ‘1:0:0:0’.
- by_path:
(String): The alternative device name, e.g. /dev/disk/by-path/pci-0000:00
root_device_hints – A dictionary with the root device hints.
- Raises:
ValueError, if some information is invalid.
- Returns:
A generator with all matching devices as dictionaries.
- ironic_python_agent.device_hints.match_root_device_hints(devices, root_device_hints)[source]¶
Try to find a device that matches the root device hints.
Try to find a device that matches the root device hints. In order for a device to be matched it needs to satisfy all the given hints.
- Parameters:
devices –
- A list of dictionaries representing the devices
containing one or more of the following keys:
- name:
(String) The device name, e.g /dev/sda
- size:
(Integer) Size of the device in bytes
- model:
(String) Device model
- vendor:
(String) Device vendor name
- serial:
(String) Device serial number
- wwn:
(String) Unique storage identifier
- wwn_with_extension:
(String): Unique storage identifier with the vendor extension appended
- wwn_vendor_extension:
(String): United vendor storage identifier
- rotational:
(Boolean) Whether it’s a rotational device or not. Useful to distinguish HDDs (rotational) and SSDs (not rotational).
- hctl:
(String): The SCSI address: Host, channel, target and lun. For example: ‘1:0:0:0’.
- by_path:
(String): The alternative device name, e.g. /dev/disk/by-path/pci-0000:00
root_device_hints – A dictionary with the root device hints.
- Raises:
ValueError, if some information is invalid.
- Returns:
The first device to match all the hints or None.
- ironic_python_agent.device_hints.parse_root_device_hints(root_device)[source]¶
Parse the root_device property of a node.
Parses and validates the root_device property of a node. These are hints for how a node’s root device is created. The ‘size’ hint should be a positive integer. The ‘rotational’ hint should be a Boolean value.
- Parameters:
root_device – the root_device dictionary from the node’s property.
- Returns:
a dictionary with the root device hints parsed or None if there are no hints.
- Raises:
ValueError, if some information is invalid.