Removed version number from testbed file names. Only 1 version permitted at the time.
authorAlina Quereilhac <alina.quereilhac@inria.fr>
Sun, 17 Jul 2011 16:27:04 +0000 (18:27 +0200)
committerAlina Quereilhac <alina.quereilhac@inria.fr>
Sun, 17 Jul 2011 16:27:04 +0000 (18:27 +0200)
50 files changed:
examples/roads09.py
examples/vlc_wireless_netns_ns3.py
examples/wimax_ns3.py
src/nepi/core/design.py
src/nepi/core/execute.py
src/nepi/core/metadata.py
src/nepi/core/testbed_impl.py
src/nepi/testbeds/netns/__init__.py
src/nepi/testbeds/netns/constants.py
src/nepi/testbeds/netns/execute.py
src/nepi/testbeds/netns/metadata.py [moved from src/nepi/testbeds/netns/metadata_v01.py with 98% similarity]
src/nepi/testbeds/ns3/__init__.py
src/nepi/testbeds/ns3/attributes_metadata.py [moved from src/nepi/testbeds/ns3/attributes_metadata_v3_9.py with 99% similarity]
src/nepi/testbeds/ns3/connection_metadata.py [moved from src/nepi/testbeds/ns3/connection_metadata_v3_9.py with 100% similarity]
src/nepi/testbeds/ns3/constants.py
src/nepi/testbeds/ns3/execute.py
src/nepi/testbeds/ns3/factories_metadata.py [moved from src/nepi/testbeds/ns3/factories_metadata_v3_9.py with 100% similarity]
src/nepi/testbeds/ns3/metadata.py [new file with mode: 0644]
src/nepi/testbeds/ns3/metadata_v3_9.py [deleted file]
src/nepi/testbeds/ns3/traces_metadata.py [moved from src/nepi/testbeds/ns3/traces_metadata_v3_9.py with 100% similarity]
src/nepi/testbeds/planetlab/__init__.py
src/nepi/testbeds/planetlab/constants.py
src/nepi/testbeds/planetlab/execute.py
src/nepi/testbeds/planetlab/metadata.py [moved from src/nepi/testbeds/planetlab/metadata_v01.py with 99% similarity]
src/nepi/util/parser/base.py
src/nepi/util/proxy.py
test/core/design.py
test/core/execute.py
test/core/integration.py
test/lib/mock/__init__.py
test/lib/mock/constants.py
test/lib/mock/execute.py
test/lib/mock/metadata.py [moved from test/lib/mock/metadata_v01.py with 96% similarity]
test/lib/mock2/__init__.py
test/lib/mock2/constants.py
test/lib/mock2/execute.py
test/lib/mock2/metadata.py [moved from test/lib/mock2/metadata_v01.py with 96% similarity]
test/testbeds/netns/design.py
test/testbeds/netns/execute.py
test/testbeds/netns/integration.py
test/testbeds/ns3/design.py
test/testbeds/ns3/execute.py
test/testbeds/ns3/execute2.py
test/testbeds/ns3/integration.py
test/testbeds/planetlab/design.py
test/testbeds/planetlab/execute.py
test/testbeds/planetlab/integration.py
test/testbeds/planetlab/integration_cross.py
test/testbeds/planetlab/integration_multi.py
test/testbeds/planetlab/integration_ns3.py

index 1c261d1..65dfc31 100644 (file)
@@ -24,7 +24,6 @@ def pl_auth():
 
 class Roads09Ns3PLExample(object):
     testbed_id = "planetlab"
-    testbed_version = "01"
     slicename = "inria_nepi"
     plchost = "nepiplc.pl.sophia.inria.fr"
     
@@ -56,7 +55,6 @@ class Roads09Ns3PLExample(object):
 
     def make_experiment_desc(self):
         testbed_id = self.testbed_id
