InitNAT(plc, data)
 
 def InitNodeLimit(data):
+    if not 'networks' in data: return
+
     # query running network interfaces
     devs = sioc.gifconf()
     ips = dict(zip(devs.values(), devs.keys()))
             # again, or vice-versa.
 
 def InitI2(plc, data):
+    if not 'groups' in data: return
+
     if "Internet2" in data['groups']:
         logger.log("This is an Internet2 node.  Setting rules.")
         i2nodes = []
             os.popen("/sbin/iptables -t mangle " + cmd)
 
 def InitNAT(plc, data):
+    if not 'networks' in data: return
+    
     # query running network interfaces
     devs = sioc.gifconf()
     ips = dict(zip(devs.values(), devs.keys()))
     ipt.commit()
 
 def InitInterfaces(plc, data):
+    if not 'networks' in data: return
+
     sysconfig = "/etc/sysconfig/network-scripts"
 
     # query running network interfaces
     interfaces = {}
     interface = 1
     hostname = data.get('hostname',socket.gethostname())
-    networks = data.get('networks',())
+    networks = data['networks']
     failedToGetSettings = False
     for network in networks:
        logger.log('interface %d: %s'%(interface,network))