combine node-preview and node-floppy
[plcapi.git] / PLC / NodeNetworks.py
index 47e091d..f63ca23 100644 (file)
@@ -182,7 +182,12 @@ class NodeNetwork(Row):
             # DHCP!
 
         elif method == "static":
-            for key in ['ip', 'gateway', 'network', 'broadcast', 'netmask', 'dns1']:
+            if 'is_primary' in self and self['is_primary'] is True:
+                for key in ['gateway', 'dns1']:
+                    if key not in self or not self[key]:
+                        raise PLCInvalidArgument, "For static method primary network, %s is required" % key
+                    globals()[key] = self[key]
+            for key in ['ip', 'network', 'broadcast', 'netmask']:
                 if key not in self or not self[key]:
                     raise PLCInvalidArgument, "For static method, %s is required" % key
                 globals()[key] = self[key]
@@ -192,7 +197,7 @@ class NodeNetwork(Row):
             if not in_same_network(broadcast, network, netmask):
                 raise PLCInvalidArgument, "Broadcast address %s is inconsistent with network %s/%s" % \
                       (broadcast, network, netmask)
-            if not in_same_network(ip, gateway, netmask):
+            if 'gateway' in globals() and not in_same_network(ip, gateway, netmask):
                 raise PLCInvalidArgument, "Gateway %s is not reachable from %s/%s" % \
                       (gateway, ip, netmask)