-        testbed_version = self.testbed_version
         slicename = self.slicename
         plchost = self.plchost
         pl_ssh_key = os.environ.get(
@@ -65,7 +63,7 @@ class Roads09Ns3PLExample(object):
         pl_user, pl_pwd = pl_auth()
 
         exp_desc = ExperimentDescription()
-        pl_provider = FactoriesProvider(testbed_id, testbed_version)
+        pl_provider = FactoriesProvider(testbed_id)
         pl_desc = exp_desc.add_testbed_description(pl_provider)
         pl_desc.set_attribute_value("homeDirectory", self.root_dir)
         pl_desc.set_attribute_value("slice", slicename)
@@ -78,7 +76,6 @@ class Roads09Ns3PLExample(object):
 
     def make_ns_in_pl(self, pl, exp, node1, iface1, root):
         ns3_testbed_id = "ns3"
-        ns3_testbed_version = "3_9_RC3"
         
         # Add NS3 support in node1
         plnepi = pl.create("NepiDependency")
@@ -87,7 +84,7 @@ class Roads09Ns3PLExample(object):
         plns3.connector("node").connect(node1.connector("deps"))
 
         # Create NS3 testbed running in node1
-        ns3_provider = FactoriesProvider(ns3_testbed_id, ns3_testbed_version)
+        ns3_provider = FactoriesProvider(ns3_testbed_id)
         ns3_desc = exp.add_testbed_description(ns3_provider)
         ns3_desc.set_attribute_value("rootDirectory", root)
         ns3_desc.set_attribute_value("SimulatorImplementationType", "ns3::RealtimeSimulatorImpl")
index 1ecea3f..93138ca 100644 (file)
@@ -119,9 +119,8 @@ class VlcWirelessNetnsNs3Example(object):
         exp_desc = ExperimentDescription()
 
         ## NS3 Testbed instance description ##
-        testbed_version = "3_9"
         testbed_id = "ns3"
-        ns3_provider = FactoriesProvider(testbed_id, testbed_version)
+        ns3_provider = FactoriesProvider(testbed_id)
         ns3_desc = exp_desc.add_testbed_description(ns3_provider)
         ns3_desc.set_attribute_value("homeDirectory", self.root_dir)
         ns3_desc.set_attribute_value("SimulatorImplementationType", "ns3::RealtimeSimulatorImpl")
@@ -147,9 +146,8 @@ class VlcWirelessNetnsNs3Example(object):
         phy2.connector("chan").connect(wifichan.connector("phys"))
 
         ## NETNS testbed description 1 ##
-        testbed_version = "01"
         testbed_id = "netns"
-        netns_provider = FactoriesProvider(testbed_id, testbed_version)
+        netns_provider = FactoriesProvider(testbed_id)
         netns_desc1 = exp_desc.add_testbed_description(netns_provider)
         netns_desc1.set_attribute_value("homeDirectory", self.root_dir)
         #netns_desc1.set_attribute_value("enableDebug", True)
index f8cdece..1f3a063 100644 (file)
@@ -78,9 +78,8 @@ class Roads09Example(object):
     def run(self):
         exp_desc = ExperimentDescription()
 
-        testbed_version = "3_9"
         testbed_id = "ns3"
-        ns3_provider = FactoriesProvider(testbed_id, testbed_version)
+        ns3_provider = FactoriesProvider(testbed_id)
         ns3_desc = exp_desc.add_testbed_description(ns3_provider)
         ns3_desc.set_attribute_value("homeDirectory", self.root_dir)
         ns3_desc.set_attribute_value("StopTime", "7.1s")
index f69959f..2aad756 100644 (file)
@@ -249,16 +249,17 @@ class Box(AttributesMap, Taggable):
         self._connectors = self._traces = self._factory_attributes = None
 
 class FactoriesProvider(object):
-    def __init__(self, testbed_id, testbed_version):
+    def __init__(self, testbed_id):
         super(FactoriesProvider, self).__init__()
         self._testbed_id = testbed_id
-        self._testbed_version = testbed_version
         self._factories = dict()
 
-        metadata = Metadata(testbed_id, testbed_version
+        metadata = Metadata(testbed_id) 
         for factory in metadata.build_factories():
             self.add_factory(factory)
 
+        self._testbed_version = metadata.testbed_version
+
     @property
     def testbed_id(self):
         return self._testbed_id
@@ -289,7 +290,7 @@ class TestbedDescription(AttributesMap):
         self._boxes = dict()
         self.graphical_info = GraphicalInfo()
 
-        metadata = Metadata(provider.testbed_id, provider.testbed_version)
+        metadata = Metadata(provider.testbed_id)
         for attr in metadata.testbed_attributes().attributes:
             self.add_attribute(attr.name, attr.help, attr.type, attr.value, 
                     attr.range, attr.allowed, attr.flags, 
index 70df1c7..76d2680 100644 (file)
@@ -749,8 +749,8 @@ class ExperimentController(object):
             # force recovery mode 
             deployment_config.set_attribute_value("recover",recover)
         
-        testbed = proxy.create_testbed_controller(testbed_id, 
-                testbed_version, deployment_config)
+        testbed = proxy.create_testbed_controller(testbed_id, testbed_version,
+                deployment_config)
         for (name, value) in data.get_attribute_data(guid):
             testbed.defer_configure(name, value)
         self._testbeds[guid] = testbed
index 4148d0f..83b408e 100644 (file)
@@ -11,7 +11,7 @@ from nepi.util.constants import ATTR_NEPI_TESTBED_ENVIRONMENT_SETUP, \
         DeploymentConfiguration as DC, \
         AttributeCategories as AC
 
-class VersionedMetadataInfo(object):
+class MetadataInfo(object):
     @property
     def connector_types(self):
         """ dictionary of dictionaries with allowed connection information.
@@ -155,6 +155,16 @@ class VersionedMetadataInfo(object):
         """
         raise NotImplementedError
 
+    @property
+    def testbed_id(self):
+        """ ID for the testbed """
+        raise NotImplementedError
+
+    @property
+    def testbed_version(self):
+        """ version for the testbed """
+        raise NotImplementedError
+
 class Metadata(object):
     # These attributes should be added to all boxes
     STANDARD_BOX_ATTRIBUTES = dict({
@@ -406,11 +416,13 @@ class Metadata(object):
     
     STANDARD_TESTBED_ATTRIBUTES.update(DEPLOYMENT_ATTRIBUTES.copy())
 
-    def __init__(self, testbed_id, version):
-        self._version = version
+    def __init__(self, testbed_id):
         self._testbed_id = testbed_id
-        metadata_module = self._load_versioned_metadata_module()
-        self._metadata = metadata_module.VersionedMetadataInfo()
+        metadata_module = self._load_metadata_module()
+        self._metadata = metadata_module.MetadataInfo()
+        if testbed_id != self._metadata.testbed_id:
+            raise RuntimeError("Bad testbed id. Asked for %s, got %s" % \
+                    (testbed_id, self._metadata.testbed_id ))
 
     @property
     def create_order(self):
@@ -432,6 +444,14 @@ class Metadata(object):
     def start_order(self):
         return self._metadata.start_order
 
+    @property
+    def testbed_version(self):
+        return self._metadata.testbed_version
+
+    @property
+    def testbed_id(self):
+        return self._testbed_id
+
     def testbed_attributes(self):
         attributes = AttributesMap()
         testbed_attributes = self._testbed_attributes()
@@ -472,9 +492,8 @@ class Metadata(object):
             factories.append(factory)
         return factories
 
-    def _load_versioned_metadata_module(self):
-        mod_name = "nepi.testbeds.%s.metadata_v%s" % (self._testbed_id.lower(),
-                self._version)
+    def _load_metadata_module(self):
+        mod_name = "nepi.testbeds.%s.metadata" % (self._testbed_id.lower())
         if not mod_name in sys.modules:
             __import__(mod_name)
         return sys.modules[mod_name]
index 336da50..8b49c8e 100644 (file)
@@ -40,7 +40,10 @@ class TestbedController(execute.TestbedController):
         # testbed element instances
         self._elements = dict()
 
-        self._metadata = Metadata(self._testbed_id, self._testbed_version)
+        self._metadata = Metadata(self._testbed_id)
+        if self._metadata.testbed_version != testbed_version:
+            raise RuntimeError("Bad testbed version on testbed %s. Asked for %s, got %s" % \
+                    (testbed_id, testbed_version, self._metadata.testbed_version))
         for factory in self._metadata.build_factories():
             self._factories[factory.factory_id] = factory
         self._attributes = self._metadata.testbed_attributes()
index cf04252..a30e0a9 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-from constants import TESTBED_ID
+from constants import TESTBED_ID, TESTBED_ID
 from execute import TestbedController 
 
index 7f44537..119891c 100644 (file)
@@ -2,4 +2,5 @@
 # -*- coding: utf-8 -*-
 
 TESTBED_ID = "netns"
+TESTBED_VERSION = "0.1"
 
index 1072c94..f9e330f 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-from constants import TESTBED_ID
+from constants import TESTBED_ID, TESTBED_VERSION
 from nepi.core import testbed_impl
 from nepi.util.constants import TIME_NOW
 import os
@@ -48,8 +48,8 @@ class TestbedController(testbed_impl.TestbedController):
             finally:
                 processcond.release()
     
-    def __init__(self, testbed_version):
-        super(TestbedController, self).__init__(TESTBED_ID, testbed_version)
+    def __init__(self):
+        super(TestbedController, self).__init__(TESTBED_ID, TESTBED_VERSION)
         self._netns = None
         self._home_directory = None
         self._traces = dict()
similarity index 98%
rename from src/nepi/testbeds/netns/metadata_v01.py
rename to src/nepi/testbeds/netns/metadata.py
index 2e10da1..7c46f7a 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-from constants import TESTBED_ID
+from constants import TESTBED_ID, TESTBED_VERSION
 from nepi.core import metadata
 from nepi.core.attributes import Attribute
 from nepi.util import tags, validation
@@ -550,7 +550,7 @@ testbed_attributes = dict({
             }),
     })
 
-class VersionedMetadataInfo(metadata.VersionedMetadataInfo):
+class MetadataInfo(metadata.MetadataInfo):
     @property
     def connector_types(self):
         return connector_types
@@ -583,3 +583,11 @@ class VersionedMetadataInfo(metadata.VersionedMetadataInfo):
     def testbed_attributes(self):
         return testbed_attributes
 
+    @property
+    def testbed_id(self):
+        return TESTBED_ID
+
+    @property
+    def testbed_version(self):
+        return TESTBED_VERSION
+
index cf04252..1ea99bd 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-from constants import TESTBED_ID
+from constants import TESTBED_ID, TESTBED_VERSION
 from execute import TestbedController 
 
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-from factories_metadata_v3_9 import wifi_standards, l4_protocols, \
+from factories_metadata import wifi_standards, l4_protocols, \
     service_flow_direction, service_flow_scheduling_type
 import validation as ns3_validation
 from nepi.core.attributes import Attribute
index fe891bf..aa5a3bd 100644 (file)
@@ -2,4 +2,5 @@
 # -*- coding: utf-8 -*-
 
 TESTBED_ID = "ns3"
+TESTBED_VERSION = "3.9"
 
index a0c1b66..6d246e9 100644 (file)
@@ -3,7 +3,7 @@
 
 from nepi.core import testbed_impl
 from nepi.core.attributes import Attribute
-from constants import TESTBED_ID
+from constants import TESTBED_ID, TESTBED_VERSION
 from nepi.util.constants import TIME_NOW, TestbedStatus as TS
 import os
 import sys
@@ -13,19 +13,34 @@ import socket
 import weakref
 
 def init():
-        if 'ns3' in sys.modules:
-            return
+    if 'ns3' in sys.modules:
+        return
 
-        import ctypes
-        import imp
+    import ctypes
+    import imp
 
-       bindings = os.environ["NEPI_NS3BINDINGS"] \
+    bindings = os.environ["NEPI_NS3BINDINGS"] \
                if "NEPI_NS3BINDINGS" in os.environ else None
-       libfile = os.environ["NEPI_NS3LIBRARY"] \
+    libfile = os.environ["NEPI_NS3LIBRARY"] \
                if "NEPI_NS3LIBRARY" in os.environ else None
 
-       if libfile:
-           ctypes.CDLL(libfile, ctypes.RTLD_GLOBAL)
+    if libfile:
+        ctypes.CDLL(libfile, ctypes.RTLD_GLOBAL)
+        """
+        files = os.listdir(build_path)
+        regex = re.compile("(.*\.so)$")
+        libs = [m.group(1) for filename in files for m in [regex.search(filename)] if m]
+        i = 0
+        while len(libs) > 0:
+            i += 1
+            lib = libs[ i % len(libs)]
+            libfile = os.path.join(build_path, lib)
+            try:
+                ctypes.CDLL(libfile, ctypes.RTLD_GLOBAL)
+                libs.remove(lib)
+            except:
+                pass
+        """
 
        path = [ os.path.dirname(__file__) ] + sys.path
        if bindings:
@@ -57,8 +72,8 @@ class TestbedController(testbed_impl.TestbedController):
     
     LOCAL_TYPES = tuple(LOCAL_FACTORIES.values())
 
-    def __init__(self, testbed_version):
-        super(TestbedController, self).__init__(TESTBED_ID, testbed_version)
+    def __init__(self):
+        super(TestbedController, self).__init__(TESTBED_ID, TESTBED_VERSION)
         self._ns3 = None
         self._home_directory = None
         self._traces = dict()
diff --git a/src/nepi/testbeds/ns3/metadata.py b/src/nepi/testbeds/ns3/metadata.py
new file mode 100644 (file)
index 0000000..14c4ab7
--- /dev/null
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+from constants import TESTBED_ID, TESTBED_VERSION
+from nepi.core import metadata
+
+class MetadataInfo(metadata.MetadataInfo):
+    @property
+    def connector_types(self):
+        from connection_metadata import connector_types
+        return connector_types
+
+    @property
+    def connections(self):
+        from connection_metadata import connections
+        return connections
+
+    @property
+    def attributes(self):
+        from attributes_metadata import attributes
+        return attributes
+
+    @property
+    def traces(self):
+        from traces_metadata import traces
+        return traces
+
+    @property
+    def create_order(self):
+        from factories_metadata import factories_order
+        return factories_order
+
+    @property
+    def configure_order(self):
+        from factories_metadata import factories_order
+        return factories_order
+
+    @property
+    def factories_info(self):
+        from factories_metadata import factories_info
+        return factories_info
+
+    @property
+    def testbed_attributes(self):
+        from attributes_metadata import testbed_attributes
+        return testbed_attributes
+
+    @property
+    def testbed_id(self):
+        return TESTBED_ID
+
+    @property
+    def testbed_version(self):
+        return TESTBED_VERSION
+
diff --git a/src/nepi/testbeds/ns3/metadata_v3_9.py b/src/nepi/testbeds/ns3/metadata_v3_9.py
deleted file mode 100644 (file)
index 3c71039..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-from nepi.core import metadata
-
-class VersionedMetadataInfo(metadata.VersionedMetadataInfo):
-    @property
-    def connector_types(self):
-        from connection_metadata_v3_9 import connector_types
-        return connector_types
-
-    @property
-    def connections(self):
-        from connection_metadata_v3_9 import connections
-        return connections
-
-    @property
-    def attributes(self):
-        from attributes_metadata_v3_9 import attributes
-        return attributes
-
-    @property
-    def traces(self):
-        from traces_metadata_v3_9 import traces
-        return traces
-
-    @property
-    def create_order(self):
-        from factories_metadata_v3_9 import factories_order
-        return factories_order
-
-    @property
-    def configure_order(self):
-        from factories_metadata_v3_9 import factories_order
-        return factories_order
-
-    @property
-    def factories_info(self):
-        from factories_metadata_v3_9 import factories_info
-        return factories_info
-
-    @property
-    def testbed_attributes(self):
-        from attributes_metadata_v3_9 import testbed_attributes
-        return testbed_attributes
-
index cf04252..1ea99bd 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-from constants import TESTBED_ID
+from constants import TESTBED_ID, TESTBED_VERSION
 from execute import TestbedController 
 
index 3580509..ee2c706 100644 (file)
@@ -2,4 +2,5 @@
 # -*- coding: utf-8 -*-
 
 TESTBED_ID = "planetlab"
+TESTBED_VERSION = "0.1"
 
index 12438d7..7142ff5 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-from constants import TESTBED_ID
+from constants import TESTBED_ID, TESTBED_VERSION
 from nepi.core import testbed_impl
 from nepi.util.constants import TIME_NOW
 from nepi.util.graphtools import mst
@@ -26,8 +26,8 @@ class TempKeyError(Exception):
     pass
 
 class TestbedController(testbed_impl.TestbedController):
-    def __init__(self, testbed_version):
-        super(TestbedController, self).__init__(TESTBED_ID, testbed_version)
+    def __init__(self):
+        super(TestbedController, self).__init__(TESTBED_ID, TESTBED_VERSION)
         self._home_directory = None
         self.slicename = None
         self._traces = dict()
similarity index 99%
rename from src/nepi/testbeds/planetlab/metadata_v01.py
rename to src/nepi/testbeds/planetlab/metadata.py
index 986265d..e20d328 100644 (file)
@@ -3,7 +3,7 @@
 
 import time
 
-from constants import TESTBED_ID
+from constants import TESTBED_ID, TESTBED_VERSION
 from nepi.core import metadata
 from nepi.core.attributes import Attribute
 from nepi.util import tags, validation
@@ -1133,7 +1133,7 @@ testbed_attributes = dict({
         }),
     })
 
-class VersionedMetadataInfo(metadata.VersionedMetadataInfo):
+class MetadataInfo(metadata.MetadataInfo):
     @property
     def connector_types(self):
         return connector_types
@@ -1174,3 +1174,11 @@ class VersionedMetadataInfo(metadata.VersionedMetadataInfo):
     def testbed_attributes(self):
         return testbed_attributes
 
+    @property
+    def testbed_id(self):
+        return TESTBED_ID
+
+    @property
+    def testbed_version(self):
+        return TESTBED_VERSION
+
index 5cbd072..3e28869 100644 (file)
@@ -270,7 +270,10 @@ class ExperimentParser(object):
     def testbed_from_data(self, experiment_description, guid, data):
         from nepi.core.design import FactoriesProvider
         (testbed_id, testbed_version) = data.get_testbed_data(guid)
-        provider = FactoriesProvider(testbed_id, testbed_version)
+        provider = FactoriesProvider(testbed_id)
+        if provider.testbed_version != testbed_version:
+            raise RuntimeError("Bad testbed version on testbed %s. Asked for %s, got %s" % \
+                    (testbed_id, testbed_version, provider.testbed_version))
         experiment_description.add_testbed_description(provider, guid)
         testbed_description = experiment_description.testbed_description(guid)
         self.graphical_info_from_data(testbed_description, data)
index c89f1d8..be08a68 100644 (file)
@@ -237,7 +237,11 @@ def _build_testbed_controller(testbed_id, testbed_version):
     if not mod_name in sys.modules:
         __import__(mod_name)
     module = sys.modules[mod_name]
-    return module.TestbedController(testbed_version)
+    tc = module.TestbedController()
+    if tc.testbed_version != testbed_version:
+        raise RuntimeError("Bad testbed version on testbed %s. Asked for %s, got %s" % \
+                (testbed_id, testbed_version, tc.testbed_version))
+    return tc
 
 # Just a namespace class
 class Marshalling:
index 8456510..b8f04f1 100755 (executable)
@@ -3,19 +3,18 @@
 
 from nepi.core.design import ExperimentDescription, FactoriesProvider
 from nepi.util import tags
-import mock.metadata_v01 
+import mock.metadata
 import sys
 import unittest
 
 class DesignTestCase(unittest.TestCase):
     def setUp(self):
-        sys.modules["nepi.testbeds.mock.metadata_v01"] = mock.metadata_v01
+        sys.modules["nepi.testbeds.mock.metadata"] = mock.metadata
 
     def test_design(self):
         exp_desc = ExperimentDescription()
-        testbed_version = "01"
         testbed_id = "mock"
-        provider = FactoriesProvider(testbed_id, testbed_version)
+        provider = FactoriesProvider(testbed_id)
         desc = exp_desc.add_testbed_description(provider)
         desc.set_attribute_value("fake", True)
         node1 = desc.create("Node")
index b2ece94..bfb1b4b 100755 (executable)
@@ -5,19 +5,17 @@ from nepi.util import tags
 from nepi.util.constants import ApplicationStatus as AS
 import getpass
 import mock
-import mock.metadata_v01 
+import mock.metadata 
 import sys
 import time
 import unittest
 
 class ExecuteTestCase(unittest.TestCase):
     def setUp(self):
-        sys.modules["nepi.testbeds.mock.metadata_v01"] = mock.metadata_v01
+        sys.modules["nepi.testbeds.mock.metadata"] = mock.metadata
 
     def test_execute(self):
-        testbed_version = "01"
-        testbed_id = "mock"
-        instance = mock.TestbedController(testbed_version)
+        instance = mock.TestbedController()
         instance.defer_configure("fake", True)
         instance.defer_create(2, "Node")
         instance.defer_create(3, "Node")
index a2f0b1f..4d76c4d 100755 (executable)
@@ -6,9 +6,9 @@ from nepi.util import proxy
 from nepi.util.constants import DeploymentConfiguration as DC
 import getpass
 import mock
-import mock.metadata_v01
+import mock.metadata
 import mock2
-import mock2.metadata_v01
+import mock2.metadata
 import os
 import shutil
 import sys
@@ -19,9 +19,9 @@ import unittest
 
 class ExecuteTestCase(unittest.TestCase):
     def setUp(self):
-        sys.modules["nepi.testbeds.mock.metadata_v01"] = mock.metadata_v01
+        sys.modules["nepi.testbeds.mock.metadata"] = mock.metadata
         sys.modules["nepi.testbeds.mock"] = mock
-        sys.modules["nepi.testbeds.mock2.metadata_v01"] = mock2.metadata_v01
+        sys.modules["nepi.testbeds.mock2.metadata"] = mock2.metadata
         sys.modules["nepi.testbeds.mock2"] = mock2
         self.root_dir = tempfile.mkdtemp()
 
@@ -33,8 +33,8 @@ class ExecuteTestCase(unittest.TestCase):
             time.sleep(0.1)
             shutil.rmtree(self.root_dir)
 
-    def make_testbed(self, exp_desc, testbed_id, testbed_version):
-        provider = FactoriesProvider(testbed_id, testbed_version)
+    def make_testbed(self, exp_desc, testbed_id):
+        provider = FactoriesProvider(testbed_id)
         desc = exp_desc.add_testbed_description(provider)
         desc.set_attribute_value("fake", True)
         node1 = desc.create("Node")
@@ -54,19 +54,17 @@ class ExecuteTestCase(unittest.TestCase):
 
     def make_test_experiment(self):
         exp_desc = ExperimentDescription()
-        testbed_version = "01"
         testbed_id = "mock"
-        return self.make_testbed(exp_desc, testbed_id, testbed_version)
+        return self.make_testbed(exp_desc, testbed_id)
 
     def make_cross_test_experiment(self):
         exp_desc = ExperimentDescription()
-        testbed_version = "01"
         testbed_id1 = "mock"
         testbed_id2 = "mock2"
         exp_desc, desc1, app1, node11, node12, iface11, iface12 = \
-                self.make_testbed(exp_desc, testbed_id1, testbed_version)
+                self.make_testbed(exp_desc, testbed_id1)
         exp_desc, desc2, app2, node21, node22, iface21, iface22 = \
-                 self.make_testbed(exp_desc, testbed_id2, testbed_version)
+                 self.make_testbed(exp_desc, testbed_id2)
         iface12.connector("cross").connect(iface21.connector("cross"))
 
         return exp_desc, desc1, desc2, iface12, iface21
@@ -103,7 +101,7 @@ class ExecuteTestCase(unittest.TestCase):
         self.assertTrue(fake_result.startswith(comp_result))
 
         self.assertEquals(controller.get_testbed_id(node1.guid), "mock")
-        self.assertEquals(controller.get_testbed_version(node1.guid), "01")
+        self.assertEquals(controller.get_testbed_version(node1.guid), "0.1")
         self.assertEquals(controller.get_factory_id(node1.guid), "Node")
 
         controller.stop()
@@ -129,7 +127,7 @@ class ExecuteTestCase(unittest.TestCase):
         self.assertTrue(fake_result.startswith(comp_result))
 
         self.assertEquals(controller.get_testbed_id(node1.guid), "mock")
-        self.assertEquals(controller.get_testbed_version(node1.guid), "01")
+        self.assertEquals(controller.get_testbed_version(node1.guid), "0.1")
         self.assertEquals(controller.get_factory_id(node1.guid), "Node")
 
         controller.stop()
@@ -157,7 +155,7 @@ class ExecuteTestCase(unittest.TestCase):
         self.assertTrue(fake_result.startswith(comp_result))
 
         self.assertEquals(controller.get_testbed_id(node1.guid), "mock")
-        self.assertEquals(controller.get_testbed_version(node1.guid), "01")
+        self.assertEquals(controller.get_testbed_version(node1.guid), "0.1")
         self.assertEquals(controller.get_factory_id(node1.guid), "Node")
 
         controller.stop()
@@ -190,7 +188,7 @@ class ExecuteTestCase(unittest.TestCase):
         self.assertTrue(fake_result.startswith(comp_result))
 
         self.assertEquals(controller.get_testbed_id(node1.guid), "mock")
-        self.assertEquals(controller.get_testbed_version(node1.guid), "01")
+        self.assertEquals(controller.get_testbed_version(node1.guid), "0.1")
         self.assertEquals(controller.get_factory_id(node1.guid), "Node")
 
         traces_info = controller.traces_info()
@@ -237,7 +235,7 @@ class ExecuteTestCase(unittest.TestCase):
         self.assertTrue(fake_result.startswith(comp_result))
 
         self.assertEquals(controller.get_testbed_id(node1.guid), "mock")
-        self.assertEquals(controller.get_testbed_version(node1.guid), "01")
+        self.assertEquals(controller.get_testbed_version(node1.guid), "0.1")
         self.assertEquals(controller.get_factory_id(node1.guid), "Node")
 
         # controller dies
@@ -293,7 +291,7 @@ class ExecuteTestCase(unittest.TestCase):
         addr.set_attribute_value("Address", "10.0.0.2")
 
         desc2 = exp_desc.add_testbed_description(
-            FactoriesProvider("mock2", "01") )
+            FactoriesProvider("mock2") )
         desc2.set_attribute_value(DC.DEPLOYMENT_HOST, "{#[some].addr[0].[Address]#}")
         # DC.DEPLOYMENT_HOST should be ignored if DC.DEPLOYMENT_CONNECTION is not set
         # But it should be resolved anyway
