virt-manager/virtinst-xenbus-disk-index-fix.patch

35 lines
1.4 KiB
Diff
Raw Normal View History

bnc#872789
--- virt-manager-1.0.1/virtinst/devicedisk.py.orig 2014-04-14 11:41:36.904354483 -0600
+++ virt-manager-1.0.1/virtinst/devicedisk.py 2014-04-14 11:45:39.565744657 -0600
@@ -931,6 +931,15 @@ class VirtualDisk(VirtualDevice):
@rtype C{str}
"""
prefix, maxnode = self.get_target_prefix(skip_targets)
+ postfix_targets = []
+ if self.conn.is_xen():
+ prefixes = [ "hd", "xvd", "vd", "sd", "fd" ]
+ for x in skip_targets:
+ 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()
@@ -944,7 +953,12 @@ class VirtualDisk(VirtualDevice):
ran = range(pref_ctrl * 7, (pref_ctrl + 1) * 7)
for i in ran:
- 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