From 57d4db40caece4b388ac22b5d60d3b3ba99245bb Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Wed, 20 Feb 2019 11:14:16 -0500 Subject: [PATCH] Improve consistency with Lenovo tools Lenovo tools use mriName to label configuration groups. Change to this by default, while retaining legacy name as alias for backwards compatibility. Change-Id: I220ab18e21947745cf942d78536668d580ffa38b --- pyghmi/ipmi/oem/lenovo/config.py | 8 ++++++-- pyghmi/ipmi/oem/lenovo/imm.py | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pyghmi/ipmi/oem/lenovo/config.py b/pyghmi/ipmi/oem/lenovo/config.py index 113c18b3..b637a5fd 100644 --- a/pyghmi/ipmi/oem/lenovo/config.py +++ b/pyghmi/ipmi/oem/lenovo/config.py @@ -273,6 +273,8 @@ class LenovoFirmwareConfig(object): if lenovo_id == 'iSCSI': # Do not support iSCSI at this time continue + cfglabel = config.find('mriName') + cfglabel = lenovo_id if cfglabel is None else cfglabel.text for group in config.iter("group"): lenovo_group = group.get("ID") for setting in group.iter("setting"): @@ -353,7 +355,8 @@ class LenovoFirmwareConfig(object): default = [] for order in sorted(currentdef): default.append(currentdef[order]) - optionname = "%s.%s" % (lenovo_id, name) + optionname = "%s.%s" % (cfglabel, name) + alias = "%s.%s" % (lenovo_id, name) options[optionname] = dict(current=current, default=default, possible=possible, @@ -370,7 +373,8 @@ class LenovoFirmwareConfig(object): readonly_expression=readonly, hide_expression=hide, sortid=sortid, - lenovo_instance="") + lenovo_instance="", + alias=alias) sortid = sortid + 1 for opt in options: opt = options[opt] diff --git a/pyghmi/ipmi/oem/lenovo/imm.py b/pyghmi/ipmi/oem/lenovo/imm.py index d7cd3e09..73f39142 100644 --- a/pyghmi/ipmi/oem/lenovo/imm.py +++ b/pyghmi/ipmi/oem/lenovo/imm.py @@ -201,6 +201,11 @@ class IMMClient(object): if fnmatch.fnmatch(rkey.lower(), key.lower()): changeset[rkey] = changeset[key] found = True + elif self.fwo[rkey].get('alias', None) != rkey: + calias = self.fwo[rkey]['alias'] + if fnmatch.fnmatch(calias.lower(), key.lower()): + changeset[rkey] = changeset[key] + found = True if found: del changeset[key] else: