0b51f8ff5d
(TOCTOU) race condition Resolved by upgrade to version 4.0.0 (jsc#SLE-16582) virt-manager-4.0.0.tar.gz - Other features and bug fixes (bsc#1027942) virt-install –os-variant/–osinfo is now a hard requirement for most cases Add ‘Enable shared memory’ UI checkbox (Lin Ma) add UI preference to default to UEFI for new VMs (Charles Arnold) Add virtiofs filesystem driver UI option Fill in all –cputune, –cpu, –shmem, –input, and –boot suboptions (Hugues Fafard) virt-* mdev improvements (Shalini Chellathurai Saroja) bhyve improvments (Roman Bogorodskiy) Revive network portgroup UI enable a TPM by default when UEFI is used (Daniel P. Berrangé) Use cpu host-passthrough by default on qemu x86 use virtio-gpu video for most modern distros Default to extra pcie root ports for q35 set discard=unmap by default for sparse disks and block devices We now require xorissofs for –location ISO We now use setuptools rather than just plain distutils - Add virtman-revert-use-of-AyatanaAppIndicator3.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=558
51 lines
2.1 KiB
Diff
51 lines
2.1 KiB
Diff
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-3.3.0/virtinst/devices/disk.py
|
|
===================================================================
|
|
--- virt-manager-3.3.0.orig/virtinst/devices/disk.py
|
|
+++ virt-manager-3.3.0/virtinst/devices/disk.py
|
|
@@ -895,6 +895,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()
|
|
|
|
@@ -902,11 +913,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
|