From: Michael Goldish <mgoldish@redhat.com>
To: autotest@test.kernel.org, kvm@vger.kernel.org
Subject: [KVM-AUTOTEST PATCH 07/17] KVM test: introduce VM exceptions
Date: Mon, 3 Jan 2011 20:27:08 +0200 [thread overview]
Message-ID: <1294079238-21239-7-git-send-email-mgoldish@redhat.com> (raw)
In-Reply-To: <1294079238-21239-1-git-send-email-mgoldish@redhat.com>
Signed-off-by: Michael Goldish <mgoldish@redhat.com>
---
client/tests/kvm/kvm_vm.py | 146 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 146 insertions(+), 0 deletions(-)
diff --git a/client/tests/kvm/kvm_vm.py b/client/tests/kvm/kvm_vm.py
index e310401..c237fbe 100755
--- a/client/tests/kvm/kvm_vm.py
+++ b/client/tests/kvm/kvm_vm.py
@@ -11,6 +11,152 @@ from autotest_lib.client.common_lib import error
from autotest_lib.client.bin import utils
+class VMError(Exception):
+ pass
+
+
+class VMCreateError(VMError):
+ def __init__(self, cmd, status, output):
+ VMError.__init__(self, cmd, status, output)
+ self.cmd = cmd
+ self.status = status
+ self.output = output
+
+ def __str__(self):
+ return ("VM creation command failed: %r (status: %s, output: %r)" %
+ (self.cmd, self.status, self.output))
+
+
+class VMHashMismatchError(VMError):
+ def __init__(self, actual, expected):
+ VMError.__init__(self, actual, expected)
+ self.actual_hash = actual
+ self.expected_hash = expected
+
+ def __str__(self):
+ return ("CD image hash (%s) differs from expected one (%s)" %
+ (self.actual_hash, self.expected_hash))
+
+
+class VMImageMissingError(VMError):
+ def __init__(self, filename):
+ VMError.__init__(self, filename)
+ self.filename = filename
+
+ def __str__(self):
+ return "CD image file not found: %r" % self.filename
+
+
+class VMBadPATypeError(VMError):
+ def __init__(self, pa_type):
+ VMError.__init__(self, pa_type)
+ self.pa_type = pa_type
+
+ def __str__(self):
+ return "Unsupported PCI assignable type: %r" % self.pa_type
+
+
+class VMPAError(VMError):
+ def __init__(self, pa_type):
+ VMError.__init__(self, pa_type)
+ self.pa_type = pa_type
+
+ def __str__(self):
+ return ("No PCI assignable devices could be assigned "
+ "(pci_assignable=%r)" % self.pa_type)
+
+
+class VMPostCreateError(VMError):
+ def __init__(self, cmd, output):
+ VMError.__init__(self, cmd, output)
+ self.cmd = cmd
+ self.output = output
+
+
+class VMHugePageError(VMPostCreateError):
+ def __str__(self):
+ return ("Cannot allocate hugepage memory (command: %r, output: %r)" %
+ (self.cmd, self.output))
+
+
+class VMKVMInitError(VMPostCreateError):
+ def __str__(self):
+ return ("Cannot initialize KVM (command: %r, output: %r)" %
+ (self.cmd, self.output))
+
+
+class VMDeadError(VMError):
+ pass
+
+
+class VMAddressError(VMError):
+ pass
+
+
+class VMPortNotRedirectedError(VMAddressError):
+ def __init__(self, port):
+ VMAddressError.__init__(self, port)
+ self.port = port
+
+ def __str__(self):
+ return "Port not redirected: %s" % self.port
+
+
+class VMAddressVerificationError(VMAddressError):
+ def __init__(self, mac, ip):
+ VMAddressError.__init__(self, mac, ip)
+ self.mac = mac
+ self.ip = ip
+
+ def __str__(self):
+ return "Cannot verify MAC-IP address mapping: %s ---> %s" % (self.mac,
+ self.ip)
+
+
+class VMMACAddressMissingError(VMAddressError):
+ def __init__(self, nic_index):
+ VMAddressError.__init__(self, nic_index)
+ self.nic_index = nic_index
+
+ def __str__(self):
+ return "No MAC address defined for NIC #%s" % self.nic_index
+
+
+class VMIPAddressMissingError(VMAddressError):
+ def __init__(self, mac):
+ VMAddressError.__init__(self, mac)
+ self.mac = mac
+
+ def __str__(self):
+ return "Cannot find IP address for MAC address %s" % self.mac
+
+
+class VMMigrateError(VMError):
+ pass
+
+
+class VMMigrateTimeoutError(VMMigrateError):
+ pass
+
+
+class VMMigrateCancelError(VMMigrateError):
+ pass
+
+
+class VMMigrateFailedError(VMMigrateError):
+ pass
+
+
+class VMMigrateStateMismatchError(VMMigrateError):
+ def __init__(self, src_hash, dst_hash):
+ self.src_hash = src_hash
+ self.dst_hash = dst_hash
+
+ def __str__(self):
+ return ("Mismatch of VM state before and after migration (%s != %s)" %
+ (self.src_hash, self.dst_hash))
+
+
def get_image_filename(params, root_dir):
"""
Generate an image path from params and root_dir.
--
1.7.3.4
next prev parent reply other threads:[~2011-01-03 18:27 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-03 18:27 [KVM-AUTOTEST PATCH 01/17] KVM test: introduce exception classes for _remote_login() and _remote_scp() Michael Goldish
2011-01-03 18:27 ` [KVM-AUTOTEST PATCH 02/17] KVM test: kvm_utils.py: reorder remote_login(), remote_scp(), copy_files_to(), etc Michael Goldish
2011-01-03 18:27 ` [KVM-AUTOTEST PATCH 03/17] KVM test: use the new LoginError and SCPError exceptions Michael Goldish
2011-01-03 18:27 ` [KVM-AUTOTEST PATCH 04/17] KVM test: add VM.wait_for_login() and kvm_utils.wait_for_login() Michael Goldish
2011-01-03 18:27 ` [KVM-AUTOTEST PATCH 05/17] KVM test: use the new wait_for_login() Michael Goldish
2011-01-03 18:27 ` [KVM-AUTOTEST PATCH 06/17] KVM test: rename VM.remote_login() to VM.login() Michael Goldish
2011-01-03 18:27 ` Michael Goldish [this message]
2011-01-03 18:27 ` [KVM-AUTOTEST PATCH 08/17] KVM test: let kvm_vm.create_image() raise a CmdError if qemu-img fails Michael Goldish
2011-01-03 18:27 ` [KVM-AUTOTEST PATCH 09/17] KVM test: use the new VM exceptions Michael Goldish
2011-01-03 18:27 ` [KVM-AUTOTEST PATCH 10/17] KVM test: add VM.verify_alive() and Monitor.verify_responsive() Michael Goldish
2011-01-03 18:27 ` [KVM-AUTOTEST PATCH 11/17] KVM test: use VM.verify_alive() instead of kvm_test_utils.get_living_vm() Michael Goldish
2011-01-03 18:27 ` [KVM-AUTOTEST PATCH 12/17] KVM test: kvm_preprocessing.py: simplify handling of params['migration_mode'] Michael Goldish
2011-01-03 18:27 ` [KVM-AUTOTEST PATCH 13/17] KVM test: make migrate() a VM method Michael Goldish
2011-01-03 18:27 ` [KVM-AUTOTEST PATCH 14/17] KVM test: simplify migration_with_reboot and migration_with_file_transfer Michael Goldish
2011-01-03 18:27 ` [KVM-AUTOTEST PATCH 15/17] KVM test: use VM.migrate() instead of kvm_test_utils.migrate() Michael Goldish
2011-01-03 18:27 ` [KVM-AUTOTEST PATCH 16/17] KVM test: reorder kvm_utils.copy_files_from() path parameters Michael Goldish
2011-01-03 18:27 ` [KVM-AUTOTEST PATCH 17/17] KVM test: rename path parameters in kvm_vm.copy_files_*() Michael Goldish
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1294079238-21239-7-git-send-email-mgoldish@redhat.com \
--to=mgoldish@redhat.com \
--cc=autotest@test.kernel.org \
--cc=kvm@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.