# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2006 The Trustees of Princeton University
#
-# $Id: Nodes.py,v 1.20 2006/11/09 19:43:55 mlhuang Exp $
+# $Id: Nodes.py,v 1.24 2006/11/25 09:35:36 thierry Exp $
#
from types import StringTypes
'node_id': Parameter(int, "Node identifier"),
'hostname': Parameter(str, "Fully qualified hostname", max = 255),
'site_id': Parameter(int, "Site at which this node is located"),
- 'peer_id': Parameter(int, "Peer at which this node is managed", nullok = True),
'boot_state': Parameter(str, "Boot state", max = 20),
'model': Parameter(str, "Make and model of the actual machine", max = 255, nullok = True),
'boot_nonce': Parameter(str, "(Admin only) Random value generated by the node at last boot", max = 128),
'slice_ids': Parameter([int], "List of slices on this node"),
'pcu_ids': Parameter([int], "List of PCUs that control this node"),
'ports': Parameter([int], "List of PCU ports that this node is connected to"),
+ 'peer_id': Parameter(int, "Peer at which this node is managed", nullok = True),
}
- # foreign attributes management
- # the key to track remote objects
- foreign_key = 'hostname'
- # the fields that get verbatim copied from foreign objects
+ # for Cache
+ class_key = 'hostname'
foreign_fields = ['boot_state','model','version','date_created','last_updated']
+ foreign_xrefs = {
+ # in this case, we dont need the 'table' but Cache will look it up, so...
+ 'Site' : { 'field' : 'site_id' , 'table' : 'unused' } ,
+ }
def validate_hostname(self, hostname):
if not valid_hostname(hostname):