adopted as reference
[plcapi.git] / PLC / Nodes.py
index bf460ca..c8f0db7 100644 (file)
@@ -4,7 +4,7 @@
 # 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
@@ -43,7 +43,6 @@ class Node(Row):
         '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),
@@ -60,13 +59,16 @@ class Node(Row):
         '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):