index cf04252..1ea99bd 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-from constants import TESTBED_ID
+from constants import TESTBED_ID, TESTBED_VERSION
 from execute import TestbedController 
 
index c4401b2..7640c66 100644 (file)
@@ -2,4 +2,4 @@
 # -*- coding: utf-8 -*-
 
 TESTBED_ID = "mock"
-
+TESTBED_VERSION = "0.1"
index 762b110..db7b01c 100644 (file)
@@ -1,12 +1,12 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-from constants import TESTBED_ID
+from constants import TESTBED_ID, TESTBED_VERSION
 from nepi.core import testbed_impl
 
 class TestbedController(testbed_impl.TestbedController):
-    def __init__(self, testbed_version):
-        super(TestbedController, self).__init__(TESTBED_ID, testbed_version)
+    def __init__(self):
+        super(TestbedController, self).__init__(TESTBED_ID, TESTBED_VERSION)
 
     def do_configure(self):
         pass
similarity index 96%
rename from test/lib/mock/metadata_v01.py
rename to test/lib/mock/metadata.py
index 49ece6e..370af4d 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-from constants import TESTBED_ID
+from constants import TESTBED_ID, TESTBED_VERSION
 from nepi.core import metadata
 from nepi.core.attributes import Attribute
 from nepi.util import validation, tags
