From: Claudio-Daniel Freire Date: Tue, 4 Oct 2011 07:29:06 +0000 (+0200) Subject: Utility for getting a slice's vnet (veeeery useful) X-Git-Tag: nepi-3.0.0~175 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=581498c0051b5cd2ebcea76c15de08a172b004aa;p=nepi.git Utility for getting a slice's vnet (veeeery useful) --- diff --git a/src/nepi/testbeds/planetlab/execute.py b/src/nepi/testbeds/planetlab/execute.py index 0b1010d8..da5f2f86 100644 --- a/src/nepi/testbeds/planetlab/execute.py +++ b/src/nepi/testbeds/planetlab/execute.py @@ -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): diff --git a/src/nepi/testbeds/planetlab/util.py b/src/nepi/testbeds/planetlab/util.py index 1fd28801..41b32aa4 100644 --- a/src/nepi/testbeds/planetlab/util.py +++ b/src/nepi/testbeds/planetlab/util.py @@ -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