Releasing NETNS resources before terminating NETNSWrapper
authorAlina Quereilhac <alina.quereilhac@inria.fr>
Thu, 17 Jul 2014 09:40:38 +0000 (11:40 +0200)
committerAlina Quereilhac <alina.quereilhac@inria.fr>
Thu, 17 Jul 2014 09:40:38 +0000 (11:40 +0200)
src/nepi/resources/netns/netnsserver.py
src/nepi/resources/netns/netnswrapper.py
src/nepi/resources/netns/netnswrapper_debug.py
test/resources/netns/netnswrapper.py

index 826843e..efa5e15 100644 (file)
@@ -127,7 +127,7 @@ def send_reply(conn, reply):
     conn.send("%s\n" % encoded)
 
 def get_options():
-    usage = ("usage: %prog -S <socket-name> -L <ns-log>  -D <enable-dump> -v ")
+    usage = ("usage: %prog -S <socket-name> -D <enable-dump> -v ")
     
     parser = OptionParser(usage = usage)
 
@@ -135,12 +135,8 @@ def get_options():
         help = "Name for the unix socket used to interact with this process", 
         default = "tap.sock", type="str")
 
-    parser.add_option("-L", "--ns-log", dest="ns_log",
-        help = "NS_LOG environmental variable to be set", 
-        default = "", type="str")
-
     parser.add_option("-D", "--enable-dump", dest="enable_dump",
-        help = "Enable dumping the remote executed ns-3 commands to a script "
+        help = "Enable dumping the remote executed commands to a script "
             "in order to later reproduce and debug the experiment",
         action = "store_true",
         default = False)
@@ -155,14 +151,10 @@ def get_options():
     return (options.socket_name, options.verbose, options.ns_log,
             options.enable_dump)
 
-def run_server(socket_name, level = logging.INFO, ns_log = None, 
+def run_server(socket_name, level = logging.INFO, 
         enable_dump = False):
 
-    # Sets NS_LOG environmental variable for NS debugging
-    if ns_log:
-        os.environ["NS_LOG"] = ns_log
-
-    ###### ns-3 wrapper instantiation
+    ###### wrapper instantiation
 
     wrapper = NetNSWrapper(loglevel=level, enable_dump = enable_dump)
     
@@ -209,7 +201,7 @@ def run_server(socket_name, level = logging.INFO, ns_log = None,
 
 if __name__ == '__main__':
             
-    (socket_name, verbose, ns_log, enable_dump) = get_options()
+    (socket_name, verbose, enable_dump) = get_options()
 
     ## configure logging
     FORMAT = "%(asctime)s %(name)s %(levelname)-4s %(message)s"
@@ -218,5 +210,5 @@ if __name__ == '__main__':
     logging.basicConfig(format = FORMAT, level = level)
 
     ## Run the server
-    run_server(socket_name, level, ns_log, enable_dump)
+    run_server(socket_name, level, enable_dump)
 
index f2e1e7a..eff19f8 100644 (file)
@@ -164,9 +164,13 @@ class NetNSWrapper(object):
         self.debuger.dump_shutdown()
         ########
 
+        ### FLUSH PIPES
         sys.stdout.flush()
         sys.stderr.flush()
 
+        ### RELEASE OBJECTS
+        del self._objects 
+
         ### DEBUG
         self.logger.debug("SHUTDOWN")
         ########
index b273563..7818a8e 100644 (file)
@@ -133,24 +133,6 @@ wrapper = NS3Wrapper()
         
         self.dump_to_script(command)
 
-    def dump_start(self):
-        if not self.enabled:
-            return
-
-        command = "wrapper.start()\n\n"
-        self.dump_to_script(command)
-
-    def dump_stop(self, time = None):
-        if not self.enabled:
-            return
-
-        command = ("wrapper.stop(time=%(time)s)\n\n" 
-                ) % dict({
-                 "time": self.format_value(time) if time else "None",
-                })
-
-        self.dump_to_script(command)
-
     def dump_shutdown(self):
         if not self.enabled:
             return
@@ -158,19 +140,6 @@ wrapper = NS3Wrapper()
         command = "wrapper.shutdown()\n\n"
         self.dump_to_script(command)
 
-    def dump_add_static_route(self, uuid, args):
-        if not self.enabled:
-            return
-
-        command = ("args = %(args)s\n"
-                   "wrapper._add_static_route(%(uuid)s, *args)\n\n" 
-                ) % dict({
-                 "uuid": self.format_value(uuid),
-                 "args": self.format_args(args),
-                })
-
-        self.dump_to_script(command)
-
     def format_value(self, value):
         if isinstance(value, str) and value.startswith("uuid"):
             return value.replace("-", "")
index c2bf982..cc580f9 100755 (executable)
@@ -132,6 +132,8 @@ class NetNSWrapperTest(unittest.TestCase):
         expected = "1 packets transmitted, 1 received, 0% packet loss"
         self.assertTrue(s1.find(expected) > -1)
         self.assertTrue(s2.find(expected) > -1)
+        
+        wrapper.shutdown()
 
 if __name__ == '__main__':
     unittest.main()