import os
import shutil
import sys
+import tempfile
+import test_util
import time
import unittest
-import uuid
class ExecuteTestCase(unittest.TestCase):
def setUp(self):
sys.modules["nepi.testbeds.mock.metadata_v01"] = mock.metadata_v01
sys.modules["nepi.testbeds.mock"] = mock
- self._root_dir = os.path.join(os.getenv("HOME"), ".nepi",
- str(uuid.uuid1()))
- os.makedirs(self._root_dir)
+ self.root_dir = tempfile.mkdtemp()
def test_single_process_integration(self):
exp_desc = ExperimentDescription()
access_config = proxy.AccessConfiguration()
access_config.set_attribute_value("mode",
proxy.AccessConfiguration.MODE_DAEMON)
- access_config.set_attribute_value("rootDirectory", self._root_dir)
+ access_config.set_attribute_value("rootDirectory", self.root_dir)
controller = proxy.create_controller(xml, access_config)
controller.start()
access_config = proxy.AccessConfiguration()
access_config.set_attribute_value("mode",
proxy.AccessConfiguration.MODE_DAEMON)
- access_config.set_attribute_value("rootDirectory", self._root_dir)
+ access_config.set_attribute_value("rootDirectory", self.root_dir)
controller.set_access_configuration(desc.guid, access_config)
controller.start()
access_config = proxy.AccessConfiguration()
access_config.set_attribute_value("mode",
proxy.AccessConfiguration.MODE_DAEMON)
- access_config.set_attribute_value("rootDirectory", self._root_dir)
+ access_config.set_attribute_value("rootDirectory", self.root_dir)
controller = proxy.create_controller(xml, access_config)
access_config2 = proxy.AccessConfiguration()
access_config2.set_attribute_value("mode",
proxy.AccessConfiguration.MODE_DAEMON)
- inst_root_dir = os.path.join(self._root_dir, "instance")
+ inst_root_dir = os.path.join(self.root_dir, "instance")
os.mkdir(inst_root_dir)
access_config2.set_attribute_value("rootDirectory", inst_root_dir)
controller.set_access_configuration(desc.guid, access_config2)
controller.stop()
controller.shutdown()
+ def TODO_test_ssh_daemonized_all_integration(self):
+ # This test doesn't run because
+ # sys.modules["nepi.testbeds.mock"] = mock
+ # is not set in the ssh process
+ exp_desc = ExperimentDescription()
+ testbed_version = "01"
+ testbed_id = "mock"
+ env = test_util.test_environment()
+ provider = FactoriesProvider(testbed_id, testbed_version)
+ desc = exp_desc.add_testbed_description(provider)
+ desc.set_attribute_value("fake", True)
+ node1 = desc.create("Node")
+ node2 = desc.create("Node")
+ iface1 = desc.create("Interface")
+ iface1.set_attribute_value("fake", True)
+ node1.connector("devs").connect(iface1.connector("node"))
+ iface2 = desc.create("Interface")
+ iface2.set_attribute_value("fake", True)
+ node2.connector("devs").connect(iface2.connector("node"))
+ iface1.connector("iface").connect(iface2.connector("iface"))
+ app = desc.create("Application")
+ app.connector("node").connect(node1.connector("apps"))
+ app.enable_trace("fake")
+
+ xml = exp_desc.to_xml()
+ access_config = proxy.AccessConfiguration()
+ access_config.set_attribute_value("mode",
+ proxy.AccessConfiguration.MODE_DAEMON)
+ access_config.set_attribute_value("rootDirectory", self.root_dir)
+ access_config.set_attribute_value("communication",
+ proxy.AccessConfiguration.ACCESS_SSH)
+ access_config.set_attribute_value("port", env.port)
+ access_config.set_attribute_value("useAgent", True)
+ controller = proxy.create_controller(xml, access_config)
+
+ access_config2 = proxy.AccessConfiguration()
+ access_config2.set_attribute_value("mode",
+ proxy.AccessConfiguration.MODE_DAEMON)
+ inst_root_dir = os.path.join(self.root_dir, "instance")
+ os.mkdir(inst_root_dir)
+ access_config2.set_attribute_value("rootDirectory", inst_root_dir)
+ access_config2.set_attribute_value("communication",
+ proxy.AccessConfiguration.ACCESS_SSH)
+ access_config2.set_attribute_value("port", env.port)
+ access_config2.set_attribute_value("useAgent", True)
+ controller.set_access_configuration(desc.guid, access_config2)
+
+ controller.start()
+ while not controller.is_finished(app.guid):
+ time.sleep(0.5)
+ fake_result = controller.trace(desc.guid, app.guid, "fake")
+ comp_result = """PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
+
+--- 10.0.0.2 ping statistics ---
+1 packets transmitted, 1 received, 0% packet loss, time 0ms
+"""
+ self.assertTrue(fake_result.startswith(comp_result))
+ controller.stop()
+ controller.shutdown()
+
def tearDown(self):
- shutil.rmtree(self._root_dir)
+ shutil.rmtree(self.root_dir)
if __name__ == '__main__':
unittest.main()