From patchwork Mon Dec 27 16:01:33 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Goldish X-Patchwork-Id: 434381 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id oBRKCV9W025997 for ; Mon, 27 Dec 2010 20:16:53 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754347Ab0L0QCT (ORCPT ); Mon, 27 Dec 2010 11:02:19 -0500 Received: from mx1.redhat.com ([209.132.183.28]:46294 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754341Ab0L0QCN (ORCPT ); Mon, 27 Dec 2010 11:02:13 -0500 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id oBRG2CFS025788 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 27 Dec 2010 11:02:13 -0500 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id oBRG2CuF030528; Mon, 27 Dec 2010 11:02:12 -0500 Received: from moof.tlv.redhat.com (dhcp-1-185.tlv.redhat.com [10.35.1.185]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id oBRG1rFs017175; Mon, 27 Dec 2010 11:02:11 -0500 From: Michael Goldish To: autotest@test.kernel.org, kvm@vger.kernel.org Cc: Michael Goldish Subject: [KVM-AUTOTEST PATCH 06/28] KVM test: migration_with_file_transfer: use kvm_utils.Thread Date: Mon, 27 Dec 2010 18:01:33 +0200 Message-Id: <1293465715-16599-6-git-send-email-mgoldish@redhat.com> In-Reply-To: <1293465715-16599-1-git-send-email-mgoldish@redhat.com> References: <1293465715-16599-1-git-send-email-mgoldish@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.25 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter1.kernel.org [140.211.167.41]); Mon, 27 Dec 2010 20:16:53 +0000 (UTC) diff --git a/client/tests/kvm/tests/migration_with_file_transfer.py b/client/tests/kvm/tests/migration_with_file_transfer.py index 4be70cd..3fb4945 100644 --- a/client/tests/kvm/tests/migration_with_file_transfer.py +++ b/client/tests/kvm/tests/migration_with_file_transfer.py @@ -18,15 +18,6 @@ def run_migration_with_file_transfer(test, params, env): @param params: Dictionary with test parameters. @param env: Dictionary with the test environment. """ - - def transfer_test(address, client, username, password, port, local_path, - remote_path, log_filename, timeout): - # kvm_utils.copy_files_to does not raise exception, so we need a wrapper - # in order to make it to be used by BackgroundTest. - if not kvm_utils.copy_files_to(address, client, username, password, - port, local_path, remote_path, log_filename, timeout): - raise error.TestError("Fail to do the file transfer!") - vm = kvm_test_utils.get_living_vm(env, params.get("main_vm")) timeout = int(params.get("login_timeout", 360)) session = kvm_test_utils.wait_for_login(vm, timeout=timeout) @@ -47,29 +38,26 @@ def run_migration_with_file_transfer(test, params, env): file_size = params.get("file_size", "1000") transfer_timeout = int(params.get("transfer_timeout", "240")) - bg = None - try: utils.run("dd if=/dev/zero of=/tmp/file bs=1M count=%s" % file_size) # Transfer file from host to guest in the backgroud - bg = kvm_test_utils.BackgroundTest(transfer_test, - (address, client, username, password, - port, "/tmp/file", guest_path, - log_filename, transfer_timeout)) + bg = kvm_utils.Thread(kvm_utils.copy_files_to, + (address, client, username, password, port, + "/tmp/file", guest_path, log_filename, + transfer_timeout)) bg.start() + try: + while bg.is_alive(): + logging.info("File transfer not ended, starting a round of " + "migration...") + vm = kvm_test_utils.migrate(vm, env, mig_timeout, mig_protocol) + finally: + # bg.join() returns the value returned by copy_files_to() + if not bg.join(): + raise error.TestFail("File transfer failed") - while bg.is_alive(): - logging.info("File transfer is not ended, start a round of" - "migration ...") - - # Migrate the VM - dest_vm = kvm_test_utils.migrate(vm, env, mig_timeout, - mig_protocol, False) - - vm = dest_vm finally: - if bg: bg.join() session.close() - if os.path.isfile("/tmp/zero"): - os.remove("/tmp/zero") + if os.path.isfile("/tmp/file"): + os.remove("/tmp/file")