Allow event groups to be empty
Some events may not require a group to be provided. Also, this will
allow events to define the group(s) to be used by the actions directly
on the action.
Ex) A case of defining groups on the event's actions may be that a set
of actions are run by the same event trigger but have parameters
specific to the different groups.
Change-Id: Icbbaaf4cd36b97c30ba33164ae75dbd687a779a7
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
diff --git a/control/gen-fan-zone-defs.py b/control/gen-fan-zone-defs.py
index 30acf47..0539ef9 100755
--- a/control/gen-fan-zone-defs.py
+++ b/control/gen-fan-zone-defs.py
@@ -327,23 +327,24 @@
"""
method = {}
methods = []
- # Use the first group member for retrieving the type
- member = eGrps[0]['members'][0]
- if ('method' in eTrig) and \
- (eTrig['method'] is not None):
- # Add method parameters
- eMethod = next(m for m in events['methods']
- if m['name'] == eTrig['method'])
- method['method'] = eMethod['name']
- method['mparams'] = getParameters(
- member, eGrps, eMethod, events)
+ if (len(eGrps) > 0):
+ # Use the first group member for retrieving the type
+ member = eGrps[0]['members'][0]
+ if ('method' in eTrig) and \
+ (eTrig['method'] is not None):
+ # Add method parameters
+ eMethod = next(m for m in events['methods']
+ if m['name'] == eTrig['method'])
+ method['method'] = eMethod['name']
+ method['mparams'] = getParameters(
+ member, eGrps, eMethod, events)
- # Add handler parameters
- eHandler = next(h for h in events['handlers']
- if h['name'] == eTrig['handler'])
- method['handler'] = eHandler['name']
- method['hparams'] = getParameters(
- member, eGrps, eHandler, events)
+ # Add handler parameters
+ eHandler = next(h for h in events['handlers']
+ if h['name'] == eTrig['handler'])
+ method['handler'] = eHandler['name']
+ method['hparams'] = getParameters(
+ member, eGrps, eHandler, events)
methods.append(method)
@@ -494,10 +495,7 @@
event = {}
# Add set speed event groups
- grps = getGroups(zone_num, zone_conditions, e, events_data)
- if not grps:
- return
- event['groups'] = grps
+ event['groups'] = getGroups(zone_num, zone_conditions, e, events_data)
# Add optional set speed actions and function parameters
event['action'] = []
@@ -534,10 +532,10 @@
"""
precond = {}
# Add set speed event precondition group
- grps = getGroups(zNum, zCond, event['precondition'], events_data)
- if not grps:
- return
- precond['pcgrps'] = grps
+ precond['pcgrps'] = getGroups(zNum,
+ zCond,
+ event['precondition'],
+ events_data)
# Add set speed event precondition actions
pc = []