@@ -192,7 +192,7 @@ testbed_attributes = dict({
             }),
     })
 
-class VersionedMetadataInfo(metadata.VersionedMetadataInfo):
+class MetadataInfo(metadata.MetadataInfo):
     @property
     def connector_types(self):
         return connector_types
@@ -225,3 +225,11 @@ class VersionedMetadataInfo(metadata.VersionedMetadataInfo):
     def testbed_attributes(self):
         return testbed_attributes
 
+    @property
+    def testbed_id(self):
+        return TESTBED_ID
+
+    @property
+    def testbed_version(self):
+        return TESTBED_VERSION
+
index cf04252..1ea99bd 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-from constants import TESTBED_ID
+from constants import TESTBED_ID, TESTBED_VERSION
 from execute import TestbedController 
 
index 4a1547b..e1f9775 100644 (file)
@@ -2,4 +2,5 @@
 # -*- coding: utf-8 -*-
 
 TESTBED_ID = "mock2"
+TESTBED_VERSION = "0.1"
 
index 762b110..db7b01c 100644 (file)
@@ -1,12 +1,12 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-from constants import TESTBED_ID
+from constants import TESTBED_ID, TESTBED_VERSION
 from nepi.core import testbed_impl
 
 class TestbedController(testbed_impl.TestbedController):
