# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2006 The Trustees of Princeton University
#
-# $Id: NodeNetworks.py,v 1.15 2006/11/09 19:43:55 mlhuang Exp $
+# $Id: NodeNetworks.py,v 1.18 2007/09/12 17:52:27 tmack Exp $
#
from types import StringTypes
table_name = 'nodenetworks'
primary_key = 'nodenetwork_id'
+ join_tables = ['nodenetwork_setting']
fields = {
'nodenetwork_id': Parameter(int, "Node interface identifier"),
'method': Parameter(str, "Addressing method (e.g., 'static' or 'dhcp')"),
'hostname': Parameter(str, "(Optional) Hostname", nullok = True),
'node_id': Parameter(int, "Node associated with this interface"),
'is_primary': Parameter(bool, "Is the primary interface for this node"),
+ 'nodenetwork_setting_ids' : Parameter([int], "List of nodenetwork settings"),
}
def validate_method(self, method):
validate_dns1 = validate_ip
validate_dns2 = validate_ip
+ def validate_bwlimit(self, bwlimit):
+ if not bwlimit:
+ return bwlimit
+
+ if bwlimit < 500000:
+ raise PLCInvalidArgument, 'Minimum bw is 500 kbs'
+
+ return bwlimit
+
def validate_hostname(self, hostname):
# Optional
if not hostname:
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 view_nodenetworks WHERE True" % \
", ".join(self.columns)
if nodenetwork_filter is not None:
nodenetwork_filter = Filter(NodeNetwork.fields, {'nodenetwork_id': nodenetwork_filter})
elif isinstance(nodenetwork_filter, dict):
nodenetwork_filter = Filter(NodeNetwork.fields, nodenetwork_filter)
+ elif isinstance(nodenetwork_filter, int):
+ nodenetwork_filter = Filter(NodeNetwork.fields, {'nodenetwork_id': [nodenetwork_filter]})
+ else:
+ raise PLCInvalidArgument, "Wrong node network filter %r"%nodenetwork_filter
sql += " AND (%s)" % nodenetwork_filter.sql(api)
self.selectall(sql)