----- "Amos Kong" <[email protected]> wrote: > On Mon, Jan 25, 2010 at 05:03:29AM -0500, Michael Goldish wrote: > > > > ----- "Amos Kong" <[email protected]> wrote: > > > > > 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 > > > > This is not the right solution to the problem. If I understand > correctly, > > you're hardcoding a mechanism to deal with the initial 'images/'. > The right > > solution would be to modify the config file to suit your needs. If > you work > > with /tmp, remove the line that pre-pends 'images/' to all image > names > > ("image_name.* ?<= images/") or change that line to "image_name.* > ?<= /tmp/". > > The config file is meant to be modified. > > Hello Michael, > > Your suggestion is good, this problem should be fixed through > configure file. > Our default iso files is on '$root_dir/isos/', and I assign this > special 'cdrom' > variable below "image_name.* ?<= images/". > > -------- > image_name.* ?<= images/ > cdrom.* ?<= isos/ > steps ?<= steps/ > > +cdrom: > + cdrom = /tmp/orig.iso > + > --------
The 'cdrom:' statement is probably not what you want, because you're supposed to put a regex that matches test names before the ':' (e.g. 'install:' or 'Fedora.11:'), not parameter names. What you did makes sense only if you have tests that contain the string 'cdrom' in their names. The effect of the config lines you provided is that all tests will expect their ISOs under isos/ except the tests named 'cdrom', which will expect their ISO at /tmp/orig.iso. > thanks. > Amos > -- > Amos Kong > Quality Engineer > Raycom Office(Beijing), Red Hat Inc. > Phone: +86-10-62608183 _______________________________________________ Autotest mailing list [email protected] http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
