summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Barth <msbarth@us.ibm.com>2017-06-13 13:57:40 -0500
committerPatrick Williams <patrick@stwcx.xyz>2017-06-26 22:32:38 +0000
commitbb12c926dca2215bccfbd270da11f0c2b5822878 (patch)
tree7cf44565c537969da31034445afaf7f5d38f0736
parent4af419cd334fa1fc182fe0ba608f984d043df5d9 (diff)
downloadphosphor-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-xcontrol/gen-fan-zone-defs.py16
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
OpenPOWER on IntegriCloud