In kvm_vm.py:
def get_image_filename(params, root_dir):
...
...
image_name = params.get("image_name", "image")
image_format = params.get("image_format", "qcow2")
image_filename = "%s.%s" % (image_name, image_format)
image_filename = kvm_utils.get_path(root_dir, image_filename)
If assign image_name as "/tmp/img" in configure file, it will be changed to
"images//tmp/img" by "image_name.* ?<= images/". Then the second argument of
kvm_utils.get_path() will always starts with "images/", this function could not
return right "/tmp/img.qcow2". This patch will join root_dir with "images/"
first, and analyze whether the rest part is absolute path.
Same problem also exists on ISO name.
Signed-off-by: Amos Kong <[email protected]>
---
client/tests/kvm/kvm_vm.py | 22 +++++++++++++++++++---
1 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/client/tests/kvm/kvm_vm.py b/client/tests/kvm/kvm_vm.py
index 8985f25..5ece6ed 100755
--- a/client/tests/kvm/kvm_vm.py
+++ b/client/tests/kvm/kvm_vm.py
@@ -23,10 +23,26 @@ def get_image_filename(params, root_dir):
image_name = params.get("image_name", "image")
image_format = params.get("image_format", "qcow2")
image_filename = "%s.%s" % (image_name, image_format)
- image_filename = kvm_utils.get_path(root_dir, image_filename)
+ n = image_filename.index('/') + 1
+ image_filename = kvm_utils.get_path(os.path.join(root_dir,
+ image_filename[:n]), image_filename[n:])
return image_filename
+def get_iso_filename(params, root_dir):
+ """
+ Generate an iso path from params and root_dir.
+
+ @param params: Dictionary containing the test parameters.
+ @param root_dir: Base directory for relative filenames.
+ """
+ iso = params.get("cdrom")
+ n = iso.index('/') + 1
+ iso = kvm_utils.get_path(os.path.join(root_dir, iso[:n]), iso[n:])
+
+ return iso
+
+
def create_image(params, root_dir):
"""
Create an image using qemu_image.
@@ -303,7 +319,7 @@ class VM:
iso = params.get("cdrom")
if iso:
- iso = kvm_utils.get_path(root_dir, iso)
+ iso = get_iso_filename(params, root_dir)
qemu_cmd += " -cdrom %s" % iso
soundhw = params.get("soundcards")
@@ -377,7 +393,7 @@ class VM:
# Verify the md5sum of the ISO image
iso = params.get("cdrom")
if iso:
- iso = kvm_utils.get_path(root_dir, iso)
+ iso = get_iso_filename(params, root_dir)
if not os.path.exists(iso):
logging.error("ISO file not found: %s" % iso)
return False
--
1.5.5.6
_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest