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
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
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)
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):