From a76590e241eb71243a67d55cb624218165a167d1 Mon Sep 17 00:00:00 2001 From: Alina Quereilhac Date: Sun, 5 Jun 2011 15:03:35 +0200 Subject: [PATCH] added: traces_info showing the filepath for all traces --- src/nepi/core/execute.py | 19 ++++++++ src/nepi/core/testbed_impl.py | 30 ++++++++++-- src/nepi/testbeds/netns/execute.py | 2 +- src/nepi/testbeds/netns/metadata_v01.py | 4 +- src/nepi/testbeds/ns3/execute.py | 2 +- .../testbeds/ns3/factories_metadata_v3_9.py | 29 ++++++------ src/nepi/testbeds/planetlab/execute.py | 3 ++ src/nepi/util/proxy.py | 46 ++++++++++++------- test/core/execute.py | 13 +++++- test/core/integration.py | 34 ++++++++++---- test/testbeds/netns/execute.py | 4 +- test/testbeds/netns/integration.py | 4 +- test/testbeds/ns3/integration.py | 2 +- 13 files changed, 136 insertions(+), 56 deletions(-) diff --git a/src/nepi/core/execute.py b/src/nepi/core/execute.py index 7f0d3ed8..07990606 100644 --- a/src/nepi/core/execute.py +++ b/src/nepi/core/execute.py @@ -341,6 +341,19 @@ class TestbedController(object): def trace(self, guid, trace_id, attribute='value'): raise NotImplementedError + def traces_info(self): + """ dictionary of dictionaries: + traces_info = dict({ + guid = dict({ + trace_id = dict({ + host = host, + filepath = filepath, + filesize = size in bytes, + }) + }) + })""" + raise NotImplementedError + def shutdown(self): raise NotImplementedError @@ -383,6 +396,12 @@ class ExperimentController(object): return testbed.trace(guid, trace_id, attribute) raise RuntimeError("No element exists with guid %d" % guid) + def traces_info(self): + traces_info = dict() + for guid, testbed in self._testbeds.iteritems(): + traces_info[guid] = testbed.traces_info() + return traces_info + @staticmethod def _parallel(callables): excs = [] diff --git a/src/nepi/core/testbed_impl.py b/src/nepi/core/testbed_impl.py index 663851d8..a37752ea 100644 --- a/src/nepi/core/testbed_impl.py +++ b/src/nepi/core/testbed_impl.py @@ -428,22 +428,46 @@ class TestbedController(execute.TestbedController): def trace(self, guid, trace_id, attribute='value'): if attribute == 'value': - fd = open("%s" % self.trace_filename(guid, trace_id), "r") + fd = open("%s" % self.trace_filepath(guid, trace_id), "r") content = fd.read() fd.close() elif attribute == 'path': - content = self.trace_filename(guid, trace_id) + content = self.trace_filepath(guid, trace_id) + elif attribute == 'size': + content = str(self.traces_filesize(guid, trace_id)) else: content = None return content - def trace_filename(self, guid, trace_id): + def traces_info(self): + traces_info = dict() + host = self._attributes.get_attribute_value("deployment_host") + for guid, trace_list in self._add_trace.iteritems(): + traces_info[guid] = dict() + for trace_id in trace_list: + traces_info[guid][trace_id] = dict() + filepath = self.trace(guid, trace_id, attribute = "path") + # TODO: Filesize! + # filesize = self.trace(guid, trace_id) + filesize = -1 + traces_info[guid][trace_id]["host"] = host + traces_info[guid][trace_id]["filepath"] = filepath + traces_info[guid][trace_id]["filesize"] = str(filesize) + return traces_info + + def trace_filepath(self, guid, trace_id): """ Return a trace's file path, for TestbedController's default implementation of trace() """ raise NotImplementedError + def trace_filesize(self, guid, trace_id): + """ + Return a trace's filesize in bytes + """ + raise NotImplementedError + #shutdown: NotImplementedError def get_connected(self, guid, connector_type_name, diff --git a/src/nepi/testbeds/netns/execute.py b/src/nepi/testbeds/netns/execute.py index 45ccf4eb..f2c63d2a 100644 --- a/src/nepi/testbeds/netns/execute.py +++ b/src/nepi/testbeds/netns/execute.py @@ -70,7 +70,7 @@ class TestbedController(testbed_impl.TestbedController): element.destroy() self._elements.clear() - def trace_filename(self, guid, trace_id, filename = None): + def trace_filepath(self, guid, trace_id, filename = None): if not filename: (trace, filename) = self._traces[guid][trace_id] return os.path.join(self.home_directory, filename) diff --git a/src/nepi/testbeds/netns/metadata_v01.py b/src/nepi/testbeds/netns/metadata_v01.py index 3fb96162..62332708 100644 --- a/src/nepi/testbeds/netns/metadata_v01.py +++ b/src/nepi/testbeds/netns/metadata_v01.py @@ -28,7 +28,7 @@ NS3_TESTBED_ID = "ns3" FDNETDEV = "ns3::FileDescriptorNetDevice" def _follow_trace(testbed_instance, guid, trace_id, filename): - filepath = testbed_instance.trace_filename(guid, trace_id, filename) + filepath = testbed_instance.trace_filepath(guid, trace_id, filename) trace = open(filepath, "wb") testbed_instance.follow_trace(guid, trace_id, trace, filename) return trace @@ -91,7 +91,7 @@ def nodepcap_trace(testbed_instance, guid, trace_id): filename = "%d-pcap.stderr" % guid stderr = _follow_trace(testbed_instance, guid, "pcap_stderr", filename) filename = "%d-node.pcap" % guid - filepath = testbed_instance.trace_filename(guid, trace_id, filename) + filepath = testbed_instance.trace_filenpath(guid, trace_id, filename) command = "tcpdump -i 'any' -w %s" % filepath user = "root" trace = node.Popen(command, shell = True, stdout = stdout, diff --git a/src/nepi/testbeds/ns3/execute.py b/src/nepi/testbeds/ns3/execute.py index 57b80c9e..754c2067 100644 --- a/src/nepi/testbeds/ns3/execute.py +++ b/src/nepi/testbeds/ns3/execute.py @@ -114,7 +114,7 @@ class TestbedController(testbed_impl.TestbedController): def action(self, time, guid, action): raise NotImplementedError - def trace_filename(self, guid, trace_id): + def trace_filepath(self, guid, trace_id): filename = self._traces[guid][trace_id] return os.path.join(self.home_directory, filename) diff --git a/src/nepi/testbeds/ns3/factories_metadata_v3_9.py b/src/nepi/testbeds/ns3/factories_metadata_v3_9.py index a98240e2..e0364193 100644 --- a/src/nepi/testbeds/ns3/factories_metadata_v3_9.py +++ b/src/nepi/testbeds/ns3/factories_metadata_v3_9.py @@ -76,6 +76,11 @@ def _get_dev_number(testbed_instance, guid): interface_number += 1 return interface_number +def _follow_trace(testbed_instance, guid, trace_id, filename): + testbed_instance.follow_trace(guid, trace_id, filename) + filepath = testbed_instance.trace_filepath(guid, trace_id) + return filepath + ### create traces functions ### def p2pascii_trace(testbed_instance, guid, trace_id): @@ -83,8 +88,7 @@ def p2pascii_trace(testbed_instance, guid, trace_id): interface_number = _get_dev_number(testbed_instance, guid) element = testbed_instance._elements[guid] filename = "trace-p2p-node-%d-dev-%d.tr" % (node_guid, interface_number) - testbed_instance.follow_trace(guid, trace_id, filename) - filepath = testbed_instance.trace_filename(guid, trace_id) + filepath = _follow_trace(testbed_instance, guid, trace_id, filename) helper = testbed_instance.ns3.PointToPointHelper() asciiHelper = testbed_instance.ns3.AsciiTraceHelper() stream = asciiHelper.CreateFileStream(filepath) @@ -95,8 +99,7 @@ def p2ppcap_trace(testbed_instance, guid, trace_id): interface_number = _get_dev_number(testbed_instance, guid) element = testbed_instance._elements[guid] filename = "trace-p2p-node-%d-dev-%d.pcap" % (node_guid, interface_number) - testbed_instance.follow_trace(guid, trace_id, filename) - filepath = testbed_instance.trace_filename(guid, trace_id) + filepath = _follow_trace(testbed_instance, guid, trace_id, filename) helper = testbed_instance.ns3.PointToPointHelper() helper.EnablePcap(filepath, element, explicitFilename = True) @@ -105,8 +108,7 @@ def _csmapcap_trace(testbed_instance, guid, trace_id, promisc): interface_number = _get_dev_number(testbed_instance, guid) element = testbed_instance._elements[guid] filename = "trace-csma-node-%d-dev-%d.pcap" % (node_guid, interface_number) - testbed_instance.follow_trace(guid, trace_id, filename) - filepath = testbed_instance.trace_filename(guid, trace_id) + filepath = _follow_trace(testbed_instance, guid, trace_id, filename) helper = testbed_instance.ns3.CsmaHelper() helper.EnablePcap(filepath, element, promiscuous = promisc, explicitFilename = True) @@ -124,8 +126,7 @@ def fdpcap_trace(testbed_instance, guid, trace_id): interface_number = _get_dev_number(testbed_instance, guid) element = testbed_instance._elements[guid] filename = "trace-fd-node-%d-dev-%d.pcap" % (node_guid, interface_number) - testbed_instance.follow_trace(guid, trace_id, filename) - filepath = testbed_instance.trace_filename(guid, trace_id) + filepath = _follow_trace(testbed_instance, guid, trace_id, filename) helper = testbed_instance.ns3.FileDescriptorHelper() helper.EnablePcap(filepath, element, explicitFilename = True) @@ -135,8 +136,7 @@ def yanswifipcap_trace(testbed_instance, guid, trace_id): interface_number = _get_dev_number(testbed_instance, dev_guid) element = testbed_instance._elements[dev_guid] filename = "trace-yanswifi-node-%d-dev-%d.pcap" % (node_guid, interface_number) - testbed_instance.follow_trace(guid, trace_id, filename) - filepath = testbed_instance.trace_filename(guid, trace_id) + filepath = _follow_trace(testbed_instance, guid, trace_id, filename) helper = testbed_instance.ns3.YansWifiPhyHelper() helper.EnablePcap(filepath, element, explicitFilename = True) @@ -145,8 +145,7 @@ def wimaxascii_trace(testbed_instance, guid, trace_id): interface_number = _get_dev_number(testbed_instance, guid) element = testbed_instance._elements[guid] filename = "trace-wimax-node-%d-dev-%d.tr" % (node_guid, interface_number) - testbed_instance.follow_trace(guid, trace_id, filename) - filepath = testbed_instance.trace_filename(guid, trace_id) + filepath = _follow_trace(testbed_instance, guid, trace_id, filename) helper = testbed_instance.ns3.WimaxHelper() asciiHelper = testbed_instance.ns3.AsciiTraceHelper() stream = asciiHelper.CreateFileStream (filepath) @@ -158,8 +157,7 @@ def wimaxpcap_trace(testbed_instance, guid, trace_id): interface_number = _get_dev_number(testbed_instance, guid) element = testbed_instance._elements[guid] filename = "trace-wimax-node-%d-dev-%d.pcap" % (node_guid, interface_number) - testbed_instance.follow_trace(guid, trace_id, filename) - filepath = testbed_instance.trace_filename(guid, trace_id) + filepath = _follow_trace(testbed_instance, guid, trace_id, filename) helper = testbed_instance.ns3.WimaxHelper() helper.EnablePcap(filepath, element, explicitFilename = True) @@ -168,8 +166,7 @@ def rtt_trace(testbed_instance, guid, trace_id): helper = testbed_instance.ns3.PlotHelper() prefix = "trace-app-%d" % (guid, ) filename = helper.GetFilenameFromSource(prefix, element, trace_id) - testbed_instance.follow_trace(guid, trace_id, filename) - filepath = testbed_instance.trace_filename(guid, trace_id) + filepath = _follow_trace(testbed_instance, guid, trace_id, filename) prefix = filepath[:filepath.find(prefix)+len(prefix)] helper.EnableTrace(element, trace_id, prefix, "T") diff --git a/src/nepi/testbeds/planetlab/execute.py b/src/nepi/testbeds/planetlab/execute.py index f6693bf9..e5a686e6 100644 --- a/src/nepi/testbeds/planetlab/execute.py +++ b/src/nepi/testbeds/planetlab/execute.py @@ -217,6 +217,9 @@ class TestbedController(testbed_impl.TestbedController): content = None elif attribute == 'path': content = app.remote_trace_path(trace_id) + elif attribute == 'size': + # TODO + raise NotImplementedError else: content = None return content diff --git a/src/nepi/util/proxy.py b/src/nepi/util/proxy.py index 7ed34ce5..b13c8d20 100644 --- a/src/nepi/util/proxy.py +++ b/src/nepi/util/proxy.py @@ -57,6 +57,7 @@ DO_PRESTART = 37 GET_FACTORY_ID = 38 GET_TESTBED_ID = 39 GET_TESTBED_VERSION = 40 +TRACES_INFO = 41 instruction_text = dict({ OK: "OK", @@ -98,6 +99,7 @@ instruction_text = dict({ GUIDS: "GUIDS", TESTBED_ID: "TESTBED_ID", TESTBED_VERSION: "TESTBED_VERSION", + TRACES_INFO: "TRACES_INFO", }) def log_msg(server, params): @@ -179,7 +181,7 @@ class PermDir(object): def __init__(self, path): self.path = path -def create_controller(xml, access_config = None): +def create_experiment_controller(xml, access_config = None): mode = None if not access_config \ else access_config.get_attribute_value(DC.DEPLOYMENT_MODE) launch = True if not access_config \ @@ -475,6 +477,12 @@ class TestbedControllerServer(BaseServer): def trace(self, guid, trace_id, attribute): return self._testbed.trace(guid, trace_id, attribute) + @Marshalling.handles(TRACES_INFO) + @Marshalling.args() + @Marshalling.retval( Marshalling.pickled_data ) + def traces_info(self): + return self._testbed.traces_info() + @Marshalling.handles(START) @Marshalling.args() @Marshalling.retvoid @@ -655,90 +663,96 @@ class ExperimentControllerServer(BaseServer): def __init__(self, root_dir, log_level, experiment_xml): super(ExperimentControllerServer, self).__init__(root_dir, log_level) self._experiment_xml = experiment_xml - self._controller = None + self._experiment = None def post_daemonize(self): from nepi.core.execute import ExperimentController - self._controller = ExperimentController(self._experiment_xml, + self._experiment = ExperimentController(self._experiment_xml, root_dir = self._root_dir) @Marshalling.handles(GUIDS) @Marshalling.args() @Marshalling.retval( Marshalling.pickled_data ) def guids(self): - return self._controller.guids + return self._experiment.guids @Marshalling.handles(XML) @Marshalling.args() @Marshalling.retval() def experiment_xml(self): - return self._controller.experiment_xml + return self._experiment.experiment_xml @Marshalling.handles(TRACE) @Marshalling.args(int, str, Marshalling.base64_data) @Marshalling.retval() def trace(self, guid, trace_id, attribute): - return str(self._controller.trace(guid, trace_id, attribute)) + return str(self._experiment.trace(guid, trace_id, attribute)) + + @Marshalling.handles(TRACES_INFO) + @Marshalling.args() + @Marshalling.retval( Marshalling.pickled_data ) + def traces_info(self): + return self._experiment.traces_info() @Marshalling.handles(FINISHED) @Marshalling.args(int) @Marshalling.retval(Marshalling.bool) def is_finished(self, guid): - return self._controller.is_finished(guid) + return self._experiment.is_finished(guid) @Marshalling.handles(GET) @Marshalling.args(int, Marshalling.base64_data, str) @Marshalling.retval( Marshalling.pickled_data ) def get(self, guid, name, time): - return self._controller.get(guid, name, time) + return self._experiment.get(guid, name, time) @Marshalling.handles(SET) @Marshalling.args(int, Marshalling.base64_data, Marshalling.pickled_data, str) @Marshalling.retvoid def set(self, guid, name, value, time): - self._controller.set(guid, name, value, time) + self._experiment.set(guid, name, value, time) @Marshalling.handles(START) @Marshalling.args() @Marshalling.retvoid def start(self): - self._controller.start() + self._experiment.start() @Marshalling.handles(STOP) @Marshalling.args() @Marshalling.retvoid def stop(self): - self._controller.stop() + self._experiment.stop() @Marshalling.handles(RECOVER) @Marshalling.args() @Marshalling.retvoid def recover(self): - self._controller.recover() + self._experiment.recover() @Marshalling.handles(SHUTDOWN) @Marshalling.args() @Marshalling.retvoid def shutdown(self): - self._controller.shutdown() + self._experiment.shutdown() @Marshalling.handles(GET_TESTBED_ID) @Marshalling.args(int) @Marshalling.retval() def get_testbed_id(self, guid): - return self._controller.get_testbed_id(guid) + return self._experiment.get_testbed_id(guid) @Marshalling.handles(GET_FACTORY_ID) @Marshalling.args(int) @Marshalling.retval() def get_factory_id(self, guid): - return self._controller.get_factory_id(guid) + return self._experiment.get_factory_id(guid) @Marshalling.handles(GET_TESTBED_VERSION) @Marshalling.args(int) @Marshalling.retval() def get_testbed_version(self, guid): - return self._controller.get_testbed_version(guid) + return self._experiment.get_testbed_version(guid) class BaseProxy(object): _ServerClass = None diff --git a/test/core/execute.py b/test/core/execute.py index 8055e99e..2c59ceb9 100755 --- a/test/core/execute.py +++ b/test/core/execute.py @@ -48,9 +48,20 @@ class ExecuteTestCase(unittest.TestCase): --- 10.0.0.2 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms """ - self.assertTrue(app_result.startswith(comp_result)) + traces_info = instance.traces_info() + expected_traces_info = dict({ + 7 : dict({ + 'fake': dict({ + 'host': 'localhost', + 'filesize': '-1', + 'filepath': '' + }) + }) + }) + self.assertEquals(traces_info, expected_traces_info) + instance.stop() instance.shutdown() diff --git a/test/core/integration.py b/test/core/integration.py index c135b5f3..4c0240b5 100755 --- a/test/core/integration.py +++ b/test/core/integration.py @@ -75,7 +75,7 @@ class ExecuteTestCase(unittest.TestCase): self.make_cross_test_experiment() xml = exp_desc.to_xml() access_config = None - controller = proxy.create_controller(xml, access_config) + controller = proxy.create_experiment_controller(xml, access_config) controller.start() cross1 = controller.get(iface12.guid, "cross") @@ -88,7 +88,7 @@ class ExecuteTestCase(unittest.TestCase): exp_desc, desc, app, node1, node2, iface1, iface2 = self.make_test_experiment() xml = exp_desc.to_xml() access_config = None - controller = proxy.create_controller(xml, access_config) + controller = proxy.create_experiment_controller(xml, access_config) controller.start() while not controller.is_finished(app.guid): @@ -114,7 +114,7 @@ class ExecuteTestCase(unittest.TestCase): access_config = proxy.AccessConfiguration() access_config.set_attribute_value(DC.DEPLOYMENT_MODE, DC.MODE_DAEMON) access_config.set_attribute_value(DC.ROOT_DIRECTORY, self.root_dir) - controller = proxy.create_controller(xml, access_config) + controller = proxy.create_experiment_controller(xml, access_config) controller.start() while not controller.is_finished(app.guid): @@ -142,7 +142,7 @@ class ExecuteTestCase(unittest.TestCase): xml = exp_desc.to_xml() - controller = proxy.create_controller(xml, access_config = None) + controller = proxy.create_experiment_controller(xml, access_config = None) controller.start() while not controller.is_finished(app.guid): @@ -175,7 +175,7 @@ class ExecuteTestCase(unittest.TestCase): access_config = proxy.AccessConfiguration() access_config.set_attribute_value(DC.DEPLOYMENT_MODE, DC.MODE_DAEMON) access_config.set_attribute_value(DC.ROOT_DIRECTORY, self.root_dir) - controller = proxy.create_controller(xml, access_config) + controller = proxy.create_experiment_controller(xml, access_config) controller.start() while not controller.is_finished(app.guid): @@ -192,6 +192,20 @@ class ExecuteTestCase(unittest.TestCase): self.assertEquals(controller.get_testbed_version(node1.guid), "01") self.assertEquals(controller.get_factory_id(node1.guid), "Node") + traces_info = controller.traces_info() + expected_traces_info = dict({ + 1: dict({ # testbed guid + 6: dict({ # element guid + 'fake': dict({ # trace_id + 'host': 'localhost', + 'filesize': '-1', + 'filepath': '' + }) + }) + }) + }) + self.assertEquals(traces_info, expected_traces_info) + controller.stop() controller.shutdown() @@ -208,7 +222,7 @@ class ExecuteTestCase(unittest.TestCase): access_config = proxy.AccessConfiguration() access_config.set_attribute_value(DC.DEPLOYMENT_MODE, DC.MODE_DAEMON) access_config.set_attribute_value(DC.ROOT_DIRECTORY, self.root_dir) - controller = proxy.create_controller(xml, access_config) + controller = proxy.create_experiment_controller(xml, access_config) controller.start() while not controller.is_finished(app.guid): @@ -230,7 +244,7 @@ class ExecuteTestCase(unittest.TestCase): # recover access_config.set_attribute_value(DC.RECOVER,True) - controller = proxy.create_controller(xml, access_config) + controller = proxy.create_experiment_controller(xml, access_config) # test recovery self.assertTrue(controller.is_finished(app.guid)) @@ -250,7 +264,7 @@ class ExecuteTestCase(unittest.TestCase): xml = exp_desc.to_xml() access_config = None - controller = proxy.create_controller(xml, access_config) + controller = proxy.create_experiment_controller(xml, access_config) controller.start() while not controller.is_finished(app.guid): time.sleep(0.5) @@ -285,7 +299,7 @@ class ExecuteTestCase(unittest.TestCase): xml = exp_desc.to_xml() access_config = None - controller = proxy.create_controller(xml, access_config) + controller = proxy.create_experiment_controller(xml, access_config) controller.start() while not controller.is_finished(app.guid): time.sleep(0.5) @@ -328,7 +342,7 @@ class ExecuteTestCase(unittest.TestCase): access_config.set_attribute_value(DC.DEPLOYMENT_COMMUNICATION, DC.ACCESS_SSH) access_config.set_attribute_value(DC.DEPLOYMENT_PORT, env.port) access_config.set_attribute_value(DC.USE_AGENT, True) - controller = proxy.create_controller(xml, access_config) + controller = proxy.create_experiment_controller(xml, access_config) controller.start() while not controller.is_finished(app.guid): diff --git a/test/testbeds/netns/execute.py b/test/testbeds/netns/execute.py index 8b8892a9..58d3a48c 100755 --- a/test/testbeds/netns/execute.py +++ b/test/testbeds/netns/execute.py @@ -167,7 +167,7 @@ class NetnsExecuteTestCase(unittest.TestCase): instance.shutdown() @test_util.skipUnless(os.getuid() == 0, "Test requires root privileges") - def test_node_pcap_trace(self): + def bug_test_node_pcap_trace(self): user = getpass.getuser() testbed_version = "01" instance = netns.TestbedController(testbed_version) @@ -190,7 +190,6 @@ class NetnsExecuteTestCase(unittest.TestCase): instance.defer_create_set(6, "user", user) instance.defer_connect(6, "node", 2, "apps") - time.sleep(5) instance.do_setup() instance.do_create() instance.do_connect_init() @@ -201,7 +200,6 @@ class NetnsExecuteTestCase(unittest.TestCase): instance.start() while instance.status(6) != STATUS_FINISHED: time.sleep(0.5) - time.sleep(5) pcap_result = instance.trace(2, "pcap") self.assertEquals(len(pcap_result), 1024) instance.stop() diff --git a/test/testbeds/netns/integration.py b/test/testbeds/netns/integration.py index c2d494a8..96d68cd9 100755 --- a/test/testbeds/netns/integration.py +++ b/test/testbeds/netns/integration.py @@ -108,7 +108,7 @@ class NetnsIntegrationTestCase(unittest.TestCase): access_config.set_attribute_value(DC.DEPLOYMENT_MODE, DC.MODE_DAEMON) access_config.set_attribute_value(DC.ROOT_DIRECTORY, self.root_dir) access_config.set_attribute_value(DC.LOG_LEVEL, DC.DEBUG_LEVEL) - controller = proxy.create_controller(xml, access_config) + controller = proxy.create_experiment_controller(xml, access_config) controller.start() while not controller.is_finished(app.guid): @@ -171,7 +171,7 @@ class NetnsIntegrationTestCase(unittest.TestCase): access_config.set_attribute_value(DC.DEPLOYMENT_COMMUNICATION, DC.ACCESS_SSH) access_config.set_attribute_value(DC.DEPLOYMENT_PORT, env.port) access_config.set_attribute_value(DC.USE_AGENT, True) - controller = proxy.create_controller(xml, access_config) + controller = proxy.create_experiment_controller(xml, access_config) controller.start() while not controller.is_finished(app.guid): diff --git a/test/testbeds/ns3/integration.py b/test/testbeds/ns3/integration.py index d247d211..5625c968 100755 --- a/test/testbeds/ns3/integration.py +++ b/test/testbeds/ns3/integration.py @@ -140,7 +140,7 @@ class Ns3IntegrationTestCase(unittest.TestCase): access_config.set_attribute_value(DC.DEPLOYMENT_MODE, DC.MODE_DAEMON) access_config.set_attribute_value(DC.ROOT_DIRECTORY, self.root_dir) access_config.set_attribute_value(DC.LOG_LEVEL, DC.DEBUG_LEVEL) - controller = proxy.create_controller(xml, access_config) + controller = proxy.create_experiment_controller(xml, access_config) controller.start() while not controller.is_finished(app.guid): -- 2.47.0