git://git.onelab.eu
/
plcapi.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- remove PLCCheckLocal functions, be more explicit about the error in
[plcapi.git]
/
PLC
/
NodeNetworks.py
diff --git
a/PLC/NodeNetworks.py
b/PLC/NodeNetworks.py
index
1d4518b
..
8733f8d
100644
(file)
--- a/
PLC/NodeNetworks.py
+++ b/
PLC/NodeNetworks.py
@@
-4,7
+4,7
@@
# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2006 The Trustees of Princeton University
#
# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2006 The Trustees of Princeton University
#
-# $Id: NodeNetworks.py,v 1.1
3 2006/11/08 22:59:34
mlhuang Exp $
+# $Id: NodeNetworks.py,v 1.1
5 2006/11/09 19:43:55
mlhuang Exp $
#
from types import StringTypes
#
from types import StringTypes
@@
-67,18
+67,20
@@
class NodeNetwork(Row):
}
def validate_method(self, method):
}
def validate_method(self, method):
- if method not in NetworkMethods(self.api):
- raise PLCInvalidArgument, "Invalid addressing method"
+ network_methods = [row['method'] for row in NetworkMethods(self.api)]
+ if method not in network_methods:
+ raise PLCInvalidArgument, "Invalid addressing method %s"%method
return method
def validate_type(self, type):
return method
def validate_type(self, type):
- if type not in NetworkTypes(self.api):
- raise PLCInvalidArgument, "Invalid address type"
+ network_types = [row['type'] for row in NetworkTypes(self.api)]
+ if type not in network_types:
+ raise PLCInvalidArgument, "Invalid address type %s"%type
return type
def validate_ip(self, ip):
if ip and not valid_ip(ip):
return type
def validate_ip(self, ip):
if ip and not valid_ip(ip):
- raise PLCInvalidArgument, "Invalid IP address
" +
ip
+ raise PLCInvalidArgument, "Invalid IP address
%s"%
ip
return ip
def validate_mac(self, mac):
return ip
def validate_mac(self, mac):
@@
-96,7
+98,7
@@
class NodeNetwork(Row):
bytes[i] = "%02x" % byte
mac = ":".join(bytes)
except:
bytes[i] = "%02x" % byte
mac = ":".join(bytes)
except:
- raise PLCInvalidArgument, "Invalid MAC address
"
+ raise PLCInvalidArgument, "Invalid MAC address
%s"%mac
return mac
return mac
@@
-113,14
+115,14
@@
class NodeNetwork(Row):
return hostname
if not PLC.Nodes.valid_hostname(hostname):
return hostname
if not PLC.Nodes.valid_hostname(hostname):
- raise PLCInvalidArgument, "Invalid hostname
"
+ raise PLCInvalidArgument, "Invalid hostname
%s"%hostname
return hostname
def validate_node_id(self, node_id):
nodes = PLC.Nodes.Nodes(self.api, [node_id])
if not nodes:
return hostname
def validate_node_id(self, node_id):
nodes = PLC.Nodes.Nodes(self.api, [node_id])
if not nodes:
- raise PLCInvalidArgument, "No such node
"
+ raise PLCInvalidArgument, "No such node
%d"%node_id
return node_id
return node_id
@@
-130,15
+132,16
@@
class NodeNetwork(Row):
"""
if is_primary:
"""
if is_primary:
- nodes = PLC.Nodes.Nodes(self.api, [self['node_id']])
.values()
+ nodes = PLC.Nodes.Nodes(self.api, [self['node_id']])
if not nodes:
if not nodes:
- raise PLCInvalidArgument, "No such node
"
+ raise PLCInvalidArgument, "No such node
%d"%node_id
node = nodes[0]
if node['nodenetwork_ids']:
conflicts = NodeNetworks(self.api, node['nodenetwork_ids'])
node = nodes[0]
if node['nodenetwork_ids']:
conflicts = NodeNetworks(self.api, node['nodenetwork_ids'])
- for nodenetwork_id, nodenetwork in conflicts.iteritems():
- if ('nodenetwork_id' not in self or self['nodenetwork_id'] != nodenetwork_id) and \
+ for nodenetwork in conflicts:
+ if ('nodenetwork_id' not in self or \
+ self['nodenetwork_id'] != nodenetwork['nodenetwork_id']) and \
nodenetwork['is_primary']:
raise PLCInvalidArgument, "Can only set one primary interface per node"
nodenetwork['is_primary']:
raise PLCInvalidArgument, "Can only set one primary interface per node"
@@
-192,11
+195,11
@@
class NodeNetworks(Table):
database.
"""
database.
"""
- def __init__(self, api, nodenetwork_filter = None):
- Table.__init__(self, api, NodeNetwork)
+ def __init__(self, api, nodenetwork_filter = None
, columns = None
):
+ Table.__init__(self, api, NodeNetwork
, columns
)
sql = "SELECT %s FROM nodenetworks WHERE True" % \
sql = "SELECT %s FROM nodenetworks WHERE True" % \
- ", ".join(
NodeNetwork.field
s)
+ ", ".join(
self.column
s)
if nodenetwork_filter is not None:
if isinstance(nodenetwork_filter, (list, tuple, set)):
if nodenetwork_filter is not None:
if isinstance(nodenetwork_filter, (list, tuple, set)):