Adding trace support for ns3 RMs
[nepi.git] / src / nepi / resources / ns3 / ns3base.py
index adcbb8b..085412b 100644 (file)
@@ -21,6 +21,7 @@ from nepi.execution.resource import ResourceManager, clsinit_copy, \
         ResourceState, reschedule_delay
 
 from nepi.execution.attribute import Flags
+from nepi.execution.trace import TraceAttr
 
 reschedule_delay = "2s"
 
@@ -33,6 +34,7 @@ class NS3Base(ResourceManager):
         super(NS3Base, self).__init__(ec, guid)
         self._uuid = None
         self._connected = set()
+        self._trace_filename = dict()
 
     @property
     def connected(self):
@@ -53,6 +55,14 @@ class NS3Base(ResourceManager):
         if nodes: return nodes[0]
         return None
 
+    def trace(self, name, attr = TraceAttr.ALL, block = 512, offset = 0):
+        filename = self._trace_filename.get(name)
+        if not filename:
+            self.error("Can resolve trace %s. Did you enabled it?" % name)
+            return ""
+
+        return self.simulation.trace(filename, attr, block, offset)
+
     @property
     def _rms_to_wait(self):
         """ Returns the collection of ns-3 RMs that this RM needs to
@@ -113,7 +123,6 @@ class NS3Base(ResourceManager):
             self.debug("---- RESCHEDULING DEPLOY ----" )
             self.ec.schedule(reschedule_delay, self.deploy)
         else:
-            self.info("Entering deploy")
             self.do_discover()
             self.do_provision()