Utility for getting a slice's vnet (veeeery useful)
authorClaudio-Daniel Freire <claudio-daniel.freire@inria.fr>
Tue, 4 Oct 2011 07:29:06 +0000 (09:29 +0200)
committerClaudio-Daniel Freire <claudio-daniel.freire@inria.fr>
Tue, 4 Oct 2011 07:29:06 +0000 (09:29 +0200)
src/nepi/testbeds/planetlab/execute.py
src/nepi/testbeds/planetlab/util.py

index 0b1010d..da5f2f8 100644 (file)
@@ -27,6 +27,7 @@ import shutil
 import logging
 import metadata
 import weakref
+import util as plutil
 
 class TempKeyError(Exception):
     pass
@@ -88,15 +89,9 @@ class TestbedController(testbed_impl.TestbedController):
     @property
     def vsys_vnet(self):
         if not hasattr(self, '_vsys_vnet'):
-            slicetags = self.plapi.GetSliceTags(
-                name = self.slicename,
-                tagname = 'vsys_vnet',
-                fields=('value',))
-            if slicetags:
-                self._vsys_vnet = slicetags[0]['value']
-            else:
-                # If it wasn't found, don't remember this failure, keep trying
-                return None
+            self._vsys_vnet = plutil.getVnet(
+                self.plapi,
+                self.slicename)
         return self._vsys_vnet
     
     def _load_blacklist(self):
index 1fd2880..41b32aa 100644 (file)
@@ -27,9 +27,9 @@ import logging
 import metadata
 import weakref
 
-def getAPI(user, pass_):
+def getAPI(user, pass_, **kw):
     import plcapi
-    return plcapi.PLCAPI(username=user, password=pass_)
+    return plcapi.PLCAPI(username=user, password=pass_, **kw)
 
 def filterBlacklist(candidates):
     blpath = environ.homepath('plblacklist')
@@ -62,6 +62,16 @@ def appendBlacklist(node_ids):
     finally:
         bl.close()
 
+def getVnet(api, slicename):
+    slicetags = api.GetSliceTags(
+        name = slicename,
+        tagname = 'vsys_vnet',
+        fields=('value',))
+    if slicetags:
+        return slicetags[0]['value']
+    else:
+        return None
+
 def getNodes(api, num, **constraints):
     # Now do the backtracking search for a suitable solution
     # First with existing slice nodes