From 8735dfa68d3621532cc48569d38b6afd6229bcaa Mon Sep 17 00:00:00 2001 From: Alina Quereilhac Date: Thu, 17 Jul 2014 11:40:38 +0200 Subject: [PATCH] Releasing NETNS resources before terminating NETNSWrapper --- src/nepi/resources/netns/netnsserver.py | 20 ++++-------- src/nepi/resources/netns/netnswrapper.py | 4 +++ .../resources/netns/netnswrapper_debug.py | 31 ------------------- test/resources/netns/netnswrapper.py | 2 ++ 4 files changed, 12 insertions(+), 45 deletions(-) diff --git a/src/nepi/resources/netns/netnsserver.py b/src/nepi/resources/netns/netnsserver.py index 826843eb..efa5e155 100644 --- a/src/nepi/resources/netns/netnsserver.py +++ b/src/nepi/resources/netns/netnsserver.py @@ -127,7 +127,7 @@ def send_reply(conn, reply): conn.send("%s\n" % encoded) def get_options(): - usage = ("usage: %prog -S -L -D -v ") + usage = ("usage: %prog -S -D -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) diff --git a/src/nepi/resources/netns/netnswrapper.py b/src/nepi/resources/netns/netnswrapper.py index f2e1e7a9..eff19f8b 100644 --- a/src/nepi/resources/netns/netnswrapper.py +++ b/src/nepi/resources/netns/netnswrapper.py @@ -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") ######## diff --git a/src/nepi/resources/netns/netnswrapper_debug.py b/src/nepi/resources/netns/netnswrapper_debug.py index b2735631..7818a8e6 100644 --- a/src/nepi/resources/netns/netnswrapper_debug.py +++ b/src/nepi/resources/netns/netnswrapper_debug.py @@ -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("-", "") diff --git a/test/resources/netns/netnswrapper.py b/test/resources/netns/netnswrapper.py index c2bf9822..cc580f9c 100755 --- a/test/resources/netns/netnswrapper.py +++ b/test/resources/netns/netnswrapper.py @@ -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() -- 2.43.0