enable dce in simulation is now automatic
authorAlina Quereilhac <alina.quereilhac@inria.fr>
Mon, 2 Jun 2014 18:16:41 +0000 (20:16 +0200)
committerAlina Quereilhac <alina.quereilhac@inria.fr>
Mon, 2 Jun 2014 18:16:41 +0000 (20:16 +0200)
src/nepi/execution/resource.py
src/nepi/resources/linux/ns3/ns3simulation.py
test/resources/linux/ns3/ccn/ns3dceccn.py
test/resources/linux/ns3/ccn/ns3dceccnpeek.py
test/resources/linux/ns3/ns3dceapplication.py
test/resources/linux/ns3/ns3dceping.py

index 2d24dd1..61ba806 100644 (file)
@@ -741,7 +741,6 @@ class ResourceManager(Logger):
         connected = []
         rclass = ResourceFactory.get_resource_type(rtype)
         for guid in self.connections:
-
             rm = self.ec.get_resource(guid)
             if not rtype or isinstance(rm, rclass):
                 connected.append(rm)
index 596ff02..deca974 100644 (file)
@@ -89,12 +89,6 @@ class LinuxNS3Simulation(LinuxApplication, NS3Simulation):
             default = "ns-3-dev", 
             flags = Flags.Design)
 
-        enable_dce = Attribute("enableDCE",
-            "Install DCE source code",
-            default = False, 
-            type = Types.Bool,
-            flags = Flags.Design)
-
         pybindgen_version = Attribute("pybindgenVersion",
             "Version of pybindgen to install from bazar repo",
             #default = "864", 
@@ -116,7 +110,6 @@ class LinuxNS3Simulation(LinuxApplication, NS3Simulation):
         cls._register_attribute(ns3_version)
         cls._register_attribute(pybindgen_version)
         cls._register_attribute(populate_routing_tables)
-        cls._register_attribute(enable_dce)
 
     def __init__(self, ec, guid):
         LinuxApplication.__init__(self, ec, guid)
@@ -127,6 +120,7 @@ class LinuxNS3Simulation(LinuxApplication, NS3Simulation):
         self._socket_name = "ns3-%s.sock" % os.urandom(4).encode('hex')
         self._dce_manager_helper_uuid = None
         self._dce_application_helper_uuid = None
+        self._enable_dce = False
 
     @property
     def socket_name(self):
@@ -319,6 +313,21 @@ class LinuxNS3Simulation(LinuxApplication, NS3Simulation):
         
         super(LinuxApplication, self).do_release()
 
+    @property
+    def enable_dce(self):
+        if self._enable_dce is None:
+            from nepi.resources.ns3.ns3dceapplication import NS3BaseDceApplication
+            rclass = ResourceFactory.get_resource_type(NS3BaseDceApplication)
+            
+            self._enable_dce = False
+            for guid in self.ec.resources:
+                rm = self.ec.get_resource(guid)
+                if isinstance(rm, rclass):
+                    self._enable_dce = True
+                    break
+
+        return self._enable_dce
+
     @property
     def _start_command(self):
         command = [] 
@@ -403,7 +412,7 @@ class LinuxNS3Simulation(LinuxApplication, NS3Simulation):
                                 }
 
         clone_dce_cmd = " echo 'DCE will not be built' "
-        if self.get("enableDCE"):
+        if self.enable_dce:
             clone_dce_cmd = (
                         # DCE installation
                         # Test if dce is alredy installed
@@ -489,7 +498,7 @@ class LinuxNS3Simulation(LinuxApplication, NS3Simulation):
     @property
     def _install(self):
         install_dce_cmd = " echo 'DCE will not be installed' "
-        if self.get("enableDCE"):
+        if self.enable_dce:
             install_dce_cmd = (
                         " ( "
                         "   ((test -d %(ns3_build_home)s/bin_dce ) && "
index a96d653..89f0b9f 100644 (file)
@@ -82,7 +82,6 @@ class LinuxNS3CCNDceApplicationTest(unittest.TestCase):
 
         simu = ec.register_resource("LinuxNS3Simulation")
         ec.set(simu, "verbose", True)
-        ec.set(simu, "enableDCE", True)
         ec.set(simu, "buildMode", "debug")
         ec.set(simu, "nsLog", "DceApplication")
         ec.register_connection(simu, node)
index 3db7ec8..d3beeec 100644 (file)
@@ -71,7 +71,6 @@ class LinuxNS3CCNPeekDceApplicationTest(unittest.TestCase):
         ec.set(simu, "verbose", True)
         ec.set(simu, "ns3Version", "ns-3-dev")
         ec.set(simu, "pybindgenVersion", "868")
-        ec.set(simu, "enableDCE", True)
         ec.set(simu, "buildMode", "debug")
         ec.set(simu, "nsLog", "DceApplication")
         ec.register_connection(simu, node)
@@ -124,9 +123,8 @@ class LinuxNS3CCNPeekDceApplicationTest(unittest.TestCase):
 
         simu = ec.register_resource("LinuxNS3Simulation")
         ec.set(simu, "verbose", True)
-        ec.set(simu, "ns3Version", "ns-3.19")
-        ec.set(simu, "pybindgenVersion", "834")
-        ec.set(simu, "enableDCE", True)
+        #ec.set(simu, "ns3Version", "ns-3.19")
+        #ec.set(simu, "pybindgenVersion", "834")
         ec.set(node, "cleanExperiment", True)
         ec.register_connection(simu, node)
 
index fa6448f..8f1c992 100644 (file)
@@ -157,7 +157,6 @@ class LinuxNS3DceApplicationTest(unittest.TestCase):
 
         simu = ec.register_resource("LinuxNS3Simulation")
         ec.set(simu, "verbose", True)
-        ec.set(simu, "enableDCE", True)
         ec.set(simu, "buildMode", "debug")
         ec.set(simu, "nsLog", "DceApplication")
         ec.register_connection(simu, node)
@@ -226,7 +225,6 @@ class LinuxNS3DceApplicationTest(unittest.TestCase):
 
         simu = ec.register_resource("LinuxNS3Simulation")
         ec.set(simu, "verbose", True)
-        ec.set(simu, "enableDCE", True)
         ec.set(simu, "buildMode", "debug")
         ec.set(simu, "nsLog", "DceApplication")
         ec.register_connection(simu, node)
index 087546a..31f9142 100644 (file)
@@ -85,7 +85,6 @@ class LinuxNS3PingDceApplicationTest(unittest.TestCase):
 
         simu = ec.register_resource("LinuxNS3Simulation")
         ec.set(simu, "verbose", True)
-        ec.set(simu, "enableDCE", True)
         ec.set(simu, "buildMode", "debug")
         ec.set(simu, "nsLog", "DceApplication")
         ec.register_connection(simu, node)