X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=test%2Fresources%2Flinux%2Fapplication.py;h=68ad474dd6e897b4af9c57b0a2bc774dbe242c25;hb=d83307efc3a24a5d5b307bfb6d575368d1a10f64;hp=a1f1397b1a18a75747133e02703b1b9fe3e1fdaf;hpb=561719f7cb8a42f139905c33e75ec5071c321170;p=nepi.git diff --git a/test/resources/linux/application.py b/test/resources/linux/application.py index a1f1397b..68ad474d 100755 --- a/test/resources/linux/application.py +++ b/test/resources/linux/application.py @@ -228,6 +228,69 @@ main (void) ec.shutdown() + @skipIfNotAlive + def t_condition_serialize(self, host, user, depends): + + dirpath = tempfile.mkdtemp() + + ec = ExperimentController(exp_id="test-condition-serial") + + node = ec.register_resource("LinuxNode") + ec.set(node, "hostname", host) + ec.set(node, "username", user) + ec.set(node, "cleanHome", True) + ec.set(node, "cleanProcesses", True) + + server = ec.register_resource("LinuxApplication") + cmd = "echo 'HOLA' | nc -l 3333" + ec.set(server, "command", cmd) + ec.set(server, "depends", depends) + ec.register_connection(server, node) + + client = ec.register_resource("LinuxApplication") + cmd = "nc 127.0.0.1 3333" + ec.set(client, "command", cmd) + ec.register_connection(client, node) + + ec.register_condition(client, ResourceAction.START, server, ResourceState.STARTED) + + apps = [client, server] + + filepath = ec.save(dirpath) + + ec.deploy() + + ec.wait_finished(apps) + + self.assertTrue(ec.state(node) == ResourceState.STARTED) + self.assertTrue(ec.state(server) == ResourceState.STOPPED) + self.assertTrue(ec.state(client) == ResourceState.STOPPED) + + stdout = ec.trace(client, "stdout") + self.assertTrue(stdout.strip() == "HOLA") + + ec.shutdown() + + # Load serialized experiment + ec2 = ExperimentController.load(filepath) + + ec2.deploy() + ec2.wait_finished(apps) + + self.assertEquals(len(ec.resources), len(ec2.resources)) + + self.assertTrue(ec2.state(node) == ResourceState.STARTED) + self.assertTrue(ec2.state(server) == ResourceState.STOPPED) + self.assertTrue(ec2.state(client) == ResourceState.STOPPED) + + stdout = ec2.trace(client, "stdout") + + self.assertTrue(stdout.strip() == "HOLA") + + ec2.shutdown() + + shutil.rmtree(dirpath) + @skipIfNotAlive def t_http_sources(self, host, user): @@ -250,6 +313,7 @@ main (void) ec.register_connection(app, node) + ec.deploy() ec.wait_finished([app]) @@ -358,6 +422,12 @@ main (void) def test_condition_ubuntu(self): self.t_condition(self.ubuntu_host, self.ubuntu_user, "netcat") + def test_condition_serialize_fedora(self): + self.t_condition_serialize(self.fedora_host, self.fedora_user, "nc") + + def test_condition_serialize_ubuntu(self): + self.t_condition_serialize(self.ubuntu_host, self.ubuntu_user, "netcat") + def test_http_sources_fedora(self): self.t_http_sources(self.fedora_host, self.fedora_user)