Fix for VINI, due to change of site ID in RSpec to site's login base.
authorAndy Bavier <acb@acb-imac.cs.princeton.edu>
Fri, 4 Feb 2011 20:13:46 +0000 (15:13 -0500)
committerAndy Bavier <acb@acb-imac.cs.princeton.edu>
Fri, 4 Feb 2011 20:13:46 +0000 (15:13 -0500)
The site ID in the RSpec has been changed to be the site's login base.
This afftected the lookupSite() function, which AFAIK is only used by
VINI's Aggregate Manager.

sfa/plc/network.py

index 41bae48..dd0b4b4 100644 (file)
@@ -327,12 +327,25 @@ class Network:
         self.tags = self.get_slice_tags(api)
         self.tagtypes = self.get_tag_types(api)
         self.slice = None
+        self.sitemap = {}
+        for s in self.sites:
+            site = self.sites[s]
+            self.sitemap[site.idtag] = site.id
+
+    def lookupSiteIdtag(self, name):
+        """ Lookup site id from name """
+        val = None
+        try:
+            val = self.sitemap[name]
+        except:
+            raise InvalidRSpec("site name '%s' not found" % name)
+        return val
     
     def lookupSite(self, id):
         """ Lookup site based on id or idtag value """
         val = None
         if isinstance(id, basestring):
-            id = int(id.lstrip('s'))
+            id = self.lookupSiteIdtag(id)
         try:
             val = self.sites[id]
         except: