From f49964a563b53eb668960d265d9ea11b9962f817 Mon Sep 17 00:00:00 2001 From: suaveolent Date: Tue, 9 Dec 2025 16:20:14 +0100 Subject: [PATCH] Fix return correct fru object for get_fru_inventory Signed-off-by: suaveolent --- pyipmi/fru.py | 57 +++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/pyipmi/fru.py b/pyipmi/fru.py index 188974a..77e7644 100644 --- a/pyipmi/fru.py +++ b/pyipmi/fru.py @@ -148,35 +148,34 @@ def get_fru_inventory(self, fru_id=0, ignore_checksum=False): Get the full parsed FRU inventory data. """ fru = FruInventory() - header = self.get_fru_inventory_header(fru_id=fru_id, - ignore_checksum=ignore_checksum) - - areas = [ - { 'offset': header.chassis_info_area_offset, - 'target': fru.chassis_info_area, - 'getter': self.get_fru_chassis_area - }, - { - 'offset': header.board_info_area_offset, - 'target': fru.board_info_area, - 'getter': self.get_fru_board_area - }, - { - 'offset': header.product_info_area_offset, - 'target': fru.product_info_area, - 'getter': self.get_fru_product_area - }, - { - 'offset': header.multirecord_area_offset, - 'target': fru.multirecord_area, - 'getter': self.get_fru_multirecord_area - }, - ] - - for area in areas: - if area['offset']: - area['target'] = area['getter'](fru_id=fru_id, - ignore_checksum=ignore_checksum) + header = self.get_fru_inventory_header( + fru_id=fru_id, + ignore_checksum=ignore_checksum + ) + + if header.chassis_info_area_offset: + fru.chassis_info_area = self.get_fru_chassis_area( + fru_id=fru_id, + ignore_checksum=ignore_checksum + ) + + if header.board_info_area_offset: + fru.board_info_area = self.get_fru_board_area( + fru_id=fru_id, + ignore_checksum=ignore_checksum + ) + + if header.product_info_area_offset: + fru.product_info_area = self.get_fru_product_area( + fru_id=fru_id, + ignore_checksum=ignore_checksum + ) + + if header.multirecord_area_offset: + fru.multirecord_area = self.get_fru_multirecord_area( + fru_id=fru_id, + ignore_checksum=ignore_checksum + ) return fru