-    def __init__(self, testbed_version):
-        super(TestbedController, self).__init__(TESTBED_ID, testbed_version)
+    def __init__(self):
+        super(TestbedController, self).__init__(TESTBED_ID, TESTBED_VERSION)
 
     def do_configure(self):
         pass
similarity index 96%
rename from test/lib/mock2/metadata_v01.py
rename to test/lib/mock2/metadata.py
index f3d534d..7c294be 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-from constants import TESTBED_ID
+from constants import TESTBED_ID, TESTBED_VERSION
 from nepi.core import metadata
 from nepi.core.attributes import Attribute
 from nepi.util import tags, validation
@@ -182,7 +182,7 @@ testbed_attributes = dict({
             }),
     })
 
-class VersionedMetadataInfo(metadata.VersionedMetadataInfo):
+class MetadataInfo(metadata.MetadataInfo):
     @property
     def connector_types(self):
         return connector_types
@@ -215,3 +215,11 @@ class VersionedMetadataInfo(metadata.VersionedMetadataInfo):
     def testbed_attributes(self):
         return testbed_attributes
 
+    @property
+    def testbed_id(self):
+        return TESTBED_ID
+
+    @property
+    def testbed_version(self):
+        return TESTBED_VERSION
+
index f78efbe..4f3758f 100755 (executable)
@@ -11,9 +11,8 @@ import uuid
 class NetnsDesignTestCase(unittest.TestCase):
     def test_design_if(self):
         exp_desc = ExperimentDescription()
