diff options
author | Matthew Barth <msbarth@us.ibm.com> | 2017-06-13 13:57:40 -0500 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2017-06-26 22:32:38 +0000 |
commit | bb12c926dca2215bccfbd270da11f0c2b5822878 (patch) | |
tree | 7cf44565c537969da31034445afaf7f5d38f0736 | |
parent | 4af419cd334fa1fc182fe0ba608f984d043df5d9 (diff) | |
download | phosphor-fan-presence-bb12c926dca2215bccfbd270da11f0c2b5822878.tar.gz phosphor-fan-presence-bb12c926dca2215bccfbd270da11f0c2b5822878.zip |
Allow generation of map types in events
Resolves openbmc/openbmc#940
Change-Id: I238cd4a6ef69c1d54a775ad90ee87e6e327b82bd
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
-rwxr-xr-x | control/gen-fan-zone-defs.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/control/gen-fan-zone-defs.py b/control/gen-fan-zone-defs.py index eb33956..adef86a 100755 --- a/control/gen-fan-zone-defs.py +++ b/control/gen-fan-zone-defs.py @@ -115,6 +115,16 @@ const std::vector<ZoneGroup> Manager::_zoneLayouts ''' +def convertToMap(listOfDict): + """ + Converts a list of dictionary entries to a std::map initialization list. + """ + listOfDict = listOfDict.replace('[', '{') + listOfDict = listOfDict.replace(']', '}') + listOfDict = listOfDict.replace(':', ',') + return listOfDict + + def getEventsInZone(zone_num, zone_conditions, events_data): """ Constructs the event entries defined for each zone using the events yaml @@ -172,8 +182,12 @@ def getEventsInZone(zone_num, zone_conditions, events_data): param['type'] = 'size_t' params.append(param) else: - param['value'] = str(e['action'][p]['value']).lower() param['type'] = str(e['action'][p]['type']).lower() + if p != 'map': + param['value'] = str(e['action'][p]['value']).lower() + else: + emap = convertToMap(str(e['action'][p]['value'])) + param['value'] = param['type'] + emap params.append(param) action['parameters'] = params event['action'] = action |