From 848ab116eae6d9c631d94e1333b24700f82f6c16 Mon Sep 17 00:00:00 2001 From: Claudio-Daniel Freire Date: Mon, 16 May 2011 17:38:35 +0200 Subject: [PATCH] TunChannel finalization fix --- src/nepi/testbeds/netns/execute.py | 7 ++++++- src/nepi/testbeds/ns3/execute.py | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/nepi/testbeds/netns/execute.py b/src/nepi/testbeds/netns/execute.py index 67dee91e..db99bed7 100644 --- a/src/nepi/testbeds/netns/execute.py +++ b/src/nepi/testbeds/netns/execute.py @@ -7,6 +7,8 @@ from nepi.util.constants import TIME_NOW import os class TestbedController(testbed_impl.TestbedController): + from nepi.util.tunchannel_impl import TunChannel + def __init__(self, testbed_version): super(TestbedController, self).__init__(TESTBED_ID, testbed_version) self._netns = None @@ -54,7 +56,10 @@ class TestbedController(testbed_impl.TestbedController): for trace in self._traces.values(): trace.close() for element in self._elements.values(): - element.destroy() + if isinstance(element, self.TunChannel): + element.Cleanup() + else: + element.destroy() def trace_filename(self, guid, trace_id): # TODO: Need to be defined inside a home!!!! with and experiment id_code diff --git a/src/nepi/testbeds/ns3/execute.py b/src/nepi/testbeds/ns3/execute.py index 94f43355..d3b3307c 100644 --- a/src/nepi/testbeds/ns3/execute.py +++ b/src/nepi/testbeds/ns3/execute.py @@ -18,6 +18,8 @@ class TestbedController(testbed_impl.TestbedController): LOCAL_FACTORIES = { 'ns3::Nepi::TunChannel' : TunChannel, } + + LOCAL_TYPES = tuple(LOCAL_FACTORIES.values()) def __init__(self, testbed_version): super(TestbedController, self).__init__(TESTBED_ID, testbed_version) @@ -114,6 +116,9 @@ class TestbedController(testbed_impl.TestbedController): def shutdown(self): for element in self._elements.values(): + if isinstance(element, self.LOCAL_TYPES): + # graceful shutdown of locally-implemented objects + element.Cleanup() element = None def _simulator_run(self, condition): -- 2.47.0