-        testbed_version = "01"
         testbed_id = "netns"
-        provider = FactoriesProvider(testbed_id, testbed_version)
+        provider = FactoriesProvider(testbed_id)
         tstbd_desc = exp_desc.add_testbed_description(provider)
         tstbd_desc.set_attribute_value("enableDebug", True)
         node1 = tstbd_desc.create("Node")
index e9591f3..7eaf332 100755 (executable)
@@ -18,8 +18,7 @@ class NetnsExecuteTestCase(unittest.TestCase):
     @test_util.skipUnless(os.getuid() == 0, "Test requires root privileges")
     def test_run_ping_if(self):
         user = getpass.getuser()
-        testbed_version = "01"
-        instance = netns.TestbedController(testbed_version)
+        instance = netns.TestbedController()
         instance.defer_configure("homeDirectory", self.root_dir)
         instance.defer_create(2, "Node")
         instance.defer_create(3, "Node")
@@ -64,8 +63,7 @@ class NetnsExecuteTestCase(unittest.TestCase):
     @test_util.skipUnless(os.getuid() == 0, "Test requires root privileges")
     def test_run_ping_p2pif(self):
         user = getpass.getuser()
-        testbed_version = "01"
-        instance = netns.TestbedController(testbed_version)
+        instance = netns.TestbedController()
         instance.defer_configure("homeDirectory", self.root_dir)
         instance.defer_create(2, "Node")
         instance.defer_create(3, "Node")
@@ -107,8 +105,7 @@ class NetnsExecuteTestCase(unittest.TestCase):
     @test_util.skipUnless(os.getuid() == 0, "Test requires root privileges")
     def test_run_ping_routing(self):
         user = getpass.getuser()
-        testbed_version = "01"
-        instance = netns.TestbedController(testbed_version)
+        instance = netns.TestbedController()
         instance.defer_configure("homeDirectory", self.root_dir)
         instance.defer_create(2, "Node")
         instance.defer_create(3, "Node")
@@ -169,8 +166,7 @@ class NetnsExecuteTestCase(unittest.TestCase):
     @test_util.skipUnless(os.getuid() == 0, "Test requires root privileges")
     def test_node_pcap_trace(self):
         user = getpass.getuser()
-        testbed_version = "01"
-        instance = netns.TestbedController(testbed_version)
+        instance = netns.TestbedController()
         instance.defer_configure("homeDirectory", self.root_dir)
         instance.defer_create(2, "Node")
         instance.defer_add_trace(2, "pcap")
index 96d68cd..01282af 100755 (executable)
@@ -20,10 +20,9 @@ class NetnsIntegrationTestCase(unittest.TestCase):
     @test_util.skipUnless(os.getuid() == 0, "Test requires root privileges")
     def test_local_if(self):
         exp_desc = ExperimentDescription()
-        testbed_version = "01"
         testbed_id = "netns"
         user = getpass.getuser()
-        netns_provider = FactoriesProvider(testbed_id, testbed_version)
+        netns_provider = FactoriesProvider(testbed_id)
         netns_desc = exp_desc.add_testbed_description(netns_provider)
         netns_desc.set_attribute_value("homeDirectory", self.root_dir)
         #netns_desc.set_attribute_value("enableDebug", True)
@@ -67,10 +66,9 @@ class NetnsIntegrationTestCase(unittest.TestCase):
     @test_util.skipUnless(os.getuid() == 0, "Test requires root privileges")
     def test_all_daemonized_if(self):
         exp_desc = ExperimentDescription()
