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 = []