summaryrefslogtreecommitdiff
path: root/cxmanage_api/node.py
diff options
context:
space:
mode:
Diffstat (limited to 'cxmanage_api/node.py')
-rw-r--r--cxmanage_api/node.py31
1 files changed, 20 insertions, 11 deletions
diff --git a/cxmanage_api/node.py b/cxmanage_api/node.py
index da0c6b5..c92bdc5 100644
--- a/cxmanage_api/node.py
+++ b/cxmanage_api/node.py
@@ -1560,6 +1560,26 @@ obtained.
"""
return self.bmc.fabric_get_uplink_info().strip()
+ def read_fru(self, fru_number, offset=0, bytes_to_read=-1):
+ """Read from node's fru starting at offset.
+ This is equivalent to the ipmitool fru read command.
+
+ :param fru_number: FRU image to read
+ :type fru_number: integer
+ :param offset: File offset
+ :type offset: integer
+ :param bytes_to_read: Number of bytes to read
+ :type bytes_to_read: integer
+
+ :return: The data read from FRU
+ :rtype: string
+
+ """
+ with tempfile.NamedTemporaryFile(delete=True) as hexfile:
+ self.bmc.fru_read(fru_number, hexfile.name)
+ hexfile.seek(offset)
+ return(hexfile.read(bytes_to_read))
+
def _run_fabric_command(self, function_name, **kwargs):
"""Handles the basics of sending a node a command for fabric data."""
filename = temp_file()
@@ -1801,16 +1821,5 @@ obtained.
"Unable to increment SIMG priority, too high")
return priority
- def _read_fru(self, fru_number, offset=0, bytes_to_read=-1):
- """Read from node's fru starting at offset.
- This is equivalent to the ipmitool fru read command.
-
- """
- # Use a temporary file to store the FRU image
- with tempfile.NamedTemporaryFile(delete=True) as hexfile:
- self.bmc.fru_read(fru_number, hexfile.name)
- hexfile.seek(offset)
- return(hexfile.read(bytes_to_read))
-
# End of file: ./node.py