-        testbed_version = "01"
         testbed_id = "netns"
         user = getpass.getuser()
-        netns_provider = FactoriesProvider(testbed_id, testbed_version)
+        netns_provider = FactoriesProvider(testbed_id)
         netns_desc = exp_desc.add_testbed_description(netns_provider)
         netns_desc.set_attribute_value("homeDirectory", self.root_dir)
         #netns_desc.set_attribute_value("enableDebug", True)
@@ -126,11 +124,10 @@ class NetnsIntegrationTestCase(unittest.TestCase):
     @test_util.skipUnless(os.getuid() == 0, "Test requires root privileges")
     def test_all_ssh_daemonized_if(self):
         exp_desc = ExperimentDescription()
-        testbed_version = "01"
         testbed_id = "netns"
         env = test_util.test_environment()
         user = getpass.getuser()
-        netns_provider = FactoriesProvider(testbed_id, testbed_version)
+        netns_provider = FactoriesProvider(testbed_id)
         netns_desc = exp_desc.add_testbed_description(netns_provider)
         netns_desc.set_attribute_value("homeDirectory", self.root_dir)
         #netns_desc.set_attribute_value("enableDebug", True)
index e5f5e31..de507b7 100755 (executable)
@@ -11,9 +11,8 @@ import uuid
 class Ns3DesignTestCase(unittest.TestCase):
     def test_design_if(self):
         exp_desc = ExperimentDescription()
-        testbed_version = "3_9"
         testbed_id = "ns3"
-        provider = FactoriesProvider(testbed_id, testbed_version)
+        provider = FactoriesProvider(testbed_id)
         tstbd_desc = exp_desc.add_testbed_description(provider)
 
         node1 = tstbd_desc.create("ns3::Node")
index c67e777..07fedcc 100755 (executable)
@@ -17,8 +17,7 @@ class Ns3ExecuteTestCase(unittest.TestCase):
     @test_util.skipUnless(test_util.ns3_usable(), 
            "Test requires working ns-3 bindings")
     def test_run_ping_if(self):
-        testbed_version = "3_9"
-        instance = ns3.TestbedController(testbed_version)
+        instance = ns3.TestbedController()
         instance.defer_configure("homeDirectory", self.root_dir)
         instance.defer_create(2, "ns3::Node")
         instance.defer_create(3, "ns3::Ipv4L3Protocol")
index 554151f..854e02c 100755 (executable)
@@ -23,8 +23,7 @@ class Ns3ExecuteTestCase(unittest.TestCase):
     @test_util.skipUnless(test_util.ns3_usable(),
             "Test requires working ns-3 bindings")
     def test_run_ping_routing(self):
-        testbed_version = "3_9"
-        instance = ns3.TestbedController(testbed_version)
+        instance = ns3.TestbedController()
         instance.defer_configure("homeDirectory", self.root_dir)
         instance.defer_create(2, "ns3::Node")
         instance.defer_create(3, "ns3::Ipv4L3Protocol")
index 5625c96..0ff968c 100755 (executable)
@@ -21,9 +21,8 @@ class Ns3IntegrationTestCase(unittest.TestCase):
            "Test requires working ns-3 bindings")
     def test_local_if(self):
         exp_desc = ExperimentDescription()
-        testbed_version = "3_9"
         testbed_id = "ns3"
-        ns3_provider = FactoriesProvider(testbed_id, testbed_version)
+        ns3_provider = FactoriesProvider(testbed_id)
         ns3_desc = exp_desc.add_testbed_description(ns3_provider)
         ns3_desc.set_attribute_value("homeDirectory", self.root_dir)
 
@@ -83,9 +82,8 @@ class Ns3IntegrationTestCase(unittest.TestCase):
            "Test requires working ns-3 bindings")
     def test_all_daemonized_if(self):
         exp_desc = ExperimentDescription()
-        testbed_version = "3_9"
         testbed_id = "ns3"
-        ns3_provider = FactoriesProvider(testbed_id, testbed_version)
+        ns3_provider = FactoriesProvider(testbed_id)
         ns3_desc = exp_desc.add_testbed_description(ns3_provider)
         ns3_desc.set_attribute_value("homeDirectory", self.root_dir)
 
index 4259cd5..ba91696 100755 (executable)
@@ -7,9 +7,8 @@ import unittest
 class PlanetlabDesignTestCase(unittest.TestCase):
     def make_test_design(self):
         exp_desc = ExperimentDescription()
-        testbed_version = "01"
         testbed_id = "planetlab"
-        provider = FactoriesProvider(testbed_id, testbed_version)
+        provider = FactoriesProvider(testbed_id)
         tstbd_desc = exp_desc.add_testbed_description(provider)
         tstbd_desc.set_attribute_value("slice", "inria_nepi")
         node1 = tstbd_desc.create("Node")
index 7170d15..07f1512 100755 (executable)
@@ -15,7 +15,6 @@ import sys
 
 class PlanetLabExecuteTestCase(unittest.TestCase):
     testbed_id = "planetlab"
-    testbed_version = "01"
     slicename = "inria_nepi"
     plchost = "nepiplc.pl.sophia.inria.fr"
     
@@ -35,11 +34,10 @@ class PlanetLabExecuteTestCase(unittest.TestCase):
 
     def make_instance(self):
         testbed_id = self.testbed_id
-        testbed_version = self.testbed_version
         slicename = self.slicename
         plchost = self.plchost
         
-        instance = planetlab.TestbedController(testbed_version)
+        instance = planetlab.TestbedController()
         pl_ssh_key = os.environ.get(
             "PL_SSH_KEY",
             "%s/.ssh/id_rsa_planetlab" % (os.environ['HOME'],) )
index 60eba70..2bccd69 100755 (executable)
@@ -16,7 +16,6 @@ import sys
 
 class PlanetLabIntegrationTestCase(unittest.TestCase):
     testbed_id = "planetlab"
-    testbed_version = "01"
     slicename = "inria_nepi"
     plchost = "nepiplc.pl.sophia.inria.fr"
     
@@ -39,7 +38,6 @@ class PlanetLabIntegrationTestCase(unittest.TestCase):
 
     def make_experiment_desc(self):
         testbed_id = self.testbed_id
