Accepting request 515823 from Virtualization
Update to virt-manager 1.4.2 OBS-URL: https://build.opensuse.org/request/show/515823 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/virt-manager?expand=0&rev=153
This commit is contained in:
commit
ca5d93fadc
@ -1,32 +0,0 @@
|
||||
Subject: console: Ensure bool value used for set_sensitive call
|
||||
From: Cole Robinson crobinso@redhat.com Wed Mar 29 12:07:02 2017 -0400
|
||||
Date: Wed Mar 29 12:07:50 2017 -0400:
|
||||
Git: 0610cd6acb5d59f492070759b01e8ee5ccd082a9
|
||||
|
||||
Seen in a bug log file:
|
||||
|
||||
[Tue, 28 Mar 2017 12:05:21 virt-manager 2465] DEBUG (cli:251) Uncaught exception:
|
||||
Traceback (most recent call last):
|
||||
File "/usr/share/virt-manager/virtManager/details.py", line 1303, in refresh_vm_state
|
||||
self.console.details_update_widget_states()
|
||||
File "/usr/share/virt-manager/virtManager/console.py", line 1025, in details_update_widget_states
|
||||
return self._update_vm_widget_states()
|
||||
File "/usr/share/virt-manager/virtManager/console.py", line 597, in _update_vm_widget_states
|
||||
self._refresh_widget_states()
|
||||
File "/usr/share/virt-manager/virtManager/console.py", line 663, in _refresh_widget_states
|
||||
self.widget("details-menu-vm-screenshot").set_sensitive(is_viewer)
|
||||
TypeError: Argument 1 does not allow None as a value
|
||||
|
||||
diff --git a/virtManager/console.py b/virtManager/console.py
|
||||
index 0c051c7f..9bb0295a 100644
|
||||
--- a/virtManager/console.py
|
||||
+++ b/virtManager/console.py
|
||||
@@ -658,7 +658,7 @@ class vmmConsolePages(vmmGObjectUI):
|
||||
def _refresh_widget_states(self):
|
||||
pagenum = self.widget("console-pages").get_current_page()
|
||||
paused = self.vm.is_paused()
|
||||
- is_viewer = (pagenum == _CONSOLE_PAGE_VIEWER and
|
||||
+ is_viewer = bool(pagenum == _CONSOLE_PAGE_VIEWER and
|
||||
self._viewer and self._viewer.console_is_open())
|
||||
|
||||
self.widget("details-menu-vm-screenshot").set_sensitive(is_viewer)
|
@ -1,35 +0,0 @@
|
||||
Subject: Reset Guest.domain to None on domain creation error
|
||||
From: Christophe Fergeau cfergeau@redhat.com Thu Apr 13 11:18:46 2017 +0200
|
||||
Date: Thu Apr 13 14:24:40 2017 -0400:
|
||||
Git: 2099a1946e22b62d31b954dc3e7b813404c2d019
|
||||
|
||||
When an error occurs when the VM creation wizard tries to start the VM,
|
||||
it's then not possible to press again the "Finish" button to try again
|
||||
to start it, as this errors out with:
|
||||
|
||||
Traceback (most recent call last):
|
||||
File "/home/teuf/redhat/virt/virt-manager/virtManager/asyncjob.py", line 88, in cb_wrapper
|
||||
callback(asyncjob, *args, **kwargs)
|
||||
File "/home/teuf/redhat/virt/virt-manager/virtManager/create.py", line 2341, in _do_async_install
|
||||
guest.start_install(meter=meter)
|
||||
File "/home/teuf/redhat/virt/virt-manager/virtinst/guest.py", line 457, in start_install
|
||||
raise RuntimeError(_("Domain has already been started!"))
|
||||
RuntimeError: Domain has already been started!
|
||||
|
||||
This is caused by code introduced in commit fc6778 which does not reset
|
||||
self.domain to None when an exception is caught.
|
||||
|
||||
Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
|
||||
|
||||
Index: virt-manager-1.4.1/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.4.1/virtinst/guest.py
|
||||
@@ -408,6 +408,7 @@ class Guest(XMLBuilder):
|
||||
exc_info = sys.exc_info()
|
||||
try:
|
||||
self.domain.undefine()
|
||||
+ self.domain = None
|
||||
except:
|
||||
pass
|
||||
raise exc_info[0], exc_info[1], exc_info[2]
|
@ -1,134 +0,0 @@
|
||||
References: rbz#1387479
|
||||
|
||||
Subject: virt-install: add support for loader secure attribute
|
||||
From: Pavel Hrdina phrdina@redhat.com Thu Jan 26 16:11:31 2017 +0100
|
||||
Date: Thu Jun 1 09:58:46 2017 +0200:
|
||||
Git: 24f9d05329a485c21325fc2e93a283b832359d05
|
||||
|
||||
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
|
||||
|
||||
Index: virt-manager-1.4.1/man/virt-install.pod
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/man/virt-install.pod
|
||||
+++ virt-manager-1.4.1/man/virt-install.pod
|
||||
@@ -514,13 +514,14 @@ correct UEFI parameters, libvirt needs t
|
||||
via domcapabilities XML, so this will likely only work if using properly
|
||||
configured distro packages.
|
||||
|
||||
-=item B<--boot loader=/.../OVMF_CODE.fd,loader_ro=yes,loader_type=pflash,nvram_template=/.../OVMF_VARS.fd>
|
||||
+=item B<--boot loader=/.../OVMF_CODE.fd,loader_ro=yes,loader_type=pflash,nvram_template=/.../OVMF_VARS.fd,loader_secure=no>
|
||||
|
||||
Specify that the virtual machine use the custom OVMF binary as boot firmware,
|
||||
mapped as a virtual flash chip. In addition, request that libvirt instantiate
|
||||
the VM-specific UEFI varstore from the custom "/.../OVMF_VARS.fd" varstore
|
||||
template. This is the recommended UEFI setup, and should be used if
|
||||
---boot uefi doesn't know about your UEFI binaries.
|
||||
+--boot uefi doesn't know about your UEFI binaries. If your UEFI firmware
|
||||
+supports Secure boot feature you can enable it via loader_secure.
|
||||
|
||||
=back
|
||||
|
||||
Index: virt-manager-1.4.1/tests/cli-test-xml/compare/virt-install-boot-loader-secure.xml
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ virt-manager-1.4.1/tests/cli-test-xml/compare/virt-install-boot-loader-secure.xml
|
||||
@@ -0,0 +1,29 @@
|
||||
+<domain type="test">
|
||||
+ <name>foobar</name>
|
||||
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
|
||||
+ <memory>65536</memory>
|
||||
+ <currentMemory>65536</currentMemory>
|
||||
+ <vcpu>1</vcpu>
|
||||
+ <os>
|
||||
+ <type arch="i686">hvm</type>
|
||||
+ <loader secure="yes">/path/to/loader</loader>
|
||||
+ <boot dev="hd"/>
|
||||
+ </os>
|
||||
+ <features>
|
||||
+ <pae/>
|
||||
+ </features>
|
||||
+ <clock offset="utc"/>
|
||||
+ <pm>
|
||||
+ <suspend-to-mem enabled="no"/>
|
||||
+ <suspend-to-disk enabled="no"/>
|
||||
+ </pm>
|
||||
+ <devices>
|
||||
+ <emulator>/usr/bin/test-hv</emulator>
|
||||
+ <controller type="usb" index="0" model="none"/>
|
||||
+ <interface type="user">
|
||||
+ <mac address="00:11:22:33:44:55"/>
|
||||
+ </interface>
|
||||
+ <input type="mouse" bus="ps2"/>
|
||||
+ <console type="pty"/>
|
||||
+ </devices>
|
||||
+</domain>
|
||||
Index: virt-manager-1.4.1/tests/clitest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/tests/clitest.py
|
||||
+++ virt-manager-1.4.1/tests/clitest.py
|
||||
@@ -561,6 +561,14 @@ c.add_compare("--features smm=on", "feat
|
||||
c.add_invalid("--features smm=on --machine pc")
|
||||
|
||||
|
||||
+########################
|
||||
+# Boot install options #
|
||||
+########################
|
||||
+
|
||||
+c = vinst.add_category("boot", "--nographics --noautoconsole --import --disk none --controller usb,model=none")
|
||||
+c.add_compare("--boot loader=/path/to/loader,loader_secure=yes", "boot-loader-secure")
|
||||
+
|
||||
+
|
||||
####################################################
|
||||
# CPU/RAM/numa and other singleton VM config tests #
|
||||
####################################################
|
||||
Index: virt-manager-1.4.1/virtinst/cli.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/cli.py
|
||||
+++ virt-manager-1.4.1/virtinst/cli.py
|
||||
@@ -1573,6 +1573,13 @@ class ParserBoot(VirtCLIParser):
|
||||
inst.os.smbios_mode = val
|
||||
self.optdict["smbios_mode"] = val
|
||||
|
||||
+ def set_loader_secure_cb(self, inst, val, virtarg):
|
||||
+ if not inst.conn.check_support(inst.conn.SUPPORT_DOMAIN_LOADER_SECURE):
|
||||
+ raise RuntimeError("secure attribute for loader is not supported "
|
||||
+ "by libvirt.")
|
||||
+ inst.os.loader_secure = val
|
||||
+ return val
|
||||
+
|
||||
def noset_cb(self, inst, val, virtarg):
|
||||
pass
|
||||
|
||||
@@ -1609,6 +1616,8 @@ ParserBoot.add_arg("os.dtb", "dtb")
|
||||
ParserBoot.add_arg("os.loader", "loader")
|
||||
ParserBoot.add_arg("os.loader_ro", "loader_ro", is_onoff=True)
|
||||
ParserBoot.add_arg("os.loader_type", "loader_type")
|
||||
+ParserBoot.add_arg("os.loader_secure", "loader_secure", is_onoff=True,
|
||||
+ cb=ParserBoot.set_loader_secure_cb)
|
||||
ParserBoot.add_arg("os.nvram", "nvram")
|
||||
ParserBoot.add_arg("os.nvram_template", "nvram_template")
|
||||
ParserBoot.add_arg("os.kernel_args", "kernel_args",
|
||||
Index: virt-manager-1.4.1/virtinst/osxml.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/osxml.py
|
||||
+++ virt-manager-1.4.1/virtinst/osxml.py
|
||||
@@ -116,6 +116,7 @@ class OSXML(XMLBuilder):
|
||||
loader = XMLProperty("./loader")
|
||||
loader_ro = XMLProperty("./loader/@readonly", is_yesno=True)
|
||||
loader_type = XMLProperty("./loader/@type")
|
||||
+ loader_secure = XMLProperty("./loader/@secure", is_yesno=True)
|
||||
smbios_mode = XMLProperty("./smbios/@mode")
|
||||
nvram = XMLProperty("./nvram")
|
||||
nvram_template = XMLProperty("./nvram/@template")
|
||||
Index: virt-manager-1.4.1/virtinst/support.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/support.py
|
||||
+++ virt-manager-1.4.1/virtinst/support.py
|
||||
@@ -362,6 +362,7 @@ SUPPORT_DOMAIN_STATE = _make(function="v
|
||||
SUPPORT_DOMAIN_OPEN_GRAPHICS = _make(function="virDomain.openGraphicsFD",
|
||||
version="1.2.8", hv_version={"qemu": 0})
|
||||
SUPPORT_DOMAIN_FEATURE_SMM = _make(version="2.1.0")
|
||||
+SUPPORT_DOMAIN_LOADER_SECURE = _make(version="2.1.0")
|
||||
|
||||
|
||||
###############
|
File diff suppressed because it is too large
Load Diff
@ -1,297 +0,0 @@
|
||||
References: rbz#1387479
|
||||
|
||||
Subject: virtinst: if required by UEFI enable SMM feature and set q35 machine type
|
||||
From: Pavel Hrdina phrdina@redhat.com Mon Feb 6 13:46:06 2017 +0100
|
||||
Date: Thu Jun 1 09:58:46 2017 +0200:
|
||||
Git: 4f8e795c6a7158b3da48f65322cabfae1d110cae
|
||||
|
||||
If we detect that the UEFI image is build to require SMM feature we
|
||||
should configure the guest to enable SMM feature and set q35 machine
|
||||
type. Without this user wouldn't be able to boot the guest.
|
||||
|
||||
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1387479
|
||||
|
||||
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
|
||||
|
||||
Index: virt-manager-1.4.1/tests/capabilities-xml/kvm-x86_64-domcaps-q35.xml
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ virt-manager-1.4.1/tests/capabilities-xml/kvm-x86_64-domcaps-q35.xml
|
||||
@@ -0,0 +1,126 @@
|
||||
+<domainCapabilities>
|
||||
+ <path>/home/phrdina/work/qemu/x86_64-softmmu/qemu-system-x86_64</path>
|
||||
+ <domain>kvm</domain>
|
||||
+ <machine>pc-q35-2.9</machine>
|
||||
+ <arch>x86_64</arch>
|
||||
+ <vcpu max='288'/>
|
||||
+ <os supported='yes'>
|
||||
+ <loader supported='yes'>
|
||||
+ <value>/usr/share/ovmf/OVMF_CODE.secboot.fd</value>
|
||||
+ <enum name='type'>
|
||||
+ <value>rom</value>
|
||||
+ <value>pflash</value>
|
||||
+ </enum>
|
||||
+ <enum name='readonly'>
|
||||
+ <value>yes</value>
|
||||
+ <value>no</value>
|
||||
+ </enum>
|
||||
+ </loader>
|
||||
+ </os>
|
||||
+ <cpu>
|
||||
+ <mode name='host-passthrough' supported='yes'/>
|
||||
+ <mode name='host-model' supported='yes'>
|
||||
+ <model fallback='forbid'>Skylake-Client</model>
|
||||
+ <vendor>Intel</vendor>
|
||||
+ <feature policy='require' name='ss'/>
|
||||
+ <feature policy='require' name='vmx'/>
|
||||
+ <feature policy='require' name='hypervisor'/>
|
||||
+ <feature policy='require' name='tsc_adjust'/>
|
||||
+ <feature policy='require' name='clflushopt'/>
|
||||
+ <feature policy='require' name='xsaves'/>
|
||||
+ <feature policy='require' name='pdpe1gb'/>
|
||||
+ <feature policy='require' name='invtsc'/>
|
||||
+ </mode>
|
||||
+ <mode name='custom' supported='yes'>
|
||||
+ <model usable='yes'>qemu64</model>
|
||||
+ <model usable='yes'>qemu32</model>
|
||||
+ <model usable='no'>phenom</model>
|
||||
+ <model usable='yes'>pentium3</model>
|
||||
+ <model usable='yes'>pentium2</model>
|
||||
+ <model usable='yes'>pentium</model>
|
||||
+ <model usable='yes'>n270</model>
|
||||
+ <model usable='yes'>kvm64</model>
|
||||
+ <model usable='yes'>kvm32</model>
|
||||
+ <model usable='yes'>coreduo</model>
|
||||
+ <model usable='yes'>core2duo</model>
|
||||
+ <model usable='no'>athlon</model>
|
||||
+ <model usable='yes'>Westmere</model>
|
||||
+ <model usable='yes'>Skylake-Client</model>
|
||||
+ <model usable='yes'>SandyBridge</model>
|
||||
+ <model usable='yes'>Penryn</model>
|
||||
+ <model usable='no'>Opteron_G5</model>
|
||||
+ <model usable='no'>Opteron_G4</model>
|
||||
+ <model usable='no'>Opteron_G3</model>
|
||||
+ <model usable='yes'>Opteron_G2</model>
|
||||
+ <model usable='yes'>Opteron_G1</model>
|
||||
+ <model usable='yes'>Nehalem</model>
|
||||
+ <model usable='yes'>IvyBridge</model>
|
||||
+ <model usable='yes'>Haswell</model>
|
||||
+ <model usable='yes'>Haswell-noTSX</model>
|
||||
+ <model usable='yes'>Conroe</model>
|
||||
+ <model usable='yes'>Broadwell</model>
|
||||
+ <model usable='yes'>Broadwell-noTSX</model>
|
||||
+ <model usable='yes'>486</model>
|
||||
+ </mode>
|
||||
+ </cpu>
|
||||
+ <devices>
|
||||
+ <disk supported='yes'>
|
||||
+ <enum name='diskDevice'>
|
||||
+ <value>disk</value>
|
||||
+ <value>cdrom</value>
|
||||
+ <value>floppy</value>
|
||||
+ <value>lun</value>
|
||||
+ </enum>
|
||||
+ <enum name='bus'>
|
||||
+ <value>fdc</value>
|
||||
+ <value>scsi</value>
|
||||
+ <value>virtio</value>
|
||||
+ <value>usb</value>
|
||||
+ <value>sata</value>
|
||||
+ </enum>
|
||||
+ </disk>
|
||||
+ <graphics supported='yes'>
|
||||
+ <enum name='type'>
|
||||
+ <value>sdl</value>
|
||||
+ <value>vnc</value>
|
||||
+ <value>spice</value>
|
||||
+ </enum>
|
||||
+ </graphics>
|
||||
+ <video supported='yes'>
|
||||
+ <enum name='modelType'>
|
||||
+ <value>vga</value>
|
||||
+ <value>cirrus</value>
|
||||
+ <value>vmvga</value>
|
||||
+ <value>qxl</value>
|
||||
+ <value>virtio</value>
|
||||
+ </enum>
|
||||
+ </video>
|
||||
+ <hostdev supported='yes'>
|
||||
+ <enum name='mode'>
|
||||
+ <value>subsystem</value>
|
||||
+ </enum>
|
||||
+ <enum name='startupPolicy'>
|
||||
+ <value>default</value>
|
||||
+ <value>mandatory</value>
|
||||
+ <value>requisite</value>
|
||||
+ <value>optional</value>
|
||||
+ </enum>
|
||||
+ <enum name='subsysType'>
|
||||
+ <value>usb</value>
|
||||
+ <value>pci</value>
|
||||
+ <value>scsi</value>
|
||||
+ </enum>
|
||||
+ <enum name='capsType'/>
|
||||
+ <enum name='pciBackend'>
|
||||
+ <value>default</value>
|
||||
+ <value>kvm</value>
|
||||
+ <value>vfio</value>
|
||||
+ </enum>
|
||||
+ </hostdev>
|
||||
+ </devices>
|
||||
+ <features>
|
||||
+ <gic supported='no'/>
|
||||
+ </features>
|
||||
+</domainCapabilities>
|
||||
+
|
||||
+
|
||||
Index: virt-manager-1.4.1/tests/cli-test-xml/compare/virt-install-boot-uefi.xml
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ virt-manager-1.4.1/tests/cli-test-xml/compare/virt-install-boot-uefi.xml
|
||||
@@ -0,0 +1,61 @@
|
||||
+<domain type="kvm">
|
||||
+ <name>foobar</name>
|
||||
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
|
||||
+ <memory>65536</memory>
|
||||
+ <currentMemory>65536</currentMemory>
|
||||
+ <vcpu>1</vcpu>
|
||||
+ <os>
|
||||
+ <type arch="x86_64" machine="q35">hvm</type>
|
||||
+ <loader readonly="yes" type="pflash">/usr/share/ovmf/OVMF_CODE.secboot.fd</loader>
|
||||
+ <boot dev="hd"/>
|
||||
+ </os>
|
||||
+ <features>
|
||||
+ <acpi/>
|
||||
+ <apic/>
|
||||
+ <smm state="on"/>
|
||||
+ <vmport state="off"/>
|
||||
+ </features>
|
||||
+ <cpu mode="custom" match="exact">
|
||||
+ <model>Opteron_G4</model>
|
||||
+ </cpu>
|
||||
+ <clock offset="utc">
|
||||
+ <timer name="rtc" tickpolicy="catchup"/>
|
||||
+ <timer name="pit" tickpolicy="delay"/>
|
||||
+ <timer name="hpet" present="no"/>
|
||||
+ </clock>
|
||||
+ <pm>
|
||||
+ <suspend-to-mem enabled="no"/>
|
||||
+ <suspend-to-disk enabled="no"/>
|
||||
+ </pm>
|
||||
+ <devices>
|
||||
+ <emulator>/usr/bin/qemu-kvm</emulator>
|
||||
+ <controller type="usb" index="0" model="ich9-ehci1"/>
|
||||
+ <controller type="usb" index="0" model="ich9-uhci1">
|
||||
+ <master startport="0"/>
|
||||
+ </controller>
|
||||
+ <controller type="usb" index="0" model="ich9-uhci2">
|
||||
+ <master startport="2"/>
|
||||
+ </controller>
|
||||
+ <controller type="usb" index="0" model="ich9-uhci3">
|
||||
+ <master startport="4"/>
|
||||
+ </controller>
|
||||
+ <interface type="bridge">
|
||||
+ <source bridge="eth0"/>
|
||||
+ <mac address="00:11:22:33:44:55"/>
|
||||
+ </interface>
|
||||
+ <input type="mouse" bus="ps2"/>
|
||||
+ <graphics type="spice" port="-1" tlsPort="-1" autoport="yes">
|
||||
+ <image compression="off"/>
|
||||
+ </graphics>
|
||||
+ <console type="pty"/>
|
||||
+ <channel type="spicevmc">
|
||||
+ <target type="virtio" name="com.redhat.spice.0"/>
|
||||
+ </channel>
|
||||
+ <sound model="ich6"/>
|
||||
+ <video>
|
||||
+ <model type="qxl"/>
|
||||
+ </video>
|
||||
+ <redirdev bus="usb" type="spicevmc"/>
|
||||
+ <redirdev bus="usb" type="spicevmc"/>
|
||||
+ </devices>
|
||||
+</domain>
|
||||
Index: virt-manager-1.4.1/tests/clitest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/tests/clitest.py
|
||||
+++ virt-manager-1.4.1/tests/clitest.py
|
||||
@@ -71,6 +71,7 @@ test_files = {
|
||||
'URI-TEST-DEFAULT': utils.uri_test_default,
|
||||
'URI-TEST-REMOTE': utils.uri_test_remote,
|
||||
'URI-KVM': utils.uri_kvm,
|
||||
+ 'URI-KVM-Q35': utils.uri_kvm_q35,
|
||||
'URI-KVM-SESSION': utils.uri_kvm_session,
|
||||
'URI-KVM-REMOTE': utils.uri_kvm + ",remote",
|
||||
'URI-KVM-NODOMCAPS': utils.uri_kvm_nodomcaps,
|
||||
@@ -771,6 +772,9 @@ c.add_invalid("--disk none --boot networ
|
||||
c.add_invalid("--nodisks --boot network --arch mips --virt-type kvm") # Invalid domain type for arch
|
||||
c.add_invalid("--nodisks --boot network --paravirt --arch mips") # Invalid arch/virt combo
|
||||
|
||||
+c = vinst.add_category("kvm-q35", "--connect %(URI-KVM-Q35)s --noautoconsole", compare_check=support.SUPPORT_CONN_VMPORT)
|
||||
+c.add_compare("--boot uefi --disk none", "boot-uefi")
|
||||
+
|
||||
|
||||
######################
|
||||
# LXC specific tests #
|
||||
Index: virt-manager-1.4.1/tests/utils.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/tests/utils.py
|
||||
+++ virt-manager-1.4.1/tests/utils.py
|
||||
@@ -37,10 +37,12 @@ uri_test_remote = uri_test + ",remote"
|
||||
|
||||
_uri_qemu = "%s,qemu" % uri_test
|
||||
_uri_kvm_domcaps = (_uri_qemu + _domcapsprefix + "kvm-x86_64-domcaps.xml")
|
||||
+_uri_kvm_domcaps_q35 = (_uri_qemu + _domcapsprefix + "kvm-x86_64-domcaps-q35.xml")
|
||||
_uri_kvm_aarch64_domcaps = (_uri_qemu + _domcapsprefix + "kvm-aarch64-domcaps.xml")
|
||||
uri_kvm_nodomcaps = (_uri_qemu + _capsprefix + "kvm-x86_64.xml")
|
||||
uri_kvm_rhel = (_uri_kvm_domcaps + _capsprefix + "kvm-x86_64-rhel7.xml")
|
||||
uri_kvm = (_uri_kvm_domcaps + _capsprefix + "kvm-x86_64.xml")
|
||||
+uri_kvm_q35 = (_uri_kvm_domcaps_q35 + _capsprefix + "kvm-x86_64.xml")
|
||||
uri_kvm_session = uri_kvm + ",session"
|
||||
|
||||
uri_kvm_armv7l = (_uri_kvm_domcaps + _capsprefix + "kvm-armv7l.xml")
|
||||
Index: virt-manager-1.4.1/virtManager/domain.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtManager/domain.py
|
||||
+++ virt-manager-1.4.1/virtManager/domain.py
|
||||
@@ -698,6 +698,7 @@ class vmmDomain(vmmLibvirtObject):
|
||||
guest.os.loader = loader
|
||||
guest.os.loader_type = "pflash"
|
||||
guest.os.loader_ro = True
|
||||
+ guest.check_uefi_smm()
|
||||
|
||||
if nvram != _SENTINEL:
|
||||
guest.os.nvram = nvram
|
||||
Index: virt-manager-1.4.1/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.4.1/virtinst/guest.py
|
||||
@@ -542,6 +542,29 @@ class Guest(XMLBuilder):
|
||||
self.os.loader_type = "pflash"
|
||||
self.os.loader = path
|
||||
|
||||
+ self.check_uefi_smm()
|
||||
+
|
||||
+
|
||||
+ def check_uefi_smm(self):
|
||||
+ """
|
||||
+ If the firmware name contains "secboot" it is probably build
|
||||
+ with SMM feature required so we need to enable that feature,
|
||||
+ otherwise the firmware may fail to load. True secure boot is
|
||||
+ currently supported only on x86 architecture and with q35 with
|
||||
+ SMM feature enabled so change the machine to q35 as well.
|
||||
+ """
|
||||
+
|
||||
+ if not self.os.is_x86():
|
||||
+ return
|
||||
+
|
||||
+ if "secboot" not in self.os.loader:
|
||||
+ return
|
||||
+
|
||||
+ if not self.conn.check_support(self.conn.SUPPORT_DOMAIN_FEATURE_SMM):
|
||||
+ return
|
||||
+
|
||||
+ self.features.smm = True
|
||||
+ self.os.machine = "q35"
|
||||
|
||||
###################
|
||||
# Device defaults #
|
@ -1,32 +0,0 @@
|
||||
Subject: Fix format errors in it.po and ko.po
|
||||
From: Cole Robinson crobinso@redhat.com Tue Mar 21 19:28:36 2017 -0400
|
||||
Date: Tue Mar 21 19:28:36 2017 -0400:
|
||||
Git: 6b5106eae6e5f3f34d705de35e6baf0ef7feb02e
|
||||
|
||||
|
||||
diff --git a/po/it.po b/po/it.po
|
||||
index 3249542d..3e36420b 100644
|
||||
--- a/po/it.po
|
||||
+++ b/po/it.po
|
||||
@@ -2550,7 +2550,7 @@ msgstr "Disabilitato"
|
||||
#: ../virtManager/details.py:2458
|
||||
#, python-format
|
||||
msgid "%(current-memory)s of %(total-memory)s"
|
||||
-msgstr "%(memoria-corrente)s di %(memoria-totale)s"
|
||||
+msgstr "%(current-memory)s di %(total-memory)s"
|
||||
|
||||
#: ../virtManager/details.py:2668
|
||||
msgid "Absolute Movement"
|
||||
diff --git a/po/ko.po b/po/ko.po
|
||||
index 37a8ec9d..04b79558 100644
|
||||
--- a/po/ko.po
|
||||
+++ b/po/ko.po
|
||||
@@ -4589,7 +4589,7 @@ msgstr "존재하지 않는 경로 '%s'의 저장소 생성 매개변수를 지
|
||||
#: ../virtinst/devicedisk.py:1024
|
||||
#, python-format
|
||||
msgid "Controller number %d for disk of type %s has no empty slot to use"
|
||||
-msgstr "유형이 %s인 디스크에 대한 컨트롤러 번호 %d에 사용할 수 있는 빈 슬롯이 없음"
|
||||
+msgstr "유형이 %d인 디스크에 대한 컨트롤러 번호 %s에 사용할 수 있는 빈 슬롯이 없음"
|
||||
|
||||
#: ../virtinst/devicedisk.py:1027
|
||||
#, python-format
|
@ -1,38 +0,0 @@
|
||||
Subject: cli: Don't double warn when skipping disk size warning (bz 1433239)
|
||||
From: Cole Robinson crobinso@redhat.com Thu Apr 27 12:19:53 2017 -0400
|
||||
Date: Thu Apr 27 12:19:53 2017 -0400:
|
||||
Git: 7aee124d9aed7646e6e95644909c1d1005a92d07
|
||||
|
||||
|
||||
diff --git a/virtinst/cli.py b/virtinst/cli.py
|
||||
index ac4b4690..a87ac038 100644
|
||||
--- a/virtinst/cli.py
|
||||
+++ b/virtinst/cli.py
|
||||
@@ -359,7 +359,7 @@ def set_prompt(prompt):
|
||||
|
||||
|
||||
def validate_disk(dev, warn_overwrite=False):
|
||||
- def _optional_fail(msg, checkname):
|
||||
+ def _optional_fail(msg, checkname, warn_on_skip=True):
|
||||
do_check = get_global_state().get_validation_check(checkname)
|
||||
if do_check:
|
||||
fail(msg + (_(" (Use --check %s=off or "
|
||||
@@ -367,7 +367,8 @@ def validate_disk(dev, warn_overwrite=False):
|
||||
|
||||
logging.debug("Skipping --check %s error condition '%s'",
|
||||
checkname, msg)
|
||||
- logging.warn(msg)
|
||||
+ if warn_on_skip:
|
||||
+ logging.warn(msg)
|
||||
|
||||
def check_path_exists(dev):
|
||||
"""
|
||||
@@ -400,7 +401,7 @@ def validate_disk(dev, warn_overwrite=False):
|
||||
isfatal, errmsg = dev.is_size_conflict()
|
||||
# The isfatal case should have already caused us to fail
|
||||
if not isfatal and errmsg:
|
||||
- _optional_fail(errmsg, "disk_size")
|
||||
+ _optional_fail(errmsg, "disk_size", warn_on_skip=False)
|
||||
|
||||
def check_path_search(dev):
|
||||
user, broken_paths = dev.check_path_search(dev.conn, dev.path)
|
@ -1,47 +0,0 @@
|
||||
Subject: guest: Don't repeatedly overwrite self.domain
|
||||
From: Cole Robinson crobinso@redhat.com Thu Apr 13 14:56:03 2017 -0400
|
||||
Date: Thu Apr 13 14:56:03 2017 -0400:
|
||||
Git: 93085d2b9d4a3dd6cbb9edfeae9b6cefee9419c1
|
||||
|
||||
Since clearing it is important, just set it at the end when things
|
||||
have succeeded
|
||||
|
||||
diff --git a/virtinst/guest.py b/virtinst/guest.py
|
||||
index 39975199..6bdfe170 100644
|
||||
--- a/virtinst/guest.py
|
||||
+++ b/virtinst/guest.py
|
||||
@@ -394,28 +394,28 @@ class Guest(XMLBuilder):
|
||||
meter.start(size=None, text=meter_label)
|
||||
|
||||
if transient:
|
||||
- self.domain = self.conn.createXML(install_xml or final_xml, 0)
|
||||
+ domain = self.conn.createXML(install_xml or final_xml, 0)
|
||||
else:
|
||||
# Not all hypervisors (vz) support createXML, so avoid it here
|
||||
- self.domain = self.conn.defineXML(install_xml or final_xml)
|
||||
+ domain = self.conn.defineXML(install_xml or final_xml)
|
||||
|
||||
# Handle undefining the VM if the initial startup fails
|
||||
if doboot or self.installer.has_install_phase():
|
||||
try:
|
||||
- self.domain.create()
|
||||
+ domain.create()
|
||||
except:
|
||||
import sys
|
||||
exc_info = sys.exc_info()
|
||||
try:
|
||||
- self.domain.undefine()
|
||||
- self.domain = None
|
||||
+ domain.undefine()
|
||||
except:
|
||||
pass
|
||||
raise exc_info[0], exc_info[1], exc_info[2]
|
||||
|
||||
if install_xml and install_xml != final_xml:
|
||||
- self.domain = self.conn.defineXML(final_xml)
|
||||
+ domain = self.conn.defineXML(final_xml)
|
||||
|
||||
+ self.domain = domain
|
||||
try:
|
||||
logging.debug("XML fetched from libvirt object:\n%s",
|
||||
self.domain.XMLDesc(0))
|
@ -1,124 +0,0 @@
|
||||
Subject: storage: Move alloc/cap validation to validate()
|
||||
From: Cole Robinson crobinso@redhat.com Fri Mar 17 12:00:03 2017 -0400
|
||||
Date: Fri Mar 17 12:14:05 2017 -0400:
|
||||
Git: 9c8ffe51dacee208af4d5d7cc3e439ae7197fc09
|
||||
|
||||
Doing this at property set time is overly noisy. Follow the same
|
||||
pattern of VirtualDisk and only do this in the validate() function.
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1433239
|
||||
|
||||
diff --git a/virtinst/diskbackend.py b/virtinst/diskbackend.py
|
||||
index f70f5b21..5198057c 100644
|
||||
--- a/virtinst/diskbackend.py
|
||||
+++ b/virtinst/diskbackend.py
|
||||
@@ -345,10 +345,11 @@ class _StorageCreator(_StorageBase):
|
||||
|
||||
if self._vol_install:
|
||||
self._vol_install.validate()
|
||||
- else:
|
||||
- if self._size is None:
|
||||
- raise ValueError(_("size is required for non-existent disk "
|
||||
- "'%s'" % self.get_path()))
|
||||
+ return
|
||||
+
|
||||
+ if self._size is None:
|
||||
+ raise ValueError(_("size is required for non-existent disk "
|
||||
+ "'%s'" % self.get_path()))
|
||||
|
||||
err, msg = self.is_size_conflict()
|
||||
if err:
|
||||
diff --git a/virtinst/storage.py b/virtinst/storage.py
|
||||
index cd74467a..808891f3 100644
|
||||
--- a/virtinst/storage.py
|
||||
+++ b/virtinst/storage.py
|
||||
@@ -683,22 +683,6 @@ class StorageVolume(_StorageObject):
|
||||
raise ValueError(_("Name '%s' already in use by another volume." %
|
||||
name))
|
||||
|
||||
- def _validate_allocation(self, val):
|
||||
- ret = self.is_size_conflict(allocation=val)
|
||||
- if ret[0]:
|
||||
- raise ValueError(ret[1])
|
||||
- elif ret[1]:
|
||||
- logging.warn(ret[1])
|
||||
- return val
|
||||
-
|
||||
- def _validate_capacity(self, val):
|
||||
- ret = self.is_size_conflict(capacity=val)
|
||||
- if ret[0]:
|
||||
- raise ValueError(ret[1])
|
||||
- elif ret[1]:
|
||||
- logging.warn(ret[1])
|
||||
- return val
|
||||
-
|
||||
def _default_format(self):
|
||||
if self.file_type == self.TYPE_FILE:
|
||||
return "raw"
|
||||
@@ -728,10 +712,8 @@ class StorageVolume(_StorageObject):
|
||||
|
||||
type = XMLProperty("./@type")
|
||||
key = XMLProperty("./key")
|
||||
- capacity = XMLProperty("./capacity", is_int=True,
|
||||
- validate_cb=_validate_capacity)
|
||||
- allocation = XMLProperty("./allocation", is_int=True,
|
||||
- validate_cb=_validate_allocation)
|
||||
+ capacity = XMLProperty("./capacity", is_int=True)
|
||||
+ allocation = XMLProperty("./allocation", is_int=True)
|
||||
format = XMLProperty("./target/format/@type", default_cb=_default_format)
|
||||
target_path = XMLProperty("./target/path")
|
||||
backing_store = XMLProperty("./backingStore/path")
|
||||
@@ -809,6 +791,12 @@ class StorageVolume(_StorageObject):
|
||||
"setting allocation equal to capacity"))
|
||||
self.allocation = self.capacity
|
||||
|
||||
+ isfatal, errmsg = self.is_size_conflict()
|
||||
+ if isfatal:
|
||||
+ raise ValueError(errmsg)
|
||||
+ if errmsg:
|
||||
+ logging.warn(errmsg)
|
||||
+
|
||||
def install(self, meter=None):
|
||||
"""
|
||||
Build and install storage volume from xml
|
||||
@@ -891,7 +879,7 @@ class StorageVolume(_StorageObject):
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
- def is_size_conflict(self, capacity=None, allocation=None):
|
||||
+ def is_size_conflict(self):
|
||||
"""
|
||||
Report if requested size exceeds its pool's available amount
|
||||
|
||||
@@ -900,27 +888,22 @@ class StorageVolume(_StorageObject):
|
||||
2. String message if some collision was encountered.
|
||||
@rtype: 2 element C{tuple}: (C{bool}, C{str})
|
||||
"""
|
||||
- if capacity is None:
|
||||
- capacity = self.capacity
|
||||
- if allocation is None:
|
||||
- allocation = self.allocation
|
||||
-
|
||||
if not self.pool:
|
||||
return (False, "")
|
||||
|
||||
# pool info is [pool state, capacity, allocation, available]
|
||||
avail = self.pool.info()[3]
|
||||
- if allocation > avail:
|
||||
+ if self.allocation > avail:
|
||||
return (True, _("There is not enough free space on the storage "
|
||||
"pool to create the volume. "
|
||||
"(%d M requested allocation > %d M available)") %
|
||||
- ((allocation / (1024 * 1024)),
|
||||
+ ((self.allocation / (1024 * 1024)),
|
||||
(avail / (1024 * 1024))))
|
||||
- elif capacity > avail:
|
||||
+ elif self.capacity > avail:
|
||||
return (False, _("The requested volume capacity will exceed the "
|
||||
"available pool space when the volume is fully "
|
||||
"allocated. "
|
||||
"(%d M requested capacity > %d M available)") %
|
||||
- ((capacity / (1024 * 1024)),
|
||||
+ ((self.capacity / (1024 * 1024)),
|
||||
(avail / (1024 * 1024))))
|
||||
return (False, "")
|
@ -1,77 +0,0 @@
|
||||
Subject: virtinst: enable secure feature together with smm for UEFI
|
||||
From: Pavel Hrdina phrdina@redhat.com Wed Jun 7 20:47:59 2017 +0200
|
||||
Date: Wed Jun 7 20:49:45 2017 +0200:
|
||||
Git: b690908aa47ea4040a0b232328a7b79ff99ceabc
|
||||
|
||||
The secure feature actually enforce the secure boot if Secure Boot
|
||||
Mode is configured.
|
||||
|
||||
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1387479
|
||||
|
||||
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
|
||||
|
||||
Index: virt-manager-1.4.1/tests/cli-test-xml/compare/virt-install-boot-uefi.xml
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/tests/cli-test-xml/compare/virt-install-boot-uefi.xml
|
||||
+++ virt-manager-1.4.1/tests/cli-test-xml/compare/virt-install-boot-uefi.xml
|
||||
@@ -6,7 +6,7 @@
|
||||
<vcpu>1</vcpu>
|
||||
<os>
|
||||
<type arch="x86_64" machine="q35">hvm</type>
|
||||
- <loader readonly="yes" type="pflash">/usr/share/ovmf/OVMF_CODE.secboot.fd</loader>
|
||||
+ <loader readonly="yes" type="pflash" secure="yes">/usr/share/ovmf/OVMF_CODE.secboot.fd</loader>
|
||||
<boot dev="hd"/>
|
||||
</os>
|
||||
<features>
|
||||
Index: virt-manager-1.4.1/virtManager/domain.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtManager/domain.py
|
||||
+++ virt-manager-1.4.1/virtManager/domain.py
|
||||
@@ -698,7 +698,7 @@ class vmmDomain(vmmLibvirtObject):
|
||||
guest.os.loader = loader
|
||||
guest.os.loader_type = "pflash"
|
||||
guest.os.loader_ro = True
|
||||
- guest.check_uefi_smm()
|
||||
+ guest.check_uefi_secure()
|
||||
|
||||
if nvram != _SENTINEL:
|
||||
guest.os.nvram = nvram
|
||||
Index: virt-manager-1.4.1/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.4.1/virtinst/guest.py
|
||||
@@ -542,16 +542,18 @@ class Guest(XMLBuilder):
|
||||
self.os.loader_type = "pflash"
|
||||
self.os.loader = path
|
||||
|
||||
- self.check_uefi_smm()
|
||||
+ self.check_uefi_secure()
|
||||
|
||||
|
||||
- def check_uefi_smm(self):
|
||||
+ def check_uefi_secure(self):
|
||||
"""
|
||||
If the firmware name contains "secboot" it is probably build
|
||||
with SMM feature required so we need to enable that feature,
|
||||
otherwise the firmware may fail to load. True secure boot is
|
||||
currently supported only on x86 architecture and with q35 with
|
||||
SMM feature enabled so change the machine to q35 as well.
|
||||
+ To actually enforce the secure boot for the guest if Secure Boot
|
||||
+ Mode is configured we need to enable loader secure feature.
|
||||
"""
|
||||
|
||||
if not self.os.is_x86():
|
||||
@@ -560,10 +562,12 @@ class Guest(XMLBuilder):
|
||||
if "secboot" not in self.os.loader:
|
||||
return
|
||||
|
||||
- if not self.conn.check_support(self.conn.SUPPORT_DOMAIN_FEATURE_SMM):
|
||||
+ if (not self.conn.check_support(self.conn.SUPPORT_DOMAIN_FEATURE_SMM) or
|
||||
+ not self.conn.check_support(self.conn.SUPPORT_DOMAIN_LOADER_SECURE)):
|
||||
return
|
||||
|
||||
self.features.smm = True
|
||||
+ self.os.loader_secure = True
|
||||
self.os.machine = "q35"
|
||||
|
||||
###################
|
@ -1,19 +0,0 @@
|
||||
Subject: Fix busted italian translation, again (bug 1433800)
|
||||
From: Cole Robinson crobinso@redhat.com Mon Mar 20 16:45:47 2017 -0400
|
||||
Date: Mon Mar 20 16:45:47 2017 -0400:
|
||||
Git: c66098f3b63d53dec514cf59266f57d32960a3ea
|
||||
|
||||
|
||||
diff --git a/po/it.po b/po/it.po
|
||||
index b5174c7f..c2763a4a 100644
|
||||
--- a/po/it.po
|
||||
+++ b/po/it.po
|
||||
@@ -1449,7 +1449,7 @@ msgstr "Invia combinazione di tasti"
|
||||
#: ../virtManager/console.py:289
|
||||
#, python-format
|
||||
msgid "%(vm-name)s on %(connection-name)s"
|
||||
-msgstr "%(nome-mv)s su %(nome-connessione)s"
|
||||
+msgstr "%(vm-name)s su %(connection-name)s"
|
||||
|
||||
#: ../virtManager/console.py:296
|
||||
#, python-format
|
@ -1,36 +0,0 @@
|
||||
Subject: graphics: skip authentication only for VNC with listen type none
|
||||
From: Pavel Hrdina phrdina@redhat.com Thu Mar 23 15:26:19 2017 +0100
|
||||
Date: Thu Mar 23 15:26:19 2017 +0100:
|
||||
Git: cb182f7e3a569bde926818a4c55bb8427fba2728
|
||||
|
||||
This is in fact a bug in QEMU so we have to workaround this issue
|
||||
to allow to connect to guest with VNC and listen type none.
|
||||
|
||||
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1434551
|
||||
|
||||
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
|
||||
|
||||
diff --git a/virtManager/domain.py b/virtManager/domain.py
|
||||
index 3478cc58..fc5f54a6 100644
|
||||
--- a/virtManager/domain.py
|
||||
+++ b/virtManager/domain.py
|
||||
@@ -1190,8 +1190,17 @@ class vmmDomain(vmmLibvirtObject):
|
||||
return self._backend.openConsole(devname, stream, flags)
|
||||
|
||||
def open_graphics_fd(self):
|
||||
- return self._backend.openGraphicsFD(0,
|
||||
- libvirt.VIR_DOMAIN_OPEN_GRAPHICS_SKIPAUTH)
|
||||
+ flags = 0
|
||||
+
|
||||
+ # Ugly workaround for VNC bug where the display cannot be opened
|
||||
+ # if the listen type is "none". When this gets fixed in QEMU
|
||||
+ # we should skip auth only for broken QEMUs.
|
||||
+ graphics = self.get_graphics_devices()[0]
|
||||
+ if (graphics.type == "vnc" and
|
||||
+ graphics.get_first_listen_type() == "none"):
|
||||
+ flags = libvirt.VIR_DOMAIN_OPEN_GRAPHICS_SKIPAUTH
|
||||
+
|
||||
+ return self._backend.openGraphicsFD(0, flags)
|
||||
|
||||
def refresh_snapshots(self):
|
||||
self._snapshot_list = None
|
@ -1,20 +0,0 @@
|
||||
Subject: nodedev: Remove redundant error string (bz #1370418)
|
||||
From: Cole Robinson crobinso@redhat.com Wed Mar 29 14:09:35 2017 -0400
|
||||
Date: Wed Mar 29 14:09:35 2017 -0400:
|
||||
Git: f341352cdadeadedab1579d1759ed1387aa28c75
|
||||
|
||||
|
||||
diff --git a/virtinst/nodedev.py b/virtinst/nodedev.py
|
||||
index 7796ca62..f82ba351 100644
|
||||
--- a/virtinst/nodedev.py
|
||||
+++ b/virtinst/nodedev.py
|
||||
@@ -87,8 +87,7 @@ class NodeDevice(XMLBuilder):
|
||||
except Exception, e:
|
||||
logging.debug("Error looking up nodedev from idstring=%s",
|
||||
idstring, exc_info=True)
|
||||
- raise RuntimeError(_("Did not find node device matching '%s': %s" %
|
||||
- (idstring, e)))
|
||||
+ raise
|
||||
|
||||
|
||||
@staticmethod
|
@ -1,148 +0,0 @@
|
||||
References: rbz#1387479
|
||||
|
||||
Subject: virt-install: add support for SMM feature
|
||||
From: Pavel Hrdina phrdina@redhat.com Thu Jan 26 15:08:36 2017 +0100
|
||||
Date: Thu Jun 1 09:58:46 2017 +0200:
|
||||
Git: f38c56c971d8b04bdee41ecba96f3f6d921a4aa7
|
||||
|
||||
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
|
||||
|
||||
Index: virt-manager-1.4.1/man/virt-install.pod
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/man/virt-install.pod
|
||||
+++ virt-manager-1.4.1/man/virt-install.pod
|
||||
@@ -275,6 +275,12 @@ Notify the guest that the host supports
|
||||
This is relevant only for ARM architectures. Possible values are "host" or
|
||||
version number.
|
||||
|
||||
+=item B<--features smm=on>
|
||||
+
|
||||
+This enables System Management Mode of hypervisor. Some UEFI firmwares may
|
||||
+require this feature to be present. (QEMU supports SMM only with q35 machine
|
||||
+type.)
|
||||
+
|
||||
=back
|
||||
|
||||
Use --features=? to see a list of all available sub options. Complete details at L<http://libvirt.org/formatdomain.html#elementsFeatures>
|
||||
Index: virt-manager-1.4.1/tests/cli-test-xml/compare/virt-install-features-smm.xml
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ virt-manager-1.4.1/tests/cli-test-xml/compare/virt-install-features-smm.xml
|
||||
@@ -0,0 +1,29 @@
|
||||
+<domain type="test">
|
||||
+ <name>foobar</name>
|
||||
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
|
||||
+ <memory>65536</memory>
|
||||
+ <currentMemory>65536</currentMemory>
|
||||
+ <vcpu>1</vcpu>
|
||||
+ <os>
|
||||
+ <type arch="i686" machine="q35">hvm</type>
|
||||
+ <boot dev="hd"/>
|
||||
+ </os>
|
||||
+ <features>
|
||||
+ <pae/>
|
||||
+ <smm state="on"/>
|
||||
+ </features>
|
||||
+ <clock offset="utc"/>
|
||||
+ <pm>
|
||||
+ <suspend-to-mem enabled="no"/>
|
||||
+ <suspend-to-disk enabled="no"/>
|
||||
+ </pm>
|
||||
+ <devices>
|
||||
+ <emulator>/usr/bin/test-hv</emulator>
|
||||
+ <controller type="usb" index="0" model="none"/>
|
||||
+ <interface type="user">
|
||||
+ <mac address="00:11:22:33:44:55"/>
|
||||
+ </interface>
|
||||
+ <input type="mouse" bus="ps2"/>
|
||||
+ <console type="pty"/>
|
||||
+ </devices>
|
||||
+</domain>
|
||||
Index: virt-manager-1.4.1/tests/clitest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/tests/clitest.py
|
||||
+++ virt-manager-1.4.1/tests/clitest.py
|
||||
@@ -552,6 +552,14 @@ c.add_compare(""" \
|
||||
""", "spice-gl", compare_check=support.SUPPORT_CONN_VMPORT)
|
||||
|
||||
|
||||
+############################
|
||||
+# Features install options #
|
||||
+############################
|
||||
+
|
||||
+c = vinst.add_category("features", "--nographics --noautoconsole --import --disk none --controller usb,model=none")
|
||||
+c.add_compare("--features smm=on", "features-smm")
|
||||
+c.add_invalid("--features smm=on --machine pc")
|
||||
+
|
||||
|
||||
####################################################
|
||||
# CPU/RAM/numa and other singleton VM config tests #
|
||||
Index: virt-manager-1.4.1/virt-install
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virt-install
|
||||
+++ virt-manager-1.4.1/virt-install
|
||||
@@ -633,6 +633,16 @@ def build_guest_instance(conn, options):
|
||||
logging.warn("Couldn't configure UEFI: %s", e)
|
||||
logging.warn("Your aarch64 VM may not boot successfully.")
|
||||
|
||||
+ # Check usability of SMM feature
|
||||
+ if guest.features.smm:
|
||||
+ if not guest.os.is_x86():
|
||||
+ fail(_("SMM feature is valid only for x86 architecture."))
|
||||
+
|
||||
+ if guest.os.machine is None:
|
||||
+ guest.os.machine = "q35"
|
||||
+ elif not guest.os.is_q35():
|
||||
+ fail(_("SMM feature is valid only for q35 machine type"))
|
||||
+
|
||||
# Various little validations about option collisions. Need to do
|
||||
# this after setting guest.installer at least
|
||||
check_option_collisions(options, guest)
|
||||
Index: virt-manager-1.4.1/virtinst/cli.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/cli.py
|
||||
+++ virt-manager-1.4.1/virtinst/cli.py
|
||||
@@ -1666,6 +1666,12 @@ class ParserFeatures(VirtCLIParser):
|
||||
cli_arg_name = "features"
|
||||
objclass = DomainFeatures
|
||||
|
||||
+ def set_smm_cb(self, inst, val, virtarg):
|
||||
+ if not inst.conn.check_support(inst.conn.SUPPORT_DOMAIN_FEATURE_SMM):
|
||||
+ raise RuntimeError("smm is not supported by libvirt")
|
||||
+ inst.smm = val
|
||||
+ return val
|
||||
+
|
||||
_register_virt_parser(ParserFeatures)
|
||||
ParserFeatures.add_arg("acpi", "acpi", is_onoff=True)
|
||||
ParserFeatures.add_arg("apic", "apic", is_onoff=True)
|
||||
@@ -1688,6 +1694,8 @@ ParserFeatures.add_arg("pvspinlock", "pv
|
||||
|
||||
ParserFeatures.add_arg("gic_version", "gic_version")
|
||||
|
||||
+ParserFeatures.add_arg("smm", "smm", is_onoff=True, cb=ParserFeatures.set_smm_cb)
|
||||
+
|
||||
|
||||
###################
|
||||
# --clock parsing #
|
||||
Index: virt-manager-1.4.1/virtinst/domainfeatures.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/domainfeatures.py
|
||||
+++ virt-manager-1.4.1/virtinst/domainfeatures.py
|
||||
@@ -52,3 +52,5 @@ class DomainFeatures(XMLBuilder):
|
||||
default_name="default", default_cb=lambda s: False)
|
||||
kvm_hidden = XMLProperty("./kvm/hidden/@state", is_onoff=True)
|
||||
pvspinlock = XMLProperty("./pvspinlock/@state", is_onoff=True)
|
||||
+
|
||||
+ smm = XMLProperty("./smm/@state", is_onoff=True)
|
||||
Index: virt-manager-1.4.1/virtinst/support.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/support.py
|
||||
+++ virt-manager-1.4.1/virtinst/support.py
|
||||
@@ -361,6 +361,7 @@ SUPPORT_DOMAIN_MEMORY_STATS = _make(
|
||||
SUPPORT_DOMAIN_STATE = _make(function="virDomain.state", run_args=())
|
||||
SUPPORT_DOMAIN_OPEN_GRAPHICS = _make(function="virDomain.openGraphicsFD",
|
||||
version="1.2.8", hv_version={"qemu": 0})
|
||||
+SUPPORT_DOMAIN_FEATURE_SMM = _make(version="2.1.0")
|
||||
|
||||
|
||||
###############
|
File diff suppressed because it is too large
Load Diff
@ -1,45 +0,0 @@
|
||||
Subject: cli: Don't overwrite install bootorder with manual --boot (bz 1438946)
|
||||
From: Cole Robinson crobinso@redhat.com Tue Apr 4 18:22:15 2017 -0400
|
||||
Date: Tue Apr 4 18:22:15 2017 -0400:
|
||||
Git: ff3b4dc5b0b21393dbccc0f5f691b17bf1a761bd
|
||||
|
||||
--boot should be for post-install bootorder only
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1438946
|
||||
|
||||
diff --git a/tests/cli-test-xml/compare/virt-install-singleton-config-2.xml b/tests/cli-test-xml/compare/virt-install-singleton-config-2.xml
|
||||
index 5fa0f24e..914403e6 100644
|
||||
--- a/tests/cli-test-xml/compare/virt-install-singleton-config-2.xml
|
||||
+++ b/tests/cli-test-xml/compare/virt-install-singleton-config-2.xml
|
||||
@@ -60,9 +60,6 @@
|
||||
<os>
|
||||
<type arch="x86_64">hvm</type>
|
||||
<loader>/foo/bar</loader>
|
||||
- <boot dev="cdrom"/>
|
||||
- <boot dev="fd"/>
|
||||
- <boot dev="hd"/>
|
||||
<boot dev="network"/>
|
||||
<smbios mode="sysinfo"/>
|
||||
<bootmenu enable="no"/>
|
||||
diff --git a/virtinst/installer.py b/virtinst/installer.py
|
||||
index 50c72c73..dd2a593e 100644
|
||||
--- a/virtinst/installer.py
|
||||
+++ b/virtinst/installer.py
|
||||
@@ -113,13 +113,13 @@ class Installer(object):
|
||||
if isinstall and not self.has_install_phase():
|
||||
return
|
||||
|
||||
- bootorder = self._build_boot_order(isinstall, guest)
|
||||
-
|
||||
- if not guest.os.bootorder:
|
||||
+ bootorder = guest.os.bootorder
|
||||
+ if isinstall or not bootorder:
|
||||
# Per device <boot order> is not compatible with os/boot.
|
||||
if not any(d.boot.order for d in guest.get_all_devices()):
|
||||
- guest.os.bootorder = bootorder
|
||||
+ bootorder = self._build_boot_order(isinstall, guest)
|
||||
|
||||
+ guest.os.bootorder = bootorder
|
||||
if not isinstall:
|
||||
return
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b3a4feacb42b4615b7bb98f73cb621c91c92879c1f77cc6ad4943b25cc29779b
|
||||
size 1492542
|
3
virt-manager-1.4.2.tar.bz2
Normal file
3
virt-manager-1.4.2.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d68653224ed21f71247c6f3bc36b4bf2e6f3f37a1039097e69ffc8f4b22eff90
|
||||
size 1522298
|
52
virt-manager-supportconfig
Normal file
52
virt-manager-supportconfig
Normal file
@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
#############################################################
|
||||
# Name: Supportconfig Plugin for virt-manager
|
||||
# Description: Gathers important troubleshooting information
|
||||
# about virt-manager
|
||||
# Author: Jim Fehlig <jfehlig@suse.com>
|
||||
#############################################################
|
||||
|
||||
RCFILE="/usr/lib/supportconfig/resources/scplugin.rc"
|
||||
|
||||
VIRTMAN_LOG_DIR="/root/.cache/virt-manager"
|
||||
VIRTMAN_LOG_FILES=""
|
||||
|
||||
if [ -s $RCFILE ]; then
|
||||
if ! source $RCFILE; then
|
||||
echo "ERROR: Initializing resource file: $RCFILE" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
rpm_verify() {
|
||||
thisrpm="$1"
|
||||
local ret=0
|
||||
|
||||
echo
|
||||
echo "#==[ Validating RPM ]=================================#"
|
||||
if rpm -q "$thisrpm" >/dev/null 2>&1; then
|
||||
echo "# rpm -V $thisrpm"
|
||||
|
||||
if rpm -V "$thisrpm"; then
|
||||
echo "Status: Passed"
|
||||
else
|
||||
echo "Status: WARNING"
|
||||
fi
|
||||
else
|
||||
echo "package $thisrpm is not installed"
|
||||
ret=1
|
||||
fi
|
||||
echo
|
||||
return $ret
|
||||
}
|
||||
|
||||
if ! rpm_verify virt-manager; then
|
||||
echo "Skipped"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
test -d $VIRTMAN_LOG_DIR && VIRTMAN_LOG_FILES="$(find -L $VIRTMAN_LOG_DIR/ -type f)"
|
||||
plog_files 0 "$VIRTMAN_LOG_FILES"
|
||||
|
||||
echo "Done"
|
||||
|
@ -1,3 +1,45 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 9 08:27:42 MDT 2017 - carnold@suse.com
|
||||
|
||||
- Update to virt-manager 1.4.2 (bsc#1027942)
|
||||
virt-manager-1.4.1.tar.bz2
|
||||
virtinst-check-date-format.patch
|
||||
virtinst-no-usb-tablet-for-xenpv.patch
|
||||
* New VM wixard virt-bootstrap integration (Radostin Stoyanov)
|
||||
* New VM wizard support for virtuozzo containers (Mikhail Feoktistov)
|
||||
* network UI: add support to create SR-IOV VF pool (Lin Ma)
|
||||
* Nicer OS list in New VM wizard (Pino Toscano)
|
||||
* Better defaults for UEFI secureboot builds (Pavel Hrdina)
|
||||
* Fix defaults for aarch64 VMs if graphics are requested
|
||||
* virt-install: new –memdev option (Pavel Hrdina)
|
||||
* virt-install: add –disk logical/physical_block_size (Yuri Arabadji)
|
||||
* virt-install: add –features hyperv_reset=, hyperv_synic= (Venkat Datta N H)
|
||||
- Dropped the following patches contained in new tarball
|
||||
f5d709d9-lang-it-1.patch
|
||||
c66098f3-lang-it-2.patch
|
||||
452a693e-lang-update.patch
|
||||
6b5106ea-lang-it-ko-fix.patch
|
||||
9c8ffe51-fix-multiple-warnings-1.patch
|
||||
cb182f7e-skip-authentication-only-for-VNC-with-listen-type-none.patch
|
||||
0610cd6a-ensure-bool-value-used-for-set_sensitive-call.patch
|
||||
f341352c-remove-redundant-error-string.patch
|
||||
ff3b4dc5-dont-overwrite-install-bootorder.patch
|
||||
2099a194-reset-guest-domain-to-none-on-domain-creation-error.patch
|
||||
93085d2b-reset-guest-domain-to-none-on-domain-creation-error.patch
|
||||
7aee124d-fix-multiple-warnings-2.patch
|
||||
f38c56c9-add-support-for-SMM-feature.patch
|
||||
24f9d053-add-support-for-loader-secure-attribute.patch
|
||||
4f8e795c-if-required-by-UEFI-enable-SMM-feature-and-set-q35-machine-type.patch
|
||||
b690908a-enable-secure-feature-together-with-smm-for-UEFI.patch
|
||||
virtinst-expand-combobox.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 1 20:02:58 UTC 2017 - jfehlig@suse.com
|
||||
|
||||
- Add a supportconfig plugin
|
||||
virt-manager-supportconfig
|
||||
FATE#323661
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 7 11:29:02 MDT 2017 - carnold@suse.com
|
||||
|
||||
|
@ -23,11 +23,11 @@
|
||||
%define libvirt_xen_packages ""
|
||||
%define preferred_distros "sles12sp3,opensuse42.3"
|
||||
%define kvm_packages ""
|
||||
%define _version 1.4.1
|
||||
%define _version 1.4.2
|
||||
%define _release 0
|
||||
|
||||
Name: virt-manager
|
||||
Version: 1.4.1
|
||||
Version: 1.4.2
|
||||
Release: 0
|
||||
Summary: Virtual Machine Manager
|
||||
License: GPL-2.0+
|
||||
@ -36,23 +36,8 @@ Url: http://virt-manager.org/
|
||||
Source0: %{name}-%{version}.tar.bz2
|
||||
Source1: virt-install.rb
|
||||
Source2: virt-install.desktop
|
||||
Source3: virt-manager-supportconfig
|
||||
# Upstream Patches
|
||||
Patch0: f5d709d9-lang-it-1.patch
|
||||
Patch1: c66098f3-lang-it-2.patch
|
||||
Patch2: 452a693e-lang-update.patch
|
||||
Patch3: 6b5106ea-lang-it-ko-fix.patch
|
||||
Patch4: 9c8ffe51-fix-multiple-warnings-1.patch
|
||||
Patch5: cb182f7e-skip-authentication-only-for-VNC-with-listen-type-none.patch
|
||||
Patch6: 0610cd6a-ensure-bool-value-used-for-set_sensitive-call.patch
|
||||
Patch7: f341352c-remove-redundant-error-string.patch
|
||||
Patch8: ff3b4dc5-dont-overwrite-install-bootorder.patch
|
||||
Patch9: 2099a194-reset-guest-domain-to-none-on-domain-creation-error.patch
|
||||
Patch10: 93085d2b-reset-guest-domain-to-none-on-domain-creation-error.patch
|
||||
Patch11: 7aee124d-fix-multiple-warnings-2.patch
|
||||
Patch12: f38c56c9-add-support-for-SMM-feature.patch
|
||||
Patch13: 24f9d053-add-support-for-loader-secure-attribute.patch
|
||||
Patch14: 4f8e795c-if-required-by-UEFI-enable-SMM-feature-and-set-q35-machine-type.patch
|
||||
Patch15: b690908a-enable-secure-feature-together-with-smm-for-UEFI.patch
|
||||
# SUSE Only
|
||||
Patch70: virtman-desktop.patch
|
||||
Patch71: virtman-kvm.patch
|
||||
@ -78,7 +63,6 @@ Patch126: virtinst-set-qemu-emulator.patch
|
||||
Patch127: virtinst-add-ppc64-arch-support.patch
|
||||
Patch128: virtinst-s390x-disable-graphics.patch
|
||||
Patch129: virtinst-add-caasp-support.patch
|
||||
Patch130: virtinst-expand-combobox.patch
|
||||
# Bug Fixes
|
||||
Patch150: virtman-prevent-double-click-starting-vm-twice.patch
|
||||
Patch151: virtman-increase-setKeepAlive-count.patch
|
||||
@ -92,6 +76,8 @@ Patch162: virtinst-refresh_before_fetch_pool.patch
|
||||
Patch163: virtinst-use-xenpae-kernel-for-32bit.patch
|
||||
Patch164: virtinst-use-qemu-for-cdrom-device.patch
|
||||
Patch165: virtinst-fix-sle-distro-parsing.patch
|
||||
Patch166: virtinst-check-date-format.patch
|
||||
Patch167: virtinst-no-usb-tablet-for-xenpv.patch
|
||||
BuildArch: noarch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
@ -174,22 +160,6 @@ machine).
|
||||
%prep
|
||||
%setup -q
|
||||
# Upstream Patches
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
# SUSE Only
|
||||
%patch70 -p1
|
||||
%patch71 -p1
|
||||
@ -215,7 +185,6 @@ machine).
|
||||
%patch127 -p1
|
||||
%patch128 -p1
|
||||
%patch129 -p1
|
||||
%patch130 -p1
|
||||
# Bug Fixes
|
||||
%patch150 -p1
|
||||
%patch151 -p1
|
||||
@ -229,6 +198,8 @@ machine).
|
||||
%patch163 -p1
|
||||
%patch164 -p1
|
||||
%patch165 -p1
|
||||
%patch166 -p1
|
||||
%patch167 -p1
|
||||
|
||||
%build
|
||||
%if %{qemu_user}
|
||||
@ -276,6 +247,9 @@ mkdir -p $RPM_BUILD_ROOT/%{_datadir}/YaST2/clients/
|
||||
install -m644 %SOURCE1 $RPM_BUILD_ROOT/%{_datadir}/YaST2/clients/virt-install.rb
|
||||
mkdir -p $RPM_BUILD_ROOT/%{_datadir}/applications/YaST2/
|
||||
install -m644 %SOURCE2 $RPM_BUILD_ROOT/%{_datadir}/applications/YaST2/virt-install.desktop
|
||||
# Oddly, supportconfig doesn't execute plugins with '-' in the name, so use 'virt_manager'
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/lib/supportconfig/plugins
|
||||
install -m 755 %SOURCE3 $RPM_BUILD_ROOT/usr/lib/supportconfig/plugins/virt_manager
|
||||
|
||||
%find_lang %{name}
|
||||
|
||||
@ -317,6 +291,9 @@ fi
|
||||
%{_datadir}/applications/YaST2/virt-install.desktop
|
||||
%{_datadir}/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.xml
|
||||
%{_datadir}/GConf/gsettings/org.virt-manager.virt-manager.convert
|
||||
%dir /usr/lib/supportconfig
|
||||
%dir /usr/lib/supportconfig/plugins
|
||||
/usr/lib/supportconfig/plugins/virt_manager
|
||||
|
||||
%files common -f %{name}.lang
|
||||
%defattr(-,root,root,-)
|
||||
|
@ -1,9 +1,9 @@
|
||||
References: bsc#1010060
|
||||
|
||||
Index: virt-manager-1.4.1/virtinst/urlfetcher.py
|
||||
Index: virt-manager-1.4.2/virtinst/urlfetcher.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.4.1/virtinst/urlfetcher.py
|
||||
--- virt-manager-1.4.2.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.4.2/virtinst/urlfetcher.py
|
||||
@@ -464,6 +464,10 @@ def _distroFromSUSEContent(fetcher, arch
|
||||
dclass = SLESDistro
|
||||
if distro_version is None:
|
||||
@ -15,7 +15,7 @@ Index: virt-manager-1.4.1/virtinst/urlfetcher.py
|
||||
elif re.match(".*openSUSE.*", distribution[1]):
|
||||
dclass = OpensuseDistro
|
||||
if distro_version is None:
|
||||
@@ -1021,7 +1025,8 @@ class SuseDistro(Distro):
|
||||
@@ -1026,7 +1030,8 @@ class SuseDistro(Distro):
|
||||
distro_version = self.version_from_content[1].strip()
|
||||
version = distro_version.split('.', 1)[0].strip()
|
||||
self.os_variant = self.urldistro
|
||||
@ -25,7 +25,7 @@ Index: virt-manager-1.4.1/virtinst/urlfetcher.py
|
||||
if self.os_variant.startswith(("sles", "sled")):
|
||||
sp_version = None
|
||||
if len(distro_version.split('.', 1)) == 2:
|
||||
@@ -1035,6 +1040,8 @@ class SuseDistro(Distro):
|
||||
@@ -1040,6 +1045,8 @@ class SuseDistro(Distro):
|
||||
self.os_variant += "tumbleweed"
|
||||
else:
|
||||
self.os_variant += distro_version
|
||||
@ -34,7 +34,7 @@ Index: virt-manager-1.4.1/virtinst/urlfetcher.py
|
||||
else:
|
||||
self.os_variant += "9"
|
||||
|
||||
@@ -1081,6 +1088,9 @@ class SLESDistro(SuseDistro):
|
||||
@@ -1086,6 +1093,9 @@ class SLESDistro(SuseDistro):
|
||||
class SLEDDistro(SuseDistro):
|
||||
urldistro = "sled"
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
Reference: bnc#869024
|
||||
Add s390x and ppc64 support
|
||||
Index: virt-manager-1.4.1/virtinst/urlfetcher.py
|
||||
Index: virt-manager-1.4.2/virtinst/urlfetcher.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.4.1/virtinst/urlfetcher.py
|
||||
--- virt-manager-1.4.2.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.4.2/virtinst/urlfetcher.py
|
||||
@@ -438,6 +438,10 @@ def _distroFromSUSEContent(fetcher, arch
|
||||
arch = "i586"
|
||||
elif cbuf.find("s390x") != -1:
|
||||
@ -15,7 +15,7 @@ Index: virt-manager-1.4.1/virtinst/urlfetcher.py
|
||||
|
||||
def _parse_sle_distribution(d):
|
||||
sle_version = d[1].strip().rsplit(' ')[4]
|
||||
@@ -991,10 +995,12 @@ class SuseDistro(Distro):
|
||||
@@ -996,10 +1000,12 @@ class SuseDistro(Distro):
|
||||
oldkern += "64"
|
||||
oldinit += "64"
|
||||
|
||||
|
21
virtinst-check-date-format.patch
Normal file
21
virtinst-check-date-format.patch
Normal file
@ -0,0 +1,21 @@
|
||||
Fixes a bug caused by a bogus EOL date in an osinfo database file.
|
||||
The bad date caused an exception in strptime.
|
||||
|
||||
Index: virt-manager-1.4.2/virtinst/osdict.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.2.orig/virtinst/osdict.py
|
||||
+++ virt-manager-1.4.2/virtinst/osdict.py
|
||||
@@ -363,8 +363,11 @@ class _OsVariant(object):
|
||||
eol_date = self._os.get_eol_date_string()
|
||||
|
||||
if eol_date:
|
||||
- return (datetime.datetime.strptime(eol_date, "%Y-%m-%d") >
|
||||
- datetime.datetime.now())
|
||||
+ try:
|
||||
+ eol_valid = datetime.datetime.strptime(eol_date, "%Y-%m-%d")
|
||||
+ return (eol_valid > datetime.datetime.now())
|
||||
+ except Exception:
|
||||
+ pass
|
||||
|
||||
if self.name == "fedora-unknown":
|
||||
return False
|
@ -1,16 +0,0 @@
|
||||
References: bsc#1005861
|
||||
Notes: Just allow the GtkComboBox to be the width of the dialog
|
||||
so you can see more of the operating system name.
|
||||
|
||||
Index: virt-manager-1.4.0/ui/create.ui
|
||||
===================================================================
|
||||
--- virt-manager-1.4.0.orig/ui/create.ui
|
||||
+++ virt-manager-1.4.0/ui/create.ui
|
||||
@@ -1741,7 +1741,6 @@ is not yet supported.</small></pro
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
- <property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options"/>
|
||||
</packing>
|
||||
</child>
|
@ -1,9 +1,9 @@
|
||||
References: bsc#1042709
|
||||
|
||||
Index: virt-manager-1.4.1/virtinst/urlfetcher.py
|
||||
Index: virt-manager-1.4.2/virtinst/urlfetcher.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.4.1/virtinst/urlfetcher.py
|
||||
--- virt-manager-1.4.2.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.4.2/virtinst/urlfetcher.py
|
||||
@@ -444,9 +444,20 @@ def _distroFromSUSEContent(fetcher, arch
|
||||
arch = "ppc64le"
|
||||
|
||||
@ -28,7 +28,7 @@ Index: virt-manager-1.4.1/virtinst/urlfetcher.py
|
||||
return ['VERSION', sle_version]
|
||||
|
||||
dclass = GenericDistro
|
||||
@@ -1029,7 +1040,10 @@ class SuseDistro(Distro):
|
||||
@@ -1034,7 +1045,10 @@ class SuseDistro(Distro):
|
||||
distro_version = self.version_from_content[1].strip()
|
||||
version = distro_version.split('.', 1)[0].strip()
|
||||
self.os_variant = self.urldistro
|
||||
|
@ -3,15 +3,16 @@ Enhancement for the following GUI wizard installation options.
|
||||
is the default
|
||||
2) Under 'Network selection' default to a bridge that has an actual
|
||||
IP address if available (not just the first one found).
|
||||
Index: virt-manager-1.4.1/virtManager/create.py
|
||||
Index: virt-manager-1.4.2/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.4.1/virtManager/create.py
|
||||
@@ -377,7 +377,19 @@ class vmmCreate(vmmGObjectUI):
|
||||
--- virt-manager-1.4.2.orig/virtManager/create.py
|
||||
+++ virt-manager-1.4.2/virtManager/create.py
|
||||
@@ -397,8 +397,20 @@ class vmmCreate(vmmGObjectUI):
|
||||
self.widget("method-local").set_active(True)
|
||||
self.widget("create-conn").set_active(-1)
|
||||
activeconn = self._populate_conn_list(urihint)
|
||||
- self.widget("arch-expander").set_expanded(False)
|
||||
self.widget("vz-virt-type-hvm").set_active(True)
|
||||
+ # For Xen have the expander open so users can see PV is the default
|
||||
+ if activeconn and activeconn.is_xen():
|
||||
+ self.widget("arch-expander").set_expanded(True)
|
||||
@ -28,11 +29,11 @@ Index: virt-manager-1.4.1/virtManager/create.py
|
||||
|
||||
if self._set_conn(activeconn) is False:
|
||||
return False
|
||||
Index: virt-manager-1.4.1/virtManager/netlist.py
|
||||
Index: virt-manager-1.4.2/virtManager/netlist.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtManager/netlist.py
|
||||
+++ virt-manager-1.4.1/virtManager/netlist.py
|
||||
@@ -167,9 +167,19 @@ class vmmNetworkList(vmmGObjectUI):
|
||||
--- virt-manager-1.4.2.orig/virtManager/netlist.py
|
||||
+++ virt-manager-1.4.2/virtManager/netlist.py
|
||||
@@ -170,9 +170,19 @@ class vmmNetworkList(vmmGObjectUI):
|
||||
return rows, vnet_bridges, default_label
|
||||
|
||||
def _find_physical_devices(self, vnet_bridges):
|
||||
@ -52,7 +53,7 @@ Index: virt-manager-1.4.1/virtManager/netlist.py
|
||||
skip_ifaces = ["lo"]
|
||||
|
||||
vnet_taps = []
|
||||
@@ -229,10 +239,18 @@ class vmmNetworkList(vmmGObjectUI):
|
||||
@@ -232,10 +242,18 @@ class vmmNetworkList(vmmGObjectUI):
|
||||
if can_default and not default_label:
|
||||
default_label = label
|
||||
|
||||
|
@ -5,11 +5,11 @@ A fix for accessing nfs mounted media. A comment in the code states,
|
||||
and carry the latter form around internally"
|
||||
We need the RFC version to work correctly whereas redhat's anaconda
|
||||
needs their own modified version.
|
||||
Index: virt-manager-1.4.1/virtinst/util.py
|
||||
Index: virt-manager-1.4.2/virtinst/util.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/util.py
|
||||
+++ virt-manager-1.4.1/virtinst/util.py
|
||||
@@ -447,3 +447,22 @@ def getInstallRepos():
|
||||
--- virt-manager-1.4.2.orig/virtinst/util.py
|
||||
+++ virt-manager-1.4.2/virtinst/util.py
|
||||
@@ -421,3 +421,22 @@ def getInstallRepos():
|
||||
return (0, [])
|
||||
return lookupZypperRepos(getHostInstallSource())
|
||||
|
||||
@ -32,10 +32,10 @@ Index: virt-manager-1.4.1/virtinst/util.py
|
||||
+
|
||||
+ return url
|
||||
+
|
||||
Index: virt-manager-1.4.1/virtinst/distroinstaller.py
|
||||
Index: virt-manager-1.4.2/virtinst/distroinstaller.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/distroinstaller.py
|
||||
+++ virt-manager-1.4.1/virtinst/distroinstaller.py
|
||||
--- virt-manager-1.4.2.orig/virtinst/distroinstaller.py
|
||||
+++ virt-manager-1.4.2/virtinst/distroinstaller.py
|
||||
@@ -44,6 +44,8 @@ def _sanitize_url(url):
|
||||
"""
|
||||
Do nothing for http or ftp, but make sure nfs is in the expected format
|
||||
@ -45,10 +45,10 @@ Index: virt-manager-1.4.1/virtinst/distroinstaller.py
|
||||
if url.startswith("nfs://"):
|
||||
# Convert RFC compliant NFS nfs://server/path/to/distro
|
||||
# to what mount/anaconda expect nfs:server:/path/to/distro
|
||||
Index: virt-manager-1.4.1/virtinst/urlfetcher.py
|
||||
Index: virt-manager-1.4.2/virtinst/urlfetcher.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.4.1/virtinst/urlfetcher.py
|
||||
--- virt-manager-1.4.2.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.4.2/virtinst/urlfetcher.py
|
||||
@@ -34,6 +34,7 @@ import urlparse
|
||||
import requests
|
||||
|
||||
|
14
virtinst-no-usb-tablet-for-xenpv.patch
Normal file
14
virtinst-no-usb-tablet-for-xenpv.patch
Normal file
@ -0,0 +1,14 @@
|
||||
With 1.4.2 the code no longer checks for xenpv when adding
|
||||
a usb tablet which is only supported on xen hvm.
|
||||
|
||||
--- virt-manager-1.4.2/virtinst/guest.py.orig 2017-08-09 11:47:19.812789816 -0600
|
||||
+++ virt-manager-1.4.2/virtinst/guest.py 2017-08-09 11:49:36.023630599 -0600
|
||||
@@ -659,7 +659,7 @@ class Guest(XMLBuilder):
|
||||
|
||||
usb_tablet = False
|
||||
usb_keyboard = False
|
||||
- if self.os.is_x86():
|
||||
+ if self.os.is_x86() and not self.os.is_xenpv():
|
||||
usb_tablet = self._os_object.supports_usbtablet()
|
||||
if self.os.is_arm_machvirt():
|
||||
usb_tablet = True
|
@ -2,11 +2,11 @@ Reference: bnc#863821
|
||||
grub.xen is required to boot PV VMs that use the BTRFS filesystem.
|
||||
This patch forces the use of grub.xen (instead of using pygrub) for
|
||||
newer suse distros like SLE12 and openSUSE 13.2.
|
||||
Index: virt-manager-1.4.1/virtinst/guest.py
|
||||
Index: virt-manager-1.4.2/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.4.1/virtinst/guest.py
|
||||
@@ -363,8 +363,20 @@ class Guest(XMLBuilder):
|
||||
--- virt-manager-1.4.2.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.4.2/virtinst/guest.py
|
||||
@@ -365,8 +365,20 @@ class Guest(XMLBuilder):
|
||||
if (not install and
|
||||
self.os.is_xenpv() and
|
||||
not self.os.kernel):
|
||||
@ -29,10 +29,10 @@ Index: virt-manager-1.4.1/virtinst/guest.py
|
||||
|
||||
return self.get_xml_config()
|
||||
|
||||
Index: virt-manager-1.4.1/virtinst/installer.py
|
||||
Index: virt-manager-1.4.2/virtinst/installer.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/installer.py
|
||||
+++ virt-manager-1.4.1/virtinst/installer.py
|
||||
--- virt-manager-1.4.2.orig/virtinst/installer.py
|
||||
+++ virt-manager-1.4.2/virtinst/installer.py
|
||||
@@ -99,7 +99,7 @@ class Installer(object):
|
||||
break
|
||||
return bootorder
|
||||
|
@ -1,9 +1,9 @@
|
||||
Reference: bnc#869024
|
||||
Disable graphics on s390x
|
||||
Index: virt-manager-1.4.1/virtinst/guest.py
|
||||
Index: virt-manager-1.4.2/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.4.1/virtinst/guest.py
|
||||
--- virt-manager-1.4.2.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.4.2/virtinst/guest.py
|
||||
@@ -124,7 +124,10 @@ class Guest(XMLBuilder):
|
||||
self.skip_default_channel = False
|
||||
self.skip_default_sound = False
|
||||
@ -16,7 +16,7 @@ Index: virt-manager-1.4.1/virtinst/guest.py
|
||||
self.skip_default_rng = False
|
||||
self.x86_cpu_default = self.cpu.SPECIAL_MODE_HOST_MODEL_ONLY
|
||||
|
||||
@@ -647,7 +650,7 @@ class Guest(XMLBuilder):
|
||||
@@ -686,7 +689,7 @@ class Guest(XMLBuilder):
|
||||
self.add_device(dev)
|
||||
|
||||
def add_default_video_device(self):
|
||||
@ -25,7 +25,7 @@ Index: virt-manager-1.4.1/virtinst/guest.py
|
||||
return
|
||||
if self.get_devices("video"):
|
||||
return
|
||||
@@ -685,6 +688,8 @@ class Guest(XMLBuilder):
|
||||
@@ -741,6 +744,8 @@ class Guest(XMLBuilder):
|
||||
dev.target_type = "virtio"
|
||||
dev.target_name = dev.CHANNEL_NAME_QEMUGA
|
||||
self.add_device(dev)
|
||||
@ -34,18 +34,18 @@ Index: virt-manager-1.4.1/virtinst/guest.py
|
||||
|
||||
def add_default_graphics(self):
|
||||
if self.skip_default_graphics:
|
||||
@@ -693,7 +698,7 @@ class Guest(XMLBuilder):
|
||||
@@ -749,7 +754,7 @@ class Guest(XMLBuilder):
|
||||
return
|
||||
if self.os.is_container():
|
||||
if self.os.is_container() and not self.conn.is_vz():
|
||||
return
|
||||
- if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64"]:
|
||||
+ if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64", "s390x"]:
|
||||
- if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le"]:
|
||||
+ if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "s390x"]:
|
||||
return
|
||||
self.add_device(VirtualGraphics(self.conn))
|
||||
|
||||
@@ -1031,7 +1036,7 @@ class Guest(XMLBuilder):
|
||||
if self._hv_only_supports_virtio():
|
||||
return True
|
||||
@@ -1084,7 +1089,7 @@ class Guest(XMLBuilder):
|
||||
if not os_support:
|
||||
return False
|
||||
|
||||
- if self.os.is_x86():
|
||||
+ if self.os.is_x86() or self.os.is_s390x():
|
||||
|
@ -1,10 +1,10 @@
|
||||
Set cache mode for target installation disk to unsafe for better
|
||||
performance.
|
||||
Index: virt-manager-1.4.1/virtinst/guest.py
|
||||
Index: virt-manager-1.4.2/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.4.1/virtinst/guest.py
|
||||
@@ -359,6 +359,17 @@ class Guest(XMLBuilder):
|
||||
--- virt-manager-1.4.2.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.4.2/virtinst/guest.py
|
||||
@@ -361,6 +361,17 @@ class Guest(XMLBuilder):
|
||||
|
||||
self._set_osxml_defaults()
|
||||
|
||||
@ -22,7 +22,7 @@ Index: virt-manager-1.4.1/virtinst/guest.py
|
||||
self.bootloader = None
|
||||
if (not install and
|
||||
self.os.is_xenpv() and
|
||||
@@ -378,7 +389,10 @@ class Guest(XMLBuilder):
|
||||
@@ -380,7 +391,10 @@ class Guest(XMLBuilder):
|
||||
self.installer.alter_bootconfig(self, True, True)
|
||||
logging.info("Using grub.xen to boot guest")
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
Use the correct qemu emulator based on the architecture.
|
||||
We want to get away from using the old qemu-dm emulator
|
||||
for Xen HVM guests so default to qemu-system-i386.
|
||||
Index: virt-manager-1.4.1/virtinst/guest.py
|
||||
Index: virt-manager-1.4.2/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.4.1/virtinst/guest.py
|
||||
@@ -844,14 +844,11 @@ class Guest(XMLBuilder):
|
||||
--- virt-manager-1.4.2.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.4.2/virtinst/guest.py
|
||||
@@ -895,14 +895,11 @@ class Guest(XMLBuilder):
|
||||
self.emulator = None
|
||||
return
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
Enhancement to add ocfs2 as a supported FS type
|
||||
Index: virt-manager-1.4.1/virtinst/storage.py
|
||||
Index: virt-manager-1.4.2/virtinst/storage.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/storage.py
|
||||
+++ virt-manager-1.4.1/virtinst/storage.py
|
||||
@@ -462,7 +462,7 @@ class StoragePool(_StorageObject):
|
||||
--- virt-manager-1.4.2.orig/virtinst/storage.py
|
||||
+++ virt-manager-1.4.2/virtinst/storage.py
|
||||
@@ -467,7 +467,7 @@ class StoragePool(_StorageObject):
|
||||
def list_formats(self):
|
||||
if self.type == self.TYPE_FS:
|
||||
return ["auto", "ext2", "ext3", "ext4", "ufs", "iso9660", "udf",
|
||||
|
@ -2,11 +2,11 @@ References: bsc#989639
|
||||
When the device added is a cdrom device (/dev/sr0), don't use
|
||||
"phy" as the driver name but instead use "qemu".
|
||||
|
||||
Index: virt-manager-1.4.0/virtinst/devicedisk.py
|
||||
Index: virt-manager-1.4.2/virtinst/devicedisk.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.0.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.4.0/virtinst/devicedisk.py
|
||||
@@ -550,7 +550,8 @@ class VirtualDisk(VirtualDevice):
|
||||
--- virt-manager-1.4.2.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.4.2/virtinst/devicedisk.py
|
||||
@@ -552,7 +552,8 @@ class VirtualDisk(VirtualDevice):
|
||||
# Recommended xen defaults from here:
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1171550#c9
|
||||
# If type block, use name=phy. Otherwise do the same as qemu
|
||||
|
@ -4,11 +4,11 @@ a non pae version. The sles10 sp4 32bit kernel will only boot para-
|
||||
virtualized if the pae kernel is selected.
|
||||
Note that sles12 and newer has no 32bit release.
|
||||
|
||||
Index: virt-manager-1.4.1/virtinst/urlfetcher.py
|
||||
Index: virt-manager-1.4.2/virtinst/urlfetcher.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.4.1/virtinst/urlfetcher.py
|
||||
@@ -1018,8 +1018,12 @@ class SuseDistro(Distro):
|
||||
--- virt-manager-1.4.2.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.4.2/virtinst/urlfetcher.py
|
||||
@@ -1023,8 +1023,12 @@ class SuseDistro(Distro):
|
||||
"boot/%s/initrd" % self.arch))
|
||||
|
||||
# Matches Opensuse > 10.2 and sles 10
|
||||
|
@ -4,11 +4,11 @@ issue on btrfs.
|
||||
|
||||
Signed-off-by: Chunyan Liu <cyliu@suse.com>
|
||||
|
||||
Index: virt-manager-1.4.1/virtinst/storage.py
|
||||
Index: virt-manager-1.4.2/virtinst/storage.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/storage.py
|
||||
+++ virt-manager-1.4.1/virtinst/storage.py
|
||||
@@ -701,6 +701,12 @@ class StorageVolume(_StorageObject):
|
||||
--- virt-manager-1.4.2.orig/virtinst/storage.py
|
||||
+++ virt-manager-1.4.2/virtinst/storage.py
|
||||
@@ -708,6 +708,12 @@ class StorageVolume(_StorageObject):
|
||||
return self._pool_xml.get_disk_type()
|
||||
file_type = property(_get_vol_type)
|
||||
|
||||
@ -21,14 +21,14 @@ Index: virt-manager-1.4.1/virtinst/storage.py
|
||||
|
||||
##################
|
||||
# XML properties #
|
||||
Index: virt-manager-1.4.1/virtinst/support.py
|
||||
Index: virt-manager-1.4.2/virtinst/support.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/support.py
|
||||
+++ virt-manager-1.4.1/virtinst/support.py
|
||||
@@ -321,6 +321,8 @@ SUPPORT_CONN_VIDEO_VIRTIO_ACCEL3D = _mak
|
||||
hv_version={"qemu": "2.5.0", "test": 0})
|
||||
SUPPORT_CONN_GRAPHICS_LISTEN_NONE = _make(version="2.0.0")
|
||||
SUPPORT_CONN_RNG_URANDOM = _make(version="1.3.4")
|
||||
--- virt-manager-1.4.2.orig/virtinst/support.py
|
||||
+++ virt-manager-1.4.2/virtinst/support.py
|
||||
@@ -324,6 +324,8 @@ SUPPORT_CONN_RNG_URANDOM = _make(version
|
||||
SUPPORT_CONN_USB3_PORTS = _make(version="1.3.5")
|
||||
SUPPORT_CONN_MACHVIRT_PCI_DEFAULT = _make(version="3.0.0")
|
||||
SUPPORT_CONN_QEMU_XHCI = _make(version="3.3.0")
|
||||
+SUPPORT_CONN_NOCOW = _make(
|
||||
+ version="1.2.18", hv_version={"qemu": "2.2.0", "test": 0})
|
||||
|
||||
|
@ -2,11 +2,11 @@ Reference: bnc#813082
|
||||
Virt-manager on Xen doesn't fill in any type thereby defaulting to
|
||||
'raw'. This patch will generate the correct XML on Xen.
|
||||
|
||||
Index: virt-manager-1.4.0/virtinst/devicedisk.py
|
||||
Index: virt-manager-1.4.2/virtinst/devicedisk.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.0.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.4.0/virtinst/devicedisk.py
|
||||
@@ -568,6 +568,10 @@ class VirtualDisk(VirtualDevice):
|
||||
--- virt-manager-1.4.2.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.4.2/virtinst/devicedisk.py
|
||||
@@ -570,6 +570,10 @@ class VirtualDisk(VirtualDevice):
|
||||
http://lists.gnu.org/archive/html/qemu-devel/2008-04/msg00675.html
|
||||
"""
|
||||
if self.driver_name != self.DRIVER_NAME_QEMU:
|
||||
|
@ -6,11 +6,11 @@ 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-1.4.0/virtinst/devicedisk.py
|
||||
Index: virt-manager-1.4.2/virtinst/devicedisk.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.0.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.4.0/virtinst/devicedisk.py
|
||||
@@ -993,6 +993,17 @@ class VirtualDisk(VirtualDevice):
|
||||
--- virt-manager-1.4.2.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.4.2/virtinst/devicedisk.py
|
||||
@@ -1003,6 +1003,17 @@ class VirtualDisk(VirtualDevice):
|
||||
@rtype C{str}
|
||||
"""
|
||||
prefix, maxnode = self.get_target_prefix(skip_targets)
|
||||
@ -28,7 +28,7 @@ Index: virt-manager-1.4.0/virtinst/devicedisk.py
|
||||
skip_targets = [t for t in skip_targets if t and t.startswith(prefix)]
|
||||
skip_targets.sort()
|
||||
|
||||
@@ -1006,7 +1017,12 @@ class VirtualDisk(VirtualDevice):
|
||||
@@ -1016,7 +1027,12 @@ class VirtualDisk(VirtualDevice):
|
||||
ran = range(pref_ctrl * 7, (pref_ctrl + 1) * 7)
|
||||
|
||||
for i in ran:
|
||||
|
@ -1,11 +1,11 @@
|
||||
Enhancement for when no hypervisor can be found locally it opens
|
||||
the new connection dialog.
|
||||
Index: virt-manager-1.3.2/virtManager/engine.py
|
||||
Index: virt-manager-1.4.2/virtManager/engine.py
|
||||
===================================================================
|
||||
--- virt-manager-1.3.2.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.3.2/virtManager/engine.py
|
||||
--- virt-manager-1.4.2.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.4.2/virtManager/engine.py
|
||||
@@ -236,9 +236,6 @@ class vmmEngine(vmmGObject):
|
||||
except:
|
||||
except Exception:
|
||||
logging.exception("Error talking to PackageKit")
|
||||
|
||||
- if tryuri is None:
|
||||
|
@ -1,11 +1,11 @@
|
||||
References: bsc#919692
|
||||
Because openSUSE repos combine 32 and 64 bit sources we need to
|
||||
continue showing the 'Architecture' pop-up.
|
||||
Index: virt-manager-1.4.1/virtManager/create.py
|
||||
Index: virt-manager-1.4.2/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.4.1/virtManager/create.py
|
||||
@@ -781,11 +781,6 @@ class vmmCreate(vmmGObjectUI):
|
||||
--- virt-manager-1.4.2.orig/virtManager/create.py
|
||||
+++ virt-manager-1.4.2/virtManager/create.py
|
||||
@@ -847,11 +847,6 @@ class vmmCreate(vmmGObjectUI):
|
||||
for guest in self.conn.caps.guests:
|
||||
if guest.os_type == self._capsinfo.os_type:
|
||||
archs.append(guest.arch)
|
||||
|
@ -1,11 +1,11 @@
|
||||
References: bnc#907958
|
||||
Sanity check for those who forget '-X' on ssh and try to start virt-manager
|
||||
Index: virt-manager-1.4.0/virt-manager
|
||||
Index: virt-manager-1.4.2/virt-manager
|
||||
===================================================================
|
||||
--- virt-manager-1.4.0.orig/virt-manager
|
||||
+++ virt-manager-1.4.0/virt-manager
|
||||
@@ -79,8 +79,11 @@ def _import_gtk(leftovers):
|
||||
print "gtk3 3.14.0 or later is required."
|
||||
--- virt-manager-1.4.2.orig/virt-manager
|
||||
+++ virt-manager-1.4.2/virt-manager
|
||||
@@ -81,8 +81,11 @@ def _import_gtk(leftovers):
|
||||
print("gtk3 3.14.0 or later is required.")
|
||||
sys.exit(1)
|
||||
|
||||
- # This will error if Gtk wasn't correctly initialized
|
||||
|
@ -1,11 +1,11 @@
|
||||
Enhancement to default to the host os version when creating a VM
|
||||
and media detection of the install source is turned off.
|
||||
Index: virt-manager-1.4.1/virtManager/create.py
|
||||
Index: virt-manager-1.4.2/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.4.1/virtManager/create.py
|
||||
@@ -21,6 +21,9 @@
|
||||
import logging
|
||||
--- virt-manager-1.4.2.orig/virtManager/create.py
|
||||
+++ virt-manager-1.4.2/virtManager/create.py
|
||||
@@ -24,6 +24,9 @@ import os
|
||||
import cStringIO
|
||||
import threading
|
||||
import time
|
||||
+import sys
|
||||
@ -14,16 +14,7 @@ Index: virt-manager-1.4.1/virtManager/create.py
|
||||
|
||||
from gi.repository import GObject
|
||||
from gi.repository import Gtk
|
||||
@@ -968,7 +971,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
preferred = self.config.preferred_distros
|
||||
variants = virtinst.OSDB.list_os(typename=_type, sortpref=preferred)
|
||||
supportl = virtinst.OSDB.list_os(typename=_type, sortpref=preferred,
|
||||
- only_supported=True)
|
||||
+ only_supported=False)
|
||||
|
||||
for v in variants:
|
||||
supported = v in supportl or v.name == "generic"
|
||||
@@ -1324,6 +1327,63 @@ class vmmCreate(vmmGObjectUI):
|
||||
@@ -1505,6 +1508,63 @@ class vmmCreate(vmmGObjectUI):
|
||||
def _cdrom_changed(self, src):
|
||||
self._detectable_media_widget_changed(src)
|
||||
|
||||
@ -87,7 +78,7 @@ Index: virt-manager-1.4.1/virtManager/create.py
|
||||
def _toggle_detect_os(self, src):
|
||||
dodetect = src.get_active()
|
||||
|
||||
@@ -1336,6 +1396,8 @@ class vmmCreate(vmmGObjectUI):
|
||||
@@ -1517,6 +1577,8 @@ class vmmCreate(vmmGObjectUI):
|
||||
self.widget("install-os-version-entry").set_text("")
|
||||
self._os_already_detected_for_media = False
|
||||
self._start_detect_os_if_needed()
|
||||
|
@ -1,9 +1,9 @@
|
||||
Enhancement to default to PV instead of HVM on Xen host.
|
||||
Index: virt-manager-1.4.1/virtManager/create.py
|
||||
Index: virt-manager-1.4.2/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.4.1/virtManager/create.py
|
||||
@@ -691,7 +691,12 @@ class vmmCreate(vmmGObjectUI):
|
||||
--- virt-manager-1.4.2.orig/virtManager/create.py
|
||||
+++ virt-manager-1.4.2/virtManager/create.py
|
||||
@@ -757,7 +757,12 @@ class vmmCreate(vmmGObjectUI):
|
||||
if gtype is None:
|
||||
# If none specified, prefer HVM so install options aren't limited
|
||||
# with a default PV choice.
|
||||
|
@ -1,11 +1,11 @@
|
||||
Reference: bnc#885094
|
||||
grub.xen is required to boot Xen PV VMs using BTRFS. It belongs to
|
||||
the grub2-x86_64-xen RPM and should never be deleted.
|
||||
Index: virt-manager-1.4.0/virtManager/delete.py
|
||||
Index: virt-manager-1.4.2/virtManager/delete.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.0.orig/virtManager/delete.py
|
||||
+++ virt-manager-1.4.0/virtManager/delete.py
|
||||
@@ -243,7 +243,7 @@ def populate_storage_list(storage_list,
|
||||
--- virt-manager-1.4.2.orig/virtManager/delete.py
|
||||
+++ virt-manager-1.4.2/virtManager/delete.py
|
||||
@@ -239,7 +239,7 @@ def populate_storage_list(storage_list,
|
||||
diskdata.append(("dtb", vm.get_xmlobj().os.dtb, True, False, True))
|
||||
|
||||
for target, path, ro, shared, is_media in diskdata:
|
||||
|
@ -2,16 +2,16 @@ References: bnc#892003
|
||||
For very large memory VMs Xen takes a long time scrubbing memory
|
||||
which causes the libvirt connection to timeout. Upstream was not
|
||||
interested in making this a preferences option (4/11/2015)
|
||||
Index: virt-manager-1.4.1/virtManager/connection.py
|
||||
Index: virt-manager-1.4.2/virtManager/connection.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtManager/connection.py
|
||||
+++ virt-manager-1.4.1/virtManager/connection.py
|
||||
@@ -1051,7 +1051,7 @@ class vmmConnection(vmmGObject):
|
||||
self.caps.get_cpu_values("x86_64")
|
||||
--- virt-manager-1.4.2.orig/virtManager/connection.py
|
||||
+++ virt-manager-1.4.2/virtManager/connection.py
|
||||
@@ -1076,7 +1076,7 @@ class vmmConnection(vmmGObject):
|
||||
self.caps.get_cpu_values(self.caps.host.cpu.arch)
|
||||
|
||||
try:
|
||||
- self._backend.setKeepAlive(20, 1)
|
||||
+ self._backend.setKeepAlive(20, 10)
|
||||
except Exception, e:
|
||||
except Exception as e:
|
||||
if (type(e) is not AttributeError and
|
||||
not util.is_error_nosupport(e)):
|
||||
|
@ -1,10 +1,10 @@
|
||||
/usr/bin/kvm doesn't exist on suse distros so check instead for
|
||||
/usr/bin/qemu-system-x86_64
|
||||
Index: virt-manager-1.3.0/virtManager/connect.py
|
||||
Index: virt-manager-1.4.2/virtManager/connect.py
|
||||
===================================================================
|
||||
--- virt-manager-1.3.0.orig/virtManager/connect.py
|
||||
+++ virt-manager-1.3.0/virtManager/connect.py
|
||||
@@ -114,7 +114,7 @@ class vmmConnect(vmmGObjectUI):
|
||||
--- virt-manager-1.4.2.orig/virtManager/connect.py
|
||||
+++ virt-manager-1.4.2/virtManager/connect.py
|
||||
@@ -116,7 +116,7 @@ class vmmConnect(vmmGObjectUI):
|
||||
|
||||
if (os.path.exists("/usr/bin/qemu") or
|
||||
os.path.exists("/usr/bin/qemu-kvm") or
|
||||
|
@ -1,9 +1,9 @@
|
||||
Use the correct systemd to start libvirt.
|
||||
Index: virt-manager-1.3.2/virtManager/packageutils.py
|
||||
Index: virt-manager-1.4.2/virtManager/packageutils.py
|
||||
===================================================================
|
||||
--- virt-manager-1.3.2.orig/virtManager/packageutils.py
|
||||
+++ virt-manager-1.3.2/virtManager/packageutils.py
|
||||
@@ -143,8 +143,8 @@ def start_libvirtd():
|
||||
--- virt-manager-1.4.2.orig/virtManager/packageutils.py
|
||||
+++ virt-manager-1.4.2/virtManager/packageutils.py
|
||||
@@ -145,8 +145,8 @@ def start_libvirtd():
|
||||
logging.debug("libvirtd not running, asking system-config-services "
|
||||
"to start it")
|
||||
scs = Gio.DBusProxy.new_sync(bus, 0, None,
|
||||
|
@ -4,10 +4,10 @@ This is not a normal situation on a suse distro. Split out required
|
||||
libvirt packages (kvm vs xen). Only install those libvirt packages
|
||||
for which the host is booted. This patch has a corresponding spec
|
||||
file change (%define libvirt_kvm_packages and %define libvirt_xen_packages).
|
||||
Index: virt-manager-1.4.0/setup.py
|
||||
Index: virt-manager-1.4.2/setup.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.0.orig/setup.py
|
||||
+++ virt-manager-1.4.0/setup.py
|
||||
--- virt-manager-1.4.2.orig/setup.py
|
||||
+++ virt-manager-1.4.2/setup.py
|
||||
@@ -308,8 +308,11 @@ class configure(distutils.core.Command):
|
||||
("prefix=", None, "installation prefix"),
|
||||
("qemu-user=", None,
|
||||
@ -45,10 +45,10 @@ Index: virt-manager-1.4.0/setup.py
|
||||
if self.kvm_package_names is not None:
|
||||
template += "hv_packages = %s\n" % self.kvm_package_names
|
||||
if self.askpass_package_names is not None:
|
||||
Index: virt-manager-1.4.0/virtcli/cliconfig.py
|
||||
Index: virt-manager-1.4.2/virtcli/cliconfig.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.0.orig/virtcli/cliconfig.py
|
||||
+++ virt-manager-1.4.0/virtcli/cliconfig.py
|
||||
--- virt-manager-1.4.2.orig/virtcli/cliconfig.py
|
||||
+++ virt-manager-1.4.2/virtcli/cliconfig.py
|
||||
@@ -83,7 +83,8 @@ class _CLIConfig(object):
|
||||
_get_param("preferred_distros", ""))
|
||||
self.hv_packages = _split_list(_get_param("hv_packages", ""))
|
||||
@ -59,10 +59,10 @@ Index: virt-manager-1.4.0/virtcli/cliconfig.py
|
||||
self.default_graphics = _get_param("default_graphics", "spice")
|
||||
self.default_hvs = _split_list(_get_param("default_hvs", ""))
|
||||
|
||||
Index: virt-manager-1.4.0/virtManager/config.py
|
||||
Index: virt-manager-1.4.2/virtManager/config.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.0.orig/virtManager/config.py
|
||||
+++ virt-manager-1.4.0/virtManager/config.py
|
||||
--- virt-manager-1.4.2.orig/virtManager/config.py
|
||||
+++ virt-manager-1.4.2/virtManager/config.py
|
||||
@@ -172,7 +172,8 @@ class vmmConfig(object):
|
||||
self.default_qemu_user = CLIConfig.default_qemu_user
|
||||
self.preferred_distros = CLIConfig.preferred_distros
|
||||
@ -73,11 +73,11 @@ Index: virt-manager-1.4.0/virtManager/config.py
|
||||
self.askpass_package = CLIConfig.askpass_package
|
||||
self.default_graphics_from_config = CLIConfig.default_graphics
|
||||
self.default_hvs = CLIConfig.default_hvs
|
||||
Index: virt-manager-1.4.0/virtManager/engine.py
|
||||
Index: virt-manager-1.4.2/virtManager/engine.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.0.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.4.0/virtManager/engine.py
|
||||
@@ -226,21 +226,18 @@ class vmmEngine(vmmGObject):
|
||||
--- virt-manager-1.4.2.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.4.2/virtManager/engine.py
|
||||
@@ -226,22 +226,18 @@ class vmmEngine(vmmGObject):
|
||||
|
||||
ret = None
|
||||
try:
|
||||
@ -90,12 +90,13 @@ Index: virt-manager-1.4.0/virtManager/engine.py
|
||||
+ packages = self.config.libvirt_kvm_packages + self.config.hv_packages
|
||||
|
||||
ret = packageutils.check_packagekit(manager, manager.err, packages)
|
||||
except:
|
||||
except Exception:
|
||||
logging.exception("Error talking to PackageKit")
|
||||
|
||||
- tryuri = None
|
||||
- if ret:
|
||||
- tryuri = "qemu:///system"
|
||||
- else:
|
||||
- elif not self.config.test_first_run:
|
||||
- tryuri = vmmConnect.default_uri()
|
||||
-
|
||||
if tryuri is None:
|
||||
|
@ -3,11 +3,11 @@ When the 'Power on virtual machine' button is double clicked,
|
||||
virt-manager issues two start commands to start the VM which
|
||||
results in a failure. There is code elsewhere to desensitize the
|
||||
button but this patch does it earlier.
|
||||
Index: virt-manager-1.4.1/virtManager/details.py
|
||||
Index: virt-manager-1.4.2/virtManager/details.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtManager/details.py
|
||||
+++ virt-manager-1.4.1/virtManager/details.py
|
||||
@@ -1459,6 +1459,9 @@ class vmmDetails(vmmGObjectUI):
|
||||
--- virt-manager-1.4.2.orig/virtManager/details.py
|
||||
+++ virt-manager-1.4.2/virtManager/details.py
|
||||
@@ -1451,6 +1451,9 @@ class vmmDetails(vmmGObjectUI):
|
||||
def control_vm_run(self, src_ignore):
|
||||
if self.has_unapplied_changes(self.get_hw_row()):
|
||||
return
|
||||
|
@ -2,11 +2,11 @@ Enhancement that gets the hosts installation location from
|
||||
install.inf and also collects the repos provided by zypper.
|
||||
These locations are then presented as potential installation
|
||||
locations when creating a VM.
|
||||
Index: virt-manager-1.4.1/virtManager/create.py
|
||||
Index: virt-manager-1.4.2/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.4.1/virtManager/create.py
|
||||
@@ -403,7 +403,13 @@ class vmmCreate(vmmGObjectUI):
|
||||
--- virt-manager-1.4.2.orig/virtManager/create.py
|
||||
+++ virt-manager-1.4.2/virtManager/create.py
|
||||
@@ -424,7 +424,13 @@ class vmmCreate(vmmGObjectUI):
|
||||
self.widget("install-url-entry").set_text("")
|
||||
self.widget("install-url-options").set_expanded(False)
|
||||
urlmodel = self.widget("install-url-combo").get_model()
|
||||
@ -21,10 +21,10 @@ Index: virt-manager-1.4.1/virtManager/create.py
|
||||
self._set_distro_labels("-", "-")
|
||||
|
||||
# Install import
|
||||
Index: virt-manager-1.4.1/virtinst/util.py
|
||||
Index: virt-manager-1.4.2/virtinst/util.py
|
||||
===================================================================
|
||||
--- virt-manager-1.4.1.orig/virtinst/util.py
|
||||
+++ virt-manager-1.4.1/virtinst/util.py
|
||||
--- virt-manager-1.4.2.orig/virtinst/util.py
|
||||
+++ virt-manager-1.4.2/virtinst/util.py
|
||||
@@ -23,9 +23,12 @@ import os
|
||||
import random
|
||||
import re
|
||||
@ -38,7 +38,7 @@ Index: virt-manager-1.4.1/virtinst/util.py
|
||||
|
||||
def listify(l):
|
||||
if l is None:
|
||||
@@ -343,3 +346,104 @@ def make_meter(quiet):
|
||||
@@ -317,3 +320,104 @@ def make_meter(quiet):
|
||||
if quiet:
|
||||
return progress.BaseMeter()
|
||||
return progress.TextMeter(fo=sys.stdout)
|
||||
|
Loading…
Reference in New Issue
Block a user