summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Barth <msbarth@us.ibm.com>2017-09-15 13:05:30 -0500
committerMatthew Barth <msbarth@us.ibm.com>2017-09-28 09:26:30 -0500
commit4c04a016faa989bbc1ad4334b164535f017954b1 (patch)
treeda7f18fa03a764cdd0128a2a013e8a1085b18d41
parentb280bfa4286c708b4bb65d82e3b41cc883b279f0 (diff)
downloadphosphor-fan-presence-4c04a016faa989bbc1ad4334b164535f017954b1.tar.gz
phosphor-fan-presence-4c04a016faa989bbc1ad4334b164535f017954b1.zip
Allow no parameter action functions
Action functions are not required to have parameters. Change-Id: I04bf8294d9be9141cc7d8d3183628c94b777154a Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
-rwxr-xr-xcontrol/gen-fan-zone-defs.py63
1 files changed, 41 insertions, 22 deletions
diff --git a/control/gen-fan-zone-defs.py b/control/gen-fan-zone-defs.py
index a95920b..d11ff35 100755
--- a/control/gen-fan-zone-defs.py
+++ b/control/gen-fan-zone-defs.py
@@ -28,15 +28,19 @@ Group{
},
std::vector<Action>{
%for a in event['action']:
+%if len(a['parameters']) != 0:
make_action(action::${a['name']}(
+%else:
+make_action(action::${a['name']}
+%endif
%for i, p in enumerate(a['parameters']):
%if (i+1) != len(a['parameters']):
static_cast<${p['type']}>(${p['value']}),
%else:
- static_cast<${p['type']}>(${p['value']})
+ static_cast<${p['type']}>(${p['value']}))
%endif
%endfor
-)),
+),
%endfor
},
Timer{
@@ -144,8 +148,13 @@ const std::vector<ZoneGroup> Manager::_zoneLayouts
},
std::vector<Action>{
%for i, a in enumerate(event['pc']['pcact']):
+ %if len(a['params']) != 0:
make_action(
precondition::${a['name']}(
+ %else:
+ make_action(
+ precondition::${a['name']}
+ %endif
%for p in a['params']:
${p['type']}${p['open']}
%for j, v in enumerate(p['values']):
@@ -158,7 +167,11 @@ const std::vector<ZoneGroup> Manager::_zoneLayouts
${p['close']},
%endfor
%if (i+1) != len(event['pc']['pcact']):
+ %if len(a['params']) != 0:
)),
+ %else:
+ ),
+ %endif
%endif
%endfor
std::vector<SetSpeedEvent>{
@@ -173,7 +186,11 @@ const std::vector<ZoneGroup> Manager::_zoneLayouts
%endif
%if ('pc' in event) and (event['pc'] is not None):
}
+ %if len(event['pc']['pcact'][-1]['params']) != 0:
)),
+ %else:
+ ),
+ %endif
},
Timer{
${event['pc']['pctime']['interval']}
@@ -275,27 +292,29 @@ def getEvent(zone_num, zone_conditions, e, events_data):
if a['name'] == eActions['name'])
actions['name'] = eAction['name']
params = []
- for p in eAction['parameters']:
- param = {}
- if type(eActions[p]) is not dict:
- if p == 'property':
- param['value'] = str(eActions[p]).lower()
- param['type'] = str(
- e['property']['type']).lower()
- else:
- # Default type to 'size_t' when not given
- param['value'] = str(eActions[p]).lower()
- param['type'] = 'size_t'
- params.append(param)
- else:
- param['type'] = str(eActions[p]['type']).lower()
- if p != 'map':
- param['value'] = str(
- eActions[p]['value']).lower()
+ if ('parameters' in eAction) and \
+ (eAction['parameters'] is not None):
+ for p in eAction['parameters']:
+ param = {}
+ if type(eActions[p]) is not dict:
+ if p == 'property':
+ param['value'] = str(eActions[p]).lower()
+ param['type'] = str(
+ e['property']['type']).lower()
+ else:
+ # Default type to 'size_t' when not given
+ param['value'] = str(eActions[p]).lower()
+ param['type'] = 'size_t'
+ params.append(param)
else:
- emap = convertToMap(str(eActions[p]['value']))
- param['value'] = param['type'] + emap
- params.append(param)
+ param['type'] = str(eActions[p]['type']).lower()
+ if p != 'map':
+ param['value'] = str(
+ eActions[p]['value']).lower()
+ else:
+ emap = convertToMap(str(eActions[p]['value']))
+ param['value'] = param['type'] + emap
+ params.append(param)
actions['parameters'] = params
action.append(actions)
event['action'] = action
OpenPOWER on IntegriCloud