Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:bmwiedemann:reproducible:distribution:ring1
virt-manager
virtinst-xenbus-disk-index-fix.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File virtinst-xenbus-disk-index-fix.patch of Package virt-manager
Reference: bnc#872789 This is an indexing problem created by virt-manager. It knows not to add two IDE disks of the same name (eg, 'hda' twice) or two Xen disks of the same name (eg, 'xvda' twice) but with the different bus types (ide vs xen) it added xvda with hda. These disks were then passed to qemu where it error'ed out with the disks having the same index (in this case both are 0). Index: virt-manager-4.1.0/virtinst/devices/disk.py =================================================================== --- virt-manager-4.1.0.orig/virtinst/devices/disk.py +++ virt-manager-4.1.0/virtinst/devices/disk.py @@ -903,6 +903,17 @@ class DeviceDisk(Device): :returns: generated target """ prefix, maxnode = self.get_target_prefix() + postfix_targets = [] + if self.conn.is_xen(): + prefixes = [ "hd", "xvd", "vd", "sd", "fd" ] + for x in skip_targets: + if x is None: + continue + for p in prefixes: + found = x.split(p,1) + if found and len(found) == 2: + postfix_targets.append(found[1]) + break skip_targets = [t for t in skip_targets if t and t.startswith(prefix)] skip_targets.sort() @@ -910,11 +921,18 @@ class DeviceDisk(Device): first_found = None for i in range(maxnode): - gen_t = prefix + self.num_to_target(i + 1) + postfix = self.num_to_target(i + 1) + gen_t = prefix + postfix + if self.conn.is_xen() and postfix in postfix_targets: + if gen_t in skip_targets: + skip_targets.remove(gen_t) + continue if gen_t in skip_targets: skip_targets.remove(gen_t) continue if not skip_targets: + if first_found: + return first_found return gen_t elif not first_found: first_found = gen_t
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor