git://git.onelab.eu
/
nepi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c705251
)
Releasing NETNS resources before terminating NETNSWrapper
author
Alina Quereilhac
<alina.quereilhac@inria.fr>
Thu, 17 Jul 2014 09:40:38 +0000
(11:40 +0200)
committer
Alina Quereilhac
<alina.quereilhac@inria.fr>
Thu, 17 Jul 2014 09:40:38 +0000
(11:40 +0200)
src/nepi/resources/netns/netnsserver.py
patch
|
blob
|
history
src/nepi/resources/netns/netnswrapper.py
patch
|
blob
|
history
src/nepi/resources/netns/netnswrapper_debug.py
patch
|
blob
|
history
test/resources/netns/netnswrapper.py
patch
|
blob
|
history
diff --git
a/src/nepi/resources/netns/netnsserver.py
b/src/nepi/resources/netns/netnsserver.py
index
826843e
..
efa5e15
100644
(file)
--- 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():
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)
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")
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",
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)
"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)
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):
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)
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__':
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"
## 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
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
f2e1e7a
..
eff19f8
100644
(file)
--- 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()
########
self.debuger.dump_shutdown()
########
+ ### FLUSH PIPES
sys.stdout.flush()
sys.stderr.flush()
sys.stdout.flush()
sys.stderr.flush()
+ ### RELEASE OBJECTS
+ del self._objects
+
### DEBUG
self.logger.debug("SHUTDOWN")
########
### DEBUG
self.logger.debug("SHUTDOWN")
########
diff --git
a/src/nepi/resources/netns/netnswrapper_debug.py
b/src/nepi/resources/netns/netnswrapper_debug.py
index
b273563
..
7818a8e
100644
(file)
--- 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)
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
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)
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("-", "")
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
c2bf982
..
cc580f9
100755
(executable)
--- 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)
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()
if __name__ == '__main__':
unittest.main()