From bb12c926dca2215bccfbd270da11f0c2b5822878 Mon Sep 17 00:00:00 2001 From: Matthew Barth Date: Tue, 13 Jun 2017 13:57:40 -0500 Subject: Allow generation of map types in events Resolves openbmc/openbmc#940 Change-Id: I238cd4a6ef69c1d54a775ad90ee87e6e327b82bd Signed-off-by: Matthew Barth --- control/gen-fan-zone-defs.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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 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 -- cgit v1.2.1