Description of problem: Satellite VM provisioning fails with VirtDiskPathExistsError() when installing to a block device if that block device already exists. Version-Release number of selected component (if applicable): How reproducible: Every time. Steps to Reproduce: 1. Go to Virtualization->Provisioning in the Satellite web UI. 2. Click the Advanced Configuration button and specify a multipath device in the Virtual Storage Path field, and then schedule the kickstart 3. rhn_check Actual results: # rhn_check Package spacewalk-koan-0.2.7-7.el5sat.noarch already installed and latest version spacewalkkoan.spacewalkkoan.VirtDiskPathExistsError Virt Disk Path /dev/mapper/mpath10 already exists on the host system. Please provide another disk path for the virt guest and reschedule your guest kickstart. File "/usr/share/rhn/spacewalkkoan/spacewalkkoan.py", line 171, in initiate_guest raise VirtDiskPathExistsError(disk_path) Expected results: Either the check in initiate_guest() should be eliminated altogether, or it should be doing something more intelligent (like only performing the check for disk image files). Additional info: This also fails when specifying one of the underlying block devices (e.g. /dev/sdl1) for the multipath device. By commenting out the following lines in initiate_guest() in spacewalkkoan.py, the installation proceeds successfully: if os.path.exists(disk_path): raise VirtDiskPathExistsError(disk_path) On a side note, if you were to specify a device that does not already exist (such that the above check is successful), then the install will fail with the error "virt path is not a valid block device" in calc_virt_path2() in app.py.
Fix in Spacewalk upstream (spacewalk-koan): spacewalk.git master: 1552baf8e506bfb561835f159899b110213d18bf
satellite.git SATELLITE-5.4: 1bf193e880a9efb107c0e9e4cbe5a44179585986
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Cause: A bug in spacewalk-koan code. Consequence: Provisioning a virtual guest would return a python traceback in case the provisioned guest was to use a block device for a disk. Fix: Quite simple. Result: It's possible to provision a virtual guest with a block device for a disk drive.
Technical note updated. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. Diffed Contents: @@ -1,7 +1 @@ -Cause: A bug in spacewalk-koan code. +Due to an error in the spacewalk-koan package, an attempt to provision a virtual guest with a block device as a disk drive caused the rhn_check utility to terminate unexpectedly with a traceback. With this update, this error no longer occurs and users are now able to provision such virtual guests as expected.- -Consequence: Provisioning a virtual guest would return a python traceback in case the provisioned guest was to use a block device for a disk. - -Fix: Quite simple. - -Result: It's possible to provision a virtual guest with a block device for a disk drive.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2011-1331.html