-        testbed_version = self.testbed_version
         slicename = self.slicename
         plchost = self.plchost
         pl_ssh_key = os.environ.get(
@@ -48,7 +46,7 @@ class PlanetLabIntegrationTestCase(unittest.TestCase):
         pl_user, pl_pwd = test_util.pl_auth()
 
         exp_desc = ExperimentDescription()
-        pl_provider = FactoriesProvider(testbed_id, testbed_version)
+        pl_provider = FactoriesProvider(testbed_id)
         pl_desc = exp_desc.add_testbed_description(pl_provider)
         pl_desc.set_attribute_value("homeDirectory", self.root_dir)
         pl_desc.set_attribute_value("slice", slicename)
index 978745c..c152bad 100755 (executable)
@@ -16,7 +16,6 @@ import re
 
 class PlanetLabMultiIntegrationTestCase(unittest.TestCase):
     testbed_id = "planetlab"
-    testbed_version = "01"
     
     slicename1 = "inria_nepi"
     plchost1 = "nepiplc.pl.sophia.inria.fr"
@@ -43,7 +42,6 @@ class PlanetLabMultiIntegrationTestCase(unittest.TestCase):
 
     def make_experiment_desc(self):
         testbed_id = self.testbed_id
-        testbed_version = self.testbed_version
         
         slicename1 = self.slicename1
         plchost1 = self.plchost1
@@ -57,7 +55,7 @@ class PlanetLabMultiIntegrationTestCase(unittest.TestCase):
         pl_user, pl_pwd = test_util.pl_auth()
 
         exp_desc = ExperimentDescription()
-        pl_provider = FactoriesProvider(testbed_id, testbed_version)
+        pl_provider = FactoriesProvider(testbed_id)
         pl_desc = exp_desc.add_testbed_description(pl_provider)
         pl_desc.set_attribute_value("homeDirectory", self.root_dir)
         pl_desc.set_attribute_value("slice", slicename1)
@@ -105,7 +103,6 @@ class PlanetLabMultiIntegrationTestCase(unittest.TestCase):
 
     def make_ns_in_pl(self, pl, exp, node1, iface1, root):
         ns3_testbed_id = "ns3"
-        ns3_testbed_version = "3_9"
         
         # Add NS3 support in node1
         plnepi = pl.create("NepiDependency")
@@ -114,7 +111,7 @@ class PlanetLabMultiIntegrationTestCase(unittest.TestCase):
         plns3.connector("node").connect(node1.connector("deps"))
 
         # Create NS3 testbed running in node1
-        ns3_provider = FactoriesProvider(ns3_testbed_id, ns3_testbed_version)
+        ns3_provider = FactoriesProvider(ns3_testbed_id)
         ns3_desc = exp.add_testbed_description(ns3_provider)
         ns3_desc.set_attribute_value("rootDirectory", root)
         ns3_desc.set_attribute_value("SimulatorImplementationType", "ns3::RealtimeSimulatorImpl")
index 5c8cad0..62a36fe 100755 (executable)
@@ -16,7 +16,6 @@ import re
 
 class PlanetLabMultiIntegrationTestCase(unittest.TestCase):
     testbed_id = "planetlab"
-    testbed_version = "01"
     
     slicename1 = "inria_nepi"
     plchost1 = "nepiplc.pl.sophia.inria.fr"
@@ -43,7 +42,6 @@ class PlanetLabMultiIntegrationTestCase(unittest.TestCase):
 
     def make_experiment_desc(self):
         testbed_id = self.testbed_id
-        testbed_version = self.testbed_version
         
         slicename1 = self.slicename1
         plchost1 = self.plchost1
@@ -57,7 +55,7 @@ class PlanetLabMultiIntegrationTestCase(unittest.TestCase):
         pl_user, pl_pwd = test_util.pl_auth()
 
         exp_desc = ExperimentDescription()
-        pl_provider = FactoriesProvider(testbed_id, testbed_version)
+        pl_provider = FactoriesProvider(testbed_id)
         pl_desc = exp_desc.add_testbed_description(pl_provider)
         pl_desc.set_attribute_value("homeDirectory", self.root_dir)
         pl_desc.set_attribute_value("slice", slicename1)
index 2260127..57c8fb2 100755 (executable)
@@ -16,7 +16,6 @@ import re
 
 class PlanetLabCrossIntegrationTestCase(unittest.TestCase):
     testbed_id = "planetlab"
-    testbed_version = "01"
     slicename = "inria_nepi"
     plchost = "nepiplc.pl.sophia.inria.fr"
     
@@ -38,7 +37,6 @@ class PlanetLabCrossIntegrationTestCase(unittest.TestCase):
 
     def make_experiment_desc(self):
         testbed_id = self.testbed_id
-        testbed_version = self.testbed_version
         slicename = self.slicename
         plchost = self.plchost
         pl_ssh_key = os.environ.get(
@@ -47,7 +45,7 @@ class PlanetLabCrossIntegrationTestCase(unittest.TestCase):
         pl_user, pl_pwd = test_util.pl_auth()
 
         exp_desc = ExperimentDescription()
-        pl_provider = FactoriesProvider(testbed_id, testbed_version)
+        pl_provider = FactoriesProvider(testbed_id)
         pl_desc = exp_desc.add_testbed_description(pl_provider)
         pl_desc.set_attribute_value("homeDirectory", self.root_dir)
         pl_desc.set_attribute_value("slice", slicename)
@@ -99,7 +97,6 @@ class PlanetLabCrossIntegrationTestCase(unittest.TestCase):
     
     def make_ns_in_pl(self, pl, exp, node1, iface1, root):
         ns3_testbed_id = "ns3"
-        ns3_testbed_version = "3_9"
         
         # Add NS3 support in node1
         plnepi = pl.create("NepiDependency")
@@ -108,7 +105,7 @@ class PlanetLabCrossIntegrationTestCase(unittest.TestCase):
         plns3.connector("node").connect(node1.connector("deps"))
 
         # Create NS3 testbed running in node1
-        ns3_provider = FactoriesProvider(ns3_testbed_id, ns3_testbed_version)
+        ns3_provider = FactoriesProvider(ns3_testbed_id)
         ns3_desc = exp.add_testbed_description(ns3_provider)
         ns3_desc.set_attribute_value("rootDirectory", root)
         ns3_desc.set_attribute_value("SimulatorImplementationType", "ns3::RealtimeSimulatorImpl")
@@ -136,7 +133,6 @@ class PlanetLabCrossIntegrationTestCase(unittest.TestCase):
         "Test is expensive, requires NEPI_FULL_TESTS=yes")
     def test_ns3_in_pl(self):
         ns3_testbed_id = "ns3"
-        ns3_testbed_version = "3_9"
         
         pl, exp = self.make_experiment_desc()