- Update to virt-manager 1.2.0
virt-manager-1.2.0.tar.bz2 virtinst-default-xen-to-qcow2-format.patch * OVMF/AAVMF Support (Laszlo Ersek, Giuseppe Scrivano, Cole Robinson) * Improved support for AArch64 qemu/kvm * virt-install: Support –disk type=network parameters * virt-install: Make –disk just work * virt-install: Add –disk sgio= option (Giuseppe Scrivano) * addhardware: default to an existing bus when adding a new disk (Giuseppe Scrivano) * virt-install: Add –input device option * virt-manager: Unify storagebrowser and storage details functionality * virt-manager: allow setting a custom connection row name * virt-install: Support –hostdev scsi passthrough * virt-install: Fill in a bunch of –graphics spice options * Disable spice image compression for new local VMs * virt-manager: big reworking of the migration dialog - Dropped tarball and patches virt-manager-1.1.0.tar.bz2 0b391fe9-Gtk-30.patch 20fe2873-check-for-empty-network-name.patch 24faf867-ignore-error-403-on-directories.patch 65f7017e-createnet-fix.patch activate-default-console.patch ce74cd77-connection-state-tick-updates-lock.patch virtinst-ppc64le.patch virtinst-supported-disk-formats.patch virtinst-support-suse-distros.patch virt-manager-1.1.0.tar.bz2 virtman-default-lxc-uri.patch virtman-stable-os-support.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=226
This commit is contained in:
parent
a9c90a8952
commit
f71f619bc9
@ -1,19 +0,0 @@
|
|||||||
Subject: createnet: Fix creating network with forward device
|
|
||||||
From: Charles Arnold carnold@suse.com Fri Jan 16 13:29:09 2015 -0500
|
|
||||||
Date: Fri Jan 16 13:30:36 2015 -0500:
|
|
||||||
Git: 65f7017eaf775af4c817b16d525256cd25aef160
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/virtManager/createnet.py b/virtManager/createnet.py
|
|
||||||
index 6c0634c..18cadf1 100644
|
|
||||||
--- a/virtManager/createnet.py
|
|
||||||
+++ b/virtManager/createnet.py
|
|
||||||
@@ -174,7 +174,7 @@ class vmmCreateNetwork(vmmGObjectUI):
|
|
||||||
|
|
||||||
devnames = []
|
|
||||||
for nodedev in self.conn.get_nodedevs("net"):
|
|
||||||
- devnames.append(nodedev.name)
|
|
||||||
+ devnames.append(nodedev.interface)
|
|
||||||
for iface in self.conn.list_interfaces():
|
|
||||||
if iface.get_name() not in devnames:
|
|
||||||
devnames.append(iface.get_name())
|
|
@ -1,29 +0,0 @@
|
|||||||
From a1d3602b017e1145e6da03b23c99a3508bad4482 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cbosdonnat@suse.com>
|
|
||||||
Date: Fri, 23 Jan 2015 14:08:53 +0100
|
|
||||||
Subject: [PATCH] Activate the default console in all cases
|
|
||||||
|
|
||||||
If the Details page of a container is show when hitting the Run button,
|
|
||||||
switching back to the Console page, doesn't show the text console. By
|
|
||||||
updating the default console even if the Console page isn't show we
|
|
||||||
won't have this anymore.
|
|
||||||
---
|
|
||||||
virtManager/details.py | 2 --
|
|
||||||
1 file changed, 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/virtManager/details.py b/virtManager/details.py
|
|
||||||
index ddcacae..aa10912 100644
|
|
||||||
--- a/virtManager/details.py
|
|
||||||
+++ b/virtManager/details.py
|
|
||||||
@@ -1345,8 +1345,6 @@ class vmmDetails(vmmGObjectUI):
|
|
||||||
|
|
||||||
def activate_default_console_page(self):
|
|
||||||
pages = self.widget("details-pages")
|
|
||||||
- if pages.get_current_page() != DETAILS_PAGE_CONSOLE:
|
|
||||||
- return
|
|
||||||
self.console.activate_default_console_page()
|
|
||||||
|
|
||||||
# activate_* are called from engine.py via CLI options
|
|
||||||
--
|
|
||||||
2.1.2
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:b9362178ca3c9be7687881e7995f69018cc97f1d56ee99451e0f1b5bd2d72c4c
|
|
||||||
size 1343570
|
|
3
virt-manager-1.2.0.tar.bz2
Normal file
3
virt-manager-1.2.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:b2d9fb2a6efe454e0a7b73af6803cc45ff097eddc1d1bb8efb5bb36fe2efbbf0
|
||||||
|
size 1350664
|
@ -1,33 +0,0 @@
|
|||||||
Index: virt-manager-1.1.0/virtManager/config.py
|
|
||||||
===================================================================
|
|
||||||
--- virt-manager-1.1.0.orig/virtManager/config.py
|
|
||||||
+++ virt-manager-1.1.0/virtManager/config.py
|
|
||||||
@@ -20,8 +20,10 @@
|
|
||||||
import os
|
|
||||||
import logging
|
|
||||||
|
|
||||||
+import gi
|
|
||||||
from gi.repository import Gio
|
|
||||||
from gi.repository import GLib
|
|
||||||
+gi.require_version('Gtk', '3.0')
|
|
||||||
from gi.repository import Gtk
|
|
||||||
|
|
||||||
from virtinst import CPU
|
|
||||||
Index: virt-manager-1.1.0/virtManager/console.py
|
|
||||||
===================================================================
|
|
||||||
--- virt-manager-1.1.0.orig/virtManager/console.py
|
|
||||||
+++ virt-manager-1.1.0/virtManager/console.py
|
|
||||||
@@ -20,10 +20,13 @@
|
|
||||||
# MA 02110-1301 USA.
|
|
||||||
#
|
|
||||||
|
|
||||||
+import gi
|
|
||||||
from gi.repository import GObject
|
|
||||||
from gi.repository import Gtk
|
|
||||||
from gi.repository import Gdk
|
|
||||||
+gi.require_version('GtkVnc', '2.0')
|
|
||||||
from gi.repository import GtkVnc
|
|
||||||
+gi.require_version('SpiceClientGtk', '3.0')
|
|
||||||
from gi.repository import SpiceClientGtk
|
|
||||||
from gi.repository import SpiceClientGLib
|
|
||||||
|
|
@ -1,3 +1,37 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon May 4 13:38:06 MDT 2015 - carnold@suse.com
|
||||||
|
|
||||||
|
- Update to virt-manager 1.2.0
|
||||||
|
virt-manager-1.2.0.tar.bz2
|
||||||
|
virtinst-default-xen-to-qcow2-format.patch
|
||||||
|
* OVMF/AAVMF Support (Laszlo Ersek, Giuseppe Scrivano, Cole Robinson)
|
||||||
|
* Improved support for AArch64 qemu/kvm
|
||||||
|
* virt-install: Support –disk type=network parameters
|
||||||
|
* virt-install: Make –disk just work
|
||||||
|
* virt-install: Add –disk sgio= option (Giuseppe Scrivano)
|
||||||
|
* addhardware: default to an existing bus when adding a new disk (Giuseppe Scrivano)
|
||||||
|
* virt-install: Add –input device option
|
||||||
|
* virt-manager: Unify storagebrowser and storage details functionality
|
||||||
|
* virt-manager: allow setting a custom connection row name
|
||||||
|
* virt-install: Support –hostdev scsi passthrough
|
||||||
|
* virt-install: Fill in a bunch of –graphics spice options
|
||||||
|
* Disable spice image compression for new local VMs
|
||||||
|
* virt-manager: big reworking of the migration dialog
|
||||||
|
- Dropped tarball and patches
|
||||||
|
virt-manager-1.1.0.tar.bz2
|
||||||
|
0b391fe9-Gtk-30.patch
|
||||||
|
20fe2873-check-for-empty-network-name.patch
|
||||||
|
24faf867-ignore-error-403-on-directories.patch
|
||||||
|
65f7017e-createnet-fix.patch
|
||||||
|
activate-default-console.patch
|
||||||
|
ce74cd77-connection-state-tick-updates-lock.patch
|
||||||
|
virtinst-ppc64le.patch
|
||||||
|
virtinst-supported-disk-formats.patch
|
||||||
|
virtinst-support-suse-distros.patch
|
||||||
|
virt-manager-1.1.0.tar.bz2
|
||||||
|
virtman-default-lxc-uri.patch
|
||||||
|
virtman-stable-os-support.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sat Apr 11 19:15:22 UTC 2015 - stefan.bruens@rwth-aachen.de
|
Sat Apr 11 19:15:22 UTC 2015 - stefan.bruens@rwth-aachen.de
|
||||||
|
|
||||||
|
@ -21,13 +21,13 @@
|
|||||||
%define qemu_user "qemu"
|
%define qemu_user "qemu"
|
||||||
%define libvirt_kvm_packages ""
|
%define libvirt_kvm_packages ""
|
||||||
%define libvirt_xen_packages ""
|
%define libvirt_xen_packages ""
|
||||||
%define preferred_distros "sles,opensuse"
|
%define preferred_distros "sles12,opensuse13.2"
|
||||||
%define kvm_packages ""
|
%define kvm_packages ""
|
||||||
%define _version 1.1.0
|
%define _version 1.2.0
|
||||||
%define _release 1
|
%define _release 1
|
||||||
|
|
||||||
Name: virt-manager
|
Name: virt-manager
|
||||||
Version: 1.1.0
|
Version: 1.2.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Virtual Machine Manager
|
Summary: Virtual Machine Manager
|
||||||
License: GPL-2.0+
|
License: GPL-2.0+
|
||||||
@ -36,19 +36,18 @@ Url: http://virt-manager.org/
|
|||||||
Source0: %{name}-%{version}.tar.bz2
|
Source0: %{name}-%{version}.tar.bz2
|
||||||
Source1: virt-install.rb
|
Source1: virt-install.rb
|
||||||
Source2: virt-install.desktop
|
Source2: virt-install.desktop
|
||||||
|
# Upstream Patches
|
||||||
# SUSE Only
|
# SUSE Only
|
||||||
Patch1: 65f7017e-createnet-fix.patch
|
|
||||||
Patch70: virtman-desktop.patch
|
Patch70: virtman-desktop.patch
|
||||||
Patch71: virtman-kvm.patch
|
Patch71: virtman-kvm.patch
|
||||||
Patch72: virtman-keycombo.patch
|
Patch72: virtman-keycombo.patch
|
||||||
Patch73: virtman-vminstall.patch
|
Patch73: virtman-vminstall.patch
|
||||||
Patch74: virtman-show-suse-install-repos.patch
|
Patch74: virtman-show-suse-install-repos.patch
|
||||||
Patch75: virtman-stable-os-support.patch
|
Patch75: virtman-s390x-default-to-vminstall.patch
|
||||||
Patch76: virtman-dont-allow-grub.xen-to-be-deleted.patch
|
Patch76: virtman-libvirtd-not-running.patch
|
||||||
Patch77: virtman-s390x-default-to-vminstall.patch
|
Patch77: virtman-dont-allow-grub.xen-to-be-deleted.patch
|
||||||
Patch78: virtman-libvirtd-not-running.patch
|
Patch78: virtinst-pvgrub2-bootloader.patch
|
||||||
Patch79: virtinst-pvgrub2-bootloader.patch
|
Patch79: virtinst-nfs-install-sanitize.patch
|
||||||
Patch80: virtinst-nfs-install-sanitize.patch
|
|
||||||
# Features or Enhancements
|
# Features or Enhancements
|
||||||
Patch100: virtman-eepro100.patch
|
Patch100: virtman-eepro100.patch
|
||||||
Patch101: virtman-default-guest-from-host-os.patch
|
Patch101: virtman-default-guest-from-host-os.patch
|
||||||
@ -57,11 +56,9 @@ Patch103: virtman-autoyast-support.patch
|
|||||||
Patch104: virtman-packages.patch
|
Patch104: virtman-packages.patch
|
||||||
Patch105: virtman-load-stored-uris.patch
|
Patch105: virtman-load-stored-uris.patch
|
||||||
Patch106: virtman-add-s390x-arch-support.patch
|
Patch106: virtman-add-s390x-arch-support.patch
|
||||||
Patch107: virtman-default-lxc-uri.patch
|
Patch107: virtman-add-connect-default.patch
|
||||||
Patch108: virtman-add-connect-default.patch
|
|
||||||
Patch120: virtinst-storage-ocfs2.patch
|
Patch120: virtinst-storage-ocfs2.patch
|
||||||
Patch121: virtinst-supported-disk-formats.patch
|
Patch121: virtinst-default-xen-to-qcow2-format.patch
|
||||||
Patch122: virtinst-support-suse-distros.patch
|
|
||||||
Patch123: virtinst-detect-suse-distros.patch
|
Patch123: virtinst-detect-suse-distros.patch
|
||||||
Patch124: virtinst-modify-gui-defaults.patch
|
Patch124: virtinst-modify-gui-defaults.patch
|
||||||
Patch125: virtinst-vol-default-nocow.patch
|
Patch125: virtinst-vol-default-nocow.patch
|
||||||
@ -69,22 +66,16 @@ Patch126: virtinst-detect-windows-media.patch
|
|||||||
Patch127: virtinst-set-cache-mode-unsafe-for-install.patch
|
Patch127: virtinst-set-cache-mode-unsafe-for-install.patch
|
||||||
Patch128: virtinst-add-default-rng-device.patch
|
Patch128: virtinst-add-default-rng-device.patch
|
||||||
Patch129: virtinst-set-qemu-emulator.patch
|
Patch129: virtinst-set-qemu-emulator.patch
|
||||||
Patch130: virtinst-ppc64le.patch
|
|
||||||
# Bug Fixes
|
# Bug Fixes
|
||||||
Patch150: virtman-supported-disk-formats.patch
|
Patch150: virtman-supported-disk-formats.patch
|
||||||
Patch151: virtman-prevent-double-click-starting-vm-twice.patch
|
Patch151: virtman-prevent-double-click-starting-vm-twice.patch
|
||||||
Patch152: virtman-check-for-empty-network-name.patch
|
Patch152: virtman-increase-setKeepAlive-count.patch
|
||||||
Patch153: virtman-increase-setKeepAlive-count.patch
|
Patch153: virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch
|
||||||
Patch154: virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch
|
Patch154: virtman-check-for-valid-display.patch
|
||||||
Patch155: virtman-sync-vm-startup-for-cpu-usage.patch
|
Patch155: virtman-allow-creating-i686-vm.patch
|
||||||
Patch156: virtman-check-for-valid-display.patch
|
Patch160: virtinst-xen-drive-type.patch
|
||||||
Patch157: virtinst-xen-drive-type.patch
|
Patch161: virtinst-xenbus-disk-index-fix.patch
|
||||||
Patch158: virtinst-xenbus-disk-index-fix.patch
|
Patch162: virtinst-refresh_before_fetch_pool.patch
|
||||||
Patch159: virtinst-refresh_before_fetch_pool.patch
|
|
||||||
Patch160: virtinst-ignore-error-403-on-directories.patch
|
|
||||||
Patch161: virt-manager-Gtk-30.patch
|
|
||||||
Patch162: activate-default-console.patch
|
|
||||||
Patch163: virtman-allow-creating-i686-vm.patch
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
@ -112,7 +103,9 @@ Requires: python-libguestfs
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
BuildRequires: glib2-devel
|
BuildRequires: glib2-devel
|
||||||
|
%if 0%{?suse_version} > 1320
|
||||||
BuildRequires: gobject-introspection
|
BuildRequires: gobject-introspection
|
||||||
|
%endif
|
||||||
BuildRequires: intltool
|
BuildRequires: intltool
|
||||||
BuildRequires: perl
|
BuildRequires: perl
|
||||||
BuildRequires: python
|
BuildRequires: python
|
||||||
@ -161,8 +154,8 @@ machine).
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
# Upstream Patches
|
||||||
# SUSE Only
|
# SUSE Only
|
||||||
%patch1 -p1
|
|
||||||
%patch70 -p1
|
%patch70 -p1
|
||||||
%patch71 -p1
|
%patch71 -p1
|
||||||
%patch72 -p1
|
%patch72 -p1
|
||||||
@ -173,7 +166,6 @@ machine).
|
|||||||
%patch77 -p1
|
%patch77 -p1
|
||||||
%patch78 -p1
|
%patch78 -p1
|
||||||
%patch79 -p1
|
%patch79 -p1
|
||||||
%patch80 -p1
|
|
||||||
# Enhancements
|
# Enhancements
|
||||||
%patch100 -p1
|
%patch100 -p1
|
||||||
%patch101 -p1
|
%patch101 -p1
|
||||||
@ -183,10 +175,8 @@ machine).
|
|||||||
%patch105 -p1
|
%patch105 -p1
|
||||||
%patch106 -p1
|
%patch106 -p1
|
||||||
%patch107 -p1
|
%patch107 -p1
|
||||||
%patch108 -p1
|
|
||||||
%patch120 -p1
|
%patch120 -p1
|
||||||
%patch121 -p1
|
%patch121 -p1
|
||||||
%patch122 -p1
|
|
||||||
%patch123 -p1
|
%patch123 -p1
|
||||||
%patch124 -p1
|
%patch124 -p1
|
||||||
%patch125 -p1
|
%patch125 -p1
|
||||||
@ -194,7 +184,6 @@ machine).
|
|||||||
%patch127 -p1
|
%patch127 -p1
|
||||||
%patch128 -p1
|
%patch128 -p1
|
||||||
%patch129 -p1
|
%patch129 -p1
|
||||||
%patch130 -p1
|
|
||||||
# Bug Fixes
|
# Bug Fixes
|
||||||
%patch150 -p1
|
%patch150 -p1
|
||||||
%patch151 -p1
|
%patch151 -p1
|
||||||
@ -202,14 +191,9 @@ machine).
|
|||||||
%patch153 -p1
|
%patch153 -p1
|
||||||
%patch154 -p1
|
%patch154 -p1
|
||||||
%patch155 -p1
|
%patch155 -p1
|
||||||
%patch156 -p1
|
|
||||||
%patch157 -p1
|
|
||||||
%patch158 -p1
|
|
||||||
%patch159 -p1
|
|
||||||
%patch160 -p1
|
%patch160 -p1
|
||||||
%patch161 -p1
|
%patch161 -p1
|
||||||
%patch162 -p1
|
%patch162 -p1
|
||||||
%patch163 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if %{qemu_user}
|
%if %{qemu_user}
|
||||||
@ -238,7 +222,6 @@ machine).
|
|||||||
|
|
||||||
python setup.py configure \
|
python setup.py configure \
|
||||||
--prefix=%{_prefix} \
|
--prefix=%{_prefix} \
|
||||||
--pkgversion="%{version}" \
|
|
||||||
--default-graphics="spice" \
|
--default-graphics="spice" \
|
||||||
%{?_qemu_user} \
|
%{?_qemu_user} \
|
||||||
%{?_kvm_packages} \
|
%{?_kvm_packages} \
|
||||||
@ -296,6 +279,7 @@ fi
|
|||||||
%{_datadir}/appdata/%{name}.appdata.xml
|
%{_datadir}/appdata/%{name}.appdata.xml
|
||||||
%{_datadir}/applications/%{name}.desktop
|
%{_datadir}/applications/%{name}.desktop
|
||||||
%{_datadir}/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.xml
|
%{_datadir}/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.xml
|
||||||
|
%{_datadir}/GConf/gsettings/org.virt-manager.virt-manager.convert
|
||||||
|
|
||||||
%files common -f %{name}.lang
|
%files common -f %{name}.lang
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
@ -316,8 +300,11 @@ fi
|
|||||||
%{_datadir}/%{name}/virt-clone
|
%{_datadir}/%{name}/virt-clone
|
||||||
%{_datadir}/%{name}/virt-convert
|
%{_datadir}/%{name}/virt-convert
|
||||||
%{_datadir}/%{name}/virt-xml
|
%{_datadir}/%{name}/virt-xml
|
||||||
%dir %{_datadir}/*
|
%dir %{_datadir}/YaST2
|
||||||
%dir %{_datadir}/*/*
|
%dir %{_datadir}/YaST2/clients
|
||||||
|
%dir %{_datadir}/applications/YaST2
|
||||||
|
%dir %{_datadir}/GConf
|
||||||
|
%dir %{_datadir}/GConf/gsettings
|
||||||
%{_datadir}/YaST2/clients/virt-install.rb
|
%{_datadir}/YaST2/clients/virt-install.rb
|
||||||
%{_datadir}/applications/YaST2/virt-install.desktop
|
%{_datadir}/applications/YaST2/virt-install.desktop
|
||||||
|
|
||||||
|
@ -1,26 +1,34 @@
|
|||||||
bnc#885308
|
References: bnc#885308
|
||||||
|
Enhancement to add a virtio RNG device to non windows VMs.
|
||||||
Index: virt-manager-1.1.0/virtinst/guest.py
|
Index: virt-manager-1.1.0/virtinst/guest.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtinst/guest.py
|
--- virt-manager-1.1.0.orig/virtinst/guest.py
|
||||||
+++ virt-manager-1.1.0/virtinst/guest.py
|
+++ virt-manager-1.1.0/virtinst/guest.py
|
||||||
@@ -638,6 +638,15 @@ class Guest(XMLBuilder):
|
@@ -53,6 +53,7 @@ from .pm import PM
|
||||||
|
from .seclabel import Seclabel
|
||||||
|
from .xmlbuilder import XMLBuilder, XMLProperty, XMLChildProperty
|
||||||
|
from .devicedisk import VirtualDisk
|
||||||
|
+from .devicerng import VirtualRNGDevice
|
||||||
|
|
||||||
|
|
||||||
|
class Guest(XMLBuilder):
|
||||||
|
@@ -681,6 +682,15 @@ class Guest(XMLBuilder):
|
||||||
return
|
return
|
||||||
self.add_device(virtinst.VirtualGraphics(self.conn))
|
self.add_device(VirtualGraphics(self.conn))
|
||||||
|
|
||||||
+ def add_default_rng(self):
|
+ def add_default_rng(self):
|
||||||
+ osvar = self._get_os_variant()
|
+ osvar = self._get_os_variant()
|
||||||
+ if not self.conn.is_qemu() or not osvar or osvar.startswith("win"):
|
+ if not self.conn.is_qemu() or not osvar or osvar.startswith("win"):
|
||||||
+ return
|
+ return
|
||||||
+ rng_dev = virtinst.VirtualRNGDevice(True)
|
+ rng_dev = VirtualRNGDevice(True)
|
||||||
+ rng_dev.type = virtinst.VirtualRNGDevice.TYPE_RANDOM
|
+ rng_dev.type = VirtualRNGDevice.TYPE_RANDOM
|
||||||
+ setattr(rng_dev, "device", "/dev/random")
|
+ setattr(rng_dev, "device", "/dev/random")
|
||||||
+ self.add_device(rng_dev)
|
+ self.add_device(rng_dev)
|
||||||
+
|
+
|
||||||
def add_default_devices(self):
|
def add_default_devices(self):
|
||||||
self.add_default_graphics()
|
self.add_default_graphics()
|
||||||
self.add_default_video_device()
|
self.add_default_video_device()
|
||||||
@@ -645,6 +654,7 @@ class Guest(XMLBuilder):
|
@@ -688,6 +698,7 @@ class Guest(XMLBuilder):
|
||||||
self.add_default_console_device()
|
self.add_default_console_device()
|
||||||
self.add_default_usb_controller()
|
self.add_default_usb_controller()
|
||||||
self.add_default_channels()
|
self.add_default_channels()
|
||||||
|
15
virtinst-default-xen-to-qcow2-format.patch
Normal file
15
virtinst-default-xen-to-qcow2-format.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
Reference: bnc#885380
|
||||||
|
Allow Xen based VMs to default to using qcow2
|
||||||
|
Index: virt-manager-1.1.0/virtinst/support.py
|
||||||
|
===================================================================
|
||||||
|
--- virt-manager-1.1.0.orig/virtinst/support.py
|
||||||
|
+++ virt-manager-1.1.0/virtinst/support.py
|
||||||
|
@@ -258,7 +258,7 @@ SUPPORT_CONN_DISK_SD = _make(version="1.
|
||||||
|
# default to qcow2. It might be fine for xen or qemu older than the versions
|
||||||
|
# here, but until someone tests things I'm going to be a bit conservative.
|
||||||
|
SUPPORT_CONN_DEFAULT_QCOW2 = _make(
|
||||||
|
- version="0.8.0", hv_version={"qemu": "1.2.0", "test": 0})
|
||||||
|
+ version="0.8.0", hv_version={"qemu": "1.2.0", "all": 0})
|
||||||
|
SUPPORT_CONN_DEFAULT_USB2 = _make(
|
||||||
|
version="0.9.7", hv_version={"qemu": "1.0.0", "test": 0})
|
||||||
|
SUPPORT_CONN_CAN_ACPI = _make(hv_version={"xen": "3.1.0", "all": 0})
|
@ -1,8 +1,10 @@
|
|||||||
|
Enhancement to correctly detect SUSE media when such media is
|
||||||
|
selected as the installation source.
|
||||||
Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtinst/urlfetcher.py
|
--- virt-manager-1.1.0.orig/virtinst/urlfetcher.py
|
||||||
+++ virt-manager-1.1.0/virtinst/urlfetcher.py
|
+++ virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||||
@@ -323,6 +323,89 @@ def _distroFromTreeinfo(fetcher, arch, v
|
@@ -318,6 +318,94 @@ def _distroFromTreeinfo(fetcher, arch, v
|
||||||
|
|
||||||
return ob
|
return ob
|
||||||
|
|
||||||
@ -44,6 +46,8 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
|||||||
+ distro_arch = line.split(' ', 1)
|
+ distro_arch = line.split(' ', 1)
|
||||||
+ elif line.startswith("DEFAULTBASE "):
|
+ elif line.startswith("DEFAULTBASE "):
|
||||||
+ distro_arch = line.split(' ', 1)
|
+ distro_arch = line.split(' ', 1)
|
||||||
|
+ elif line.startswith("REPOID "):
|
||||||
|
+ distro_arch = line.rsplit('/', 1)
|
||||||
+ if distribution and distro_version and distro_arch:
|
+ if distribution and distro_version and distro_arch:
|
||||||
+ break
|
+ break
|
||||||
+
|
+
|
||||||
@ -76,7 +80,10 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
|||||||
+ elif re.match(".*openSUSE.*", distribution[1]):
|
+ elif re.match(".*openSUSE.*", distribution[1]):
|
||||||
+ dclass = OpensuseDistro
|
+ dclass = OpensuseDistro
|
||||||
+ if distro_version is None:
|
+ if distro_version is None:
|
||||||
+ distro_version = ['VERSION', '13.1']
|
+ distro_version = ['VERSION', distribution[0].strip().rsplit(':')[4]]
|
||||||
|
+ # For tumbleweed we only have an 8 character date string so default to 13.2
|
||||||
|
+ if distro_version[1] and len(distro_version[1]) == 8:
|
||||||
|
+ distro_version = ['VERSION', '13.2']
|
||||||
+
|
+
|
||||||
+ if distro_version is None:
|
+ if distro_version is None:
|
||||||
+ return None
|
+ return None
|
||||||
@ -92,7 +99,7 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
|||||||
|
|
||||||
def getDistroStore(guest, fetcher):
|
def getDistroStore(guest, fetcher):
|
||||||
stores = []
|
stores = []
|
||||||
@@ -339,6 +422,10 @@ def getDistroStore(guest, fetcher):
|
@@ -334,6 +422,10 @@ def getDistroStore(guest, fetcher):
|
||||||
if dist:
|
if dist:
|
||||||
return dist
|
return dist
|
||||||
|
|
||||||
@ -103,7 +110,31 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
|||||||
stores = _allstores[:]
|
stores = _allstores[:]
|
||||||
|
|
||||||
# If user manually specified an os_distro, bump it's URL class
|
# If user manually specified an os_distro, bump it's URL class
|
||||||
@@ -821,29 +908,59 @@ class SLDistro(RHELDistro):
|
@@ -375,6 +467,23 @@ def getDistroStore(guest, fetcher):
|
||||||
|
(fetcher.location, extramsg)))
|
||||||
|
|
||||||
|
|
||||||
|
+def detectMediaDistro(guest, location):
|
||||||
|
+ """
|
||||||
|
+ Attempt to detect the os type + variant for the passed location
|
||||||
|
+ """
|
||||||
|
+ import urlgrabber
|
||||||
|
+ meter = urlgrabber.progress.BaseMeter()
|
||||||
|
+ scratchdir = "/var/tmp"
|
||||||
|
+ fetcher = fetcherForURI(location, scratchdir, meter)
|
||||||
|
+
|
||||||
|
+ try:
|
||||||
|
+ fetcher.prepareLocation()
|
||||||
|
+ store = getDistroStore(guest, fetcher)
|
||||||
|
+ return store.get_osdict_info()
|
||||||
|
+ finally:
|
||||||
|
+ fetcher.cleanupLocation()
|
||||||
|
+
|
||||||
|
+
|
||||||
|
##################
|
||||||
|
# Distro classes #
|
||||||
|
##################
|
||||||
|
@@ -832,29 +941,64 @@ class SLDistro(RHELDistro):
|
||||||
|
|
||||||
class SuseDistro(Distro):
|
class SuseDistro(Distro):
|
||||||
name = "SUSE"
|
name = "SUSE"
|
||||||
@ -131,10 +162,12 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
|||||||
+ oldkern += "64"
|
+ oldkern += "64"
|
||||||
+ oldinit += "64"
|
+ oldinit += "64"
|
||||||
+
|
+
|
||||||
+ if self.arch == "s390x":
|
+ if self.arch == "s390x" or \
|
||||||
|
+ self.arch == "ppc64" or self.arch == "ppc64le":
|
||||||
|
+
|
||||||
+ self._hvm_kernel_paths = [ ("boot/%s/linux" % self.arch,
|
+ self._hvm_kernel_paths = [ ("boot/%s/linux" % self.arch,
|
||||||
+ "boot/%s/initrd" % self.arch) ]
|
+ "boot/%s/initrd" % self.arch) ]
|
||||||
+ # No Xen on s390x
|
+ # No Xen on s390x and ppc
|
||||||
+ self._xen_kernel_paths = []
|
+ self._xen_kernel_paths = []
|
||||||
+ else:
|
+ else:
|
||||||
+ # Tested with Opensuse >= 10.2, 11, and sles 10
|
+ # Tested with Opensuse >= 10.2, 11, and sles 10
|
||||||
@ -152,11 +185,14 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
|||||||
+ # self.content is the VERSION line from the contents file
|
+ # self.content is the VERSION line from the contents file
|
||||||
+ if self.content is None or self.content[1] is None:
|
+ if self.content is None or self.content[1] is None:
|
||||||
+ return False
|
+ return False
|
||||||
+ distro_version = self.content[1]
|
+ distro_version = self.content[1].strip()
|
||||||
+ version = distro_version.split('.', 1)[0].strip()
|
+ version = distro_version.split('.', 1)[0].strip()
|
||||||
+ if int(version) >= 10:
|
+ if int(version) >= 10:
|
||||||
|
+ if self.os_variant.startswith("sles"):
|
||||||
+ self.os_variant += version
|
+ self.os_variant += version
|
||||||
+ else:
|
+ else:
|
||||||
|
+ self.os_variant += distro_version
|
||||||
|
+ else:
|
||||||
+ self.os_variant += "9"
|
+ self.os_variant += "9"
|
||||||
+
|
+
|
||||||
if not self.fetcher.hasFile("directory.yast"):
|
if not self.fetcher.hasFile("directory.yast"):
|
||||||
@ -172,7 +208,7 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
def _get_method_arg(self):
|
def _get_method_arg(self):
|
||||||
@@ -863,6 +980,27 @@ class SuseDistro(Distro):
|
@@ -874,6 +1018,27 @@ class SuseDistro(Distro):
|
||||||
return osobj.name
|
return osobj.name
|
||||||
return self.os_variant
|
return self.os_variant
|
||||||
|
|
||||||
@ -200,3 +236,18 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
|||||||
|
|
||||||
class DebianDistro(Distro):
|
class DebianDistro(Distro):
|
||||||
# ex. http://ftp.egr.msu.edu/debian/dists/sarge/main/installer-i386/
|
# ex. http://ftp.egr.msu.edu/debian/dists/sarge/main/installer-i386/
|
||||||
|
Index: virt-manager-1.1.0/virtinst/distroinstaller.py
|
||||||
|
===================================================================
|
||||||
|
--- virt-manager-1.1.0.orig/virtinst/distroinstaller.py
|
||||||
|
+++ virt-manager-1.1.0/virtinst/distroinstaller.py
|
||||||
|
@@ -505,6 +505,10 @@ class DistroInstaller(Installer):
|
||||||
|
"remote connection.")
|
||||||
|
else:
|
||||||
|
distro = OSDB.lookup_os_by_media(self.location)
|
||||||
|
+ # libosinfo relies on treeinfo to detect media which suse
|
||||||
|
+ # doesn't have. Fallback to url method for detecting ISO media.
|
||||||
|
+ if distro is None:
|
||||||
|
+ distro = urlfetcher.detectMediaDistro(guest, self.location)
|
||||||
|
except:
|
||||||
|
logging.debug("Error attempting to detect distro.", exc_info=True)
|
||||||
|
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
Enhancement to detect windows media. It is based solely upon
|
||||||
|
finding an autorun.inf file in the root of the installation source.
|
||||||
|
It only assumes windows, not the specific version of windows.
|
||||||
Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtinst/urlfetcher.py
|
--- virt-manager-1.1.0.orig/virtinst/urlfetcher.py
|
||||||
@ -38,34 +41,17 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
|||||||
stores = _allstores[:]
|
stores = _allstores[:]
|
||||||
|
|
||||||
# If user manually specified an os_distro, bump it's URL class
|
# If user manually specified an os_distro, bump it's URL class
|
||||||
@@ -1161,6 +1183,13 @@ class ALTLinuxDistro(Distro):
|
@@ -1204,6 +1226,13 @@ class ALTLinuxDistro(Distro):
|
||||||
logging.debug("Regex didn't match, not a %s distro", self.name)
|
logging.debug("Regex didn't match, not a %s distro", self.name)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
+class WindowsDistro(Distro):
|
+class WindowsDistro(Distro):
|
||||||
+
|
+
|
||||||
+ urldistro = "windows"
|
+ urldistro = "windows"
|
||||||
+ os_variant = "win-unknown"
|
+ os_variant = "win8.1"
|
||||||
+
|
+
|
||||||
+ def isValidStore(self):
|
+ def isValidStore(self):
|
||||||
+ return False
|
+ return False
|
||||||
|
|
||||||
# Build list of all *Distro classes
|
# Build list of all *Distro classes
|
||||||
def _build_distro_list():
|
def _build_distro_list():
|
||||||
Index: virt-manager-1.1.0/virtinst/osdict.py
|
|
||||||
===================================================================
|
|
||||||
--- virt-manager-1.1.0.orig/virtinst/osdict.py
|
|
||||||
+++ virt-manager-1.1.0/virtinst/osdict.py
|
|
||||||
@@ -543,6 +543,12 @@ _add_var("oes11", "Novell Open Enterpris
|
|
||||||
_add_var("rear", "Relax and Recover", supported=True, virtiodisk=True, virtionet=True, parent="sles11")
|
|
||||||
_add_var("netware6", "Novell Netware 6 (or later)", supported=True, parent="other")
|
|
||||||
|
|
||||||
+_add_var("win2k8", "Microsoft Windows Server 2008", supported=True, sortby="mswinserv2008", parent="windows")
|
|
||||||
+_add_var("win2k12", "Microsoft Windows Server 2012 (or later)", supported=True, sortby="mswinserv2012", parent="windows")
|
|
||||||
+_add_var("win7", "Microsoft Windows 7", supported=True, sortby="mswin7", parent="windows")
|
|
||||||
+_add_var("win8", "Microsoft Windows 8 (or later)", supported=True, sortby="mswin8", parent="windows")
|
|
||||||
+_add_var("win-unknown", "Microsoft Windows Unknown Version", supported=True, sortby="mswin", parent="windows")
|
|
||||||
+
|
|
||||||
|
|
||||||
_os_data_loaded = False
|
|
||||||
_os_loader = None
|
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
bnc#892821
|
|
||||||
|
|
||||||
Ignore HTTP error 403 if the location is a directory. This allows
|
|
||||||
the OS detection procedure to succeed when Indexes are disabled
|
|
||||||
on the HTTP server.
|
|
||||||
|
|
||||||
Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
|
||||||
===================================================================
|
|
||||||
--- virt-manager-1.1.0.orig/virtinst/urlfetcher.py
|
|
||||||
+++ virt-manager-1.1.0/virtinst/urlfetcher.py
|
|
||||||
@@ -142,8 +142,11 @@ class _HTTPImageFetcher(_URIImageFetcher
|
|
||||||
request.get_method = lambda: "HEAD"
|
|
||||||
urllib2.urlopen(request)
|
|
||||||
except Exception, e:
|
|
||||||
- logging.debug("HTTP hasFile: didn't find %s: %s", path, str(e))
|
|
||||||
- return False
|
|
||||||
+ if path.endswith("/") and e.code == 403:
|
|
||||||
+ logging.debug("HTTP hasFile: indexing disabled in %s?.", path)
|
|
||||||
+ else:
|
|
||||||
+ logging.debug("HTTP hasFile: didn't find %s: %s", path, str(e))
|
|
||||||
+ return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
@ -1,12 +1,18 @@
|
|||||||
|
Enhancement for the following GUI wizard installation options.
|
||||||
|
1) If Xen, leave 'Architecture options' expanded so users know PV
|
||||||
|
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.1.0/virtManager/create.py
|
Index: virt-manager-1.1.0/virtManager/create.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
--- virt-manager-1.1.0.orig/virtManager/create.py
|
||||||
+++ virt-manager-1.1.0/virtManager/create.py
|
+++ virt-manager-1.1.0/virtManager/create.py
|
||||||
@@ -342,7 +342,18 @@ class vmmCreate(vmmGObjectUI):
|
@@ -331,7 +331,19 @@ class vmmCreate(vmmGObjectUI):
|
||||||
self.widget("method-local").set_active(True)
|
self.widget("method-local").set_active(True)
|
||||||
self.widget("create-conn").set_active(-1)
|
self.widget("create-conn").set_active(-1)
|
||||||
activeconn = self.populate_conn_list(urihint)
|
activeconn = self.populate_conn_list(urihint)
|
||||||
- self.widget("arch-expander").set_expanded(False)
|
- self.widget("arch-expander").set_expanded(False)
|
||||||
|
+ # For Xen have the expander open so users can see PV is the default
|
||||||
+ if activeconn and activeconn.is_xen():
|
+ if activeconn and activeconn.is_xen():
|
||||||
+ self.widget("arch-expander").set_expanded(True)
|
+ self.widget("arch-expander").set_expanded(True)
|
||||||
+ else:
|
+ else:
|
||||||
@ -46,7 +52,7 @@ Index: virt-manager-1.1.0/virtManager/netlist.py
|
|||||||
skip_ifaces = ["lo"]
|
skip_ifaces = ["lo"]
|
||||||
|
|
||||||
vnet_taps = []
|
vnet_taps = []
|
||||||
@@ -228,10 +238,18 @@ class vmmNetworkList(vmmGObjectUI):
|
@@ -229,10 +239,18 @@ class vmmNetworkList(vmmGObjectUI):
|
||||||
if can_default and not default_label:
|
if can_default and not default_label:
|
||||||
default_label = label
|
default_label = label
|
||||||
|
|
||||||
|
@ -1,10 +1,15 @@
|
|||||||
bnc#888251
|
Reference: bnc#888251
|
||||||
|
A fix for accessing nfs mounted media. A comment in the code states,
|
||||||
|
"Convert RFC compliant NFS nfs://server/path/to/distro
|
||||||
|
to what mount/anaconda expect nfs:server:/path/to/distro
|
||||||
|
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.1.0/virtinst/util.py
|
Index: virt-manager-1.1.0/virtinst/util.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtinst/util.py
|
--- virt-manager-1.1.0.orig/virtinst/util.py
|
||||||
+++ virt-manager-1.1.0/virtinst/util.py
|
+++ virt-manager-1.1.0/virtinst/util.py
|
||||||
@@ -612,3 +612,22 @@ def getInstallRepos(enabled_sources_only
|
@@ -557,3 +557,22 @@ def getInstallRepos(enabled_sources_only
|
||||||
zypper_output.insert(0, dom0_inst_source)
|
zypper_output.insert(0, dom0_inst_source)
|
||||||
return (index_dom0, zypper_output)
|
return (index_dom0, zypper_output)
|
||||||
|
|
||||||
@ -47,12 +52,12 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
|||||||
@@ -33,6 +33,7 @@ import urlparse
|
@@ -33,6 +33,7 @@ import urlparse
|
||||||
import urlgrabber.grabber as grabber
|
import urlgrabber.grabber as grabber
|
||||||
|
|
||||||
from virtinst import osdict
|
from .osdict import OSDB
|
||||||
+from virtinst import util
|
+from virtinst import util
|
||||||
|
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
@@ -223,7 +224,8 @@ class _MountedImageFetcher(_LocalImageFe
|
@@ -218,7 +219,8 @@ class _MountedImageFetcher(_LocalImageFe
|
||||||
|
|
||||||
logging.debug("Preparing mount at " + self.srcdir)
|
logging.debug("Preparing mount at " + self.srcdir)
|
||||||
if self.location.startswith("nfs:"):
|
if self.location.startswith("nfs:"):
|
||||||
|
@ -1,71 +0,0 @@
|
|||||||
Index: virt-manager-1.1.0/virtinst/guest.py
|
|
||||||
===================================================================
|
|
||||||
--- virt-manager-1.1.0.orig/virtinst/guest.py
|
|
||||||
+++ virt-manager-1.1.0/virtinst/guest.py
|
|
||||||
@@ -635,7 +635,7 @@ class Guest(XMLBuilder):
|
|
||||||
return
|
|
||||||
if self.os.is_container():
|
|
||||||
return
|
|
||||||
- if self.os.arch not in ["x86_64", "i686", "ppc64", "ia64", "s390x"]:
|
|
||||||
+ if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64", "s390x"]:
|
|
||||||
return
|
|
||||||
self.add_device(virtinst.VirtualGraphics(self.conn))
|
|
||||||
|
|
||||||
@@ -773,6 +773,8 @@ class Guest(XMLBuilder):
|
|
||||||
if self.conn.is_qemu():
|
|
||||||
if self.os.arch == "s390x":
|
|
||||||
preferred_emulator = "/usr/bin/qemu-system-s390x"
|
|
||||||
+ elif self.os.arch == "ppc64" or self.os.arch == "ppc64le":
|
|
||||||
+ preferred_emulator = "/usr/bin/qemu-system-ppc64"
|
|
||||||
else:
|
|
||||||
preferred_emulator = "/usr/bin/qemu-system-x86_64"
|
|
||||||
elif self.conn.is_lxc():
|
|
||||||
@@ -883,7 +885,7 @@ class Guest(XMLBuilder):
|
|
||||||
if not self._lookup_osdict_key(key, False):
|
|
||||||
return False
|
|
||||||
|
|
||||||
- if self.os.is_x86() or self.os.is_s390x():
|
|
||||||
+ if self.os.is_x86() or self.os.is_s390x() or self.os.is_ppc64():
|
|
||||||
return True
|
|
||||||
if (self.os.is_arm_vexpress() and
|
|
||||||
self.os.dtb and
|
|
||||||
@@ -934,6 +936,8 @@ class Guest(XMLBuilder):
|
|
||||||
net_model = None
|
|
||||||
elif self._can_virtio("virtionet"):
|
|
||||||
net_model = "virtio"
|
|
||||||
+ elif self.os.is_pseries():
|
|
||||||
+ net_model = "spapr-vlan"
|
|
||||||
else:
|
|
||||||
net_model = self._lookup_osdict_key("netmodel", None)
|
|
||||||
|
|
||||||
Index: virt-manager-1.1.0/virtinst/osxml.py
|
|
||||||
===================================================================
|
|
||||||
--- virt-manager-1.1.0.orig/virtinst/osxml.py
|
|
||||||
+++ virt-manager-1.1.0/virtinst/osxml.py
|
|
||||||
@@ -60,6 +60,8 @@ class OSXML(XMLBuilder):
|
|
||||||
return self.is_ppc64 and self.machine == "pseries"
|
|
||||||
def is_s390x(self):
|
|
||||||
return self.arch == "s390x"
|
|
||||||
+ def is_ppc64(self):
|
|
||||||
+ return self.arch == "ppc64" or self.arch == "ppc64le"
|
|
||||||
|
|
||||||
_XML_ROOT_NAME = "os"
|
|
||||||
_XML_PROP_ORDER = ["arch", "os_type", "loader",
|
|
||||||
Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
|
||||||
===================================================================
|
|
||||||
--- virt-manager-1.1.0.orig/virtinst/urlfetcher.py
|
|
||||||
+++ virt-manager-1.1.0/virtinst/urlfetcher.py
|
|
||||||
@@ -945,10 +945,11 @@ class SuseDistro(Distro):
|
|
||||||
oldkern += "64"
|
|
||||||
oldinit += "64"
|
|
||||||
|
|
||||||
- if self.arch == "s390x":
|
|
||||||
+ if self.arch == "s390x" or \
|
|
||||||
+ self.arch == "ppc64" or self.arch == "ppc64le":
|
|
||||||
self._hvm_kernel_paths = [ ("boot/%s/linux" % self.arch,
|
|
||||||
"boot/%s/initrd" % self.arch) ]
|
|
||||||
- # No Xen on s390x
|
|
||||||
+ # No Xen on s390x and ppc
|
|
||||||
self._xen_kernel_paths = []
|
|
||||||
else:
|
|
||||||
# Tested with Opensuse >= 10.2, 11, and sles 10
|
|
@ -1,8 +1,12 @@
|
|||||||
|
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.1.0/virtinst/guest.py
|
Index: virt-manager-1.1.0/virtinst/guest.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtinst/guest.py
|
--- virt-manager-1.1.0.orig/virtinst/guest.py
|
||||||
+++ virt-manager-1.1.0/virtinst/guest.py
|
+++ virt-manager-1.1.0/virtinst/guest.py
|
||||||
@@ -350,8 +350,18 @@ class Guest(XMLBuilder):
|
@@ -364,8 +364,18 @@ class Guest(XMLBuilder):
|
||||||
if (not install and
|
if (not install and
|
||||||
self.os.is_xenpv() and
|
self.os.is_xenpv() and
|
||||||
not self.os.kernel):
|
not self.os.kernel):
|
||||||
@ -15,7 +19,7 @@ Index: virt-manager-1.1.0/virtinst/guest.py
|
|||||||
+ self.installer.extraargs = None
|
+ self.installer.extraargs = None
|
||||||
+ # alter_bootconfig won't update the osxml unless it thinks
|
+ # alter_bootconfig won't update the osxml unless it thinks
|
||||||
+ # we are in an install phase. Add force_update param to call
|
+ # we are in an install phase. Add force_update param to call
|
||||||
+ self.installer.alter_bootconfig(self, True, self.os, True)
|
+ self.installer.alter_bootconfig(self, True, True)
|
||||||
+ logging.info("Using grub.xen to boot guest")
|
+ logging.info("Using grub.xen to boot guest")
|
||||||
+ else:
|
+ else:
|
||||||
+ self.bootloader = "/usr/bin/pygrub"
|
+ self.bootloader = "/usr/bin/pygrub"
|
||||||
@ -27,16 +31,16 @@ Index: virt-manager-1.1.0/virtinst/installer.py
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtinst/installer.py
|
--- virt-manager-1.1.0.orig/virtinst/installer.py
|
||||||
+++ virt-manager-1.1.0/virtinst/installer.py
|
+++ virt-manager-1.1.0/virtinst/installer.py
|
||||||
@@ -111,7 +111,7 @@ class Installer(object):
|
@@ -112,7 +112,7 @@ class Installer(object):
|
||||||
dev.validate()
|
dev.validate()
|
||||||
return dev
|
return dev
|
||||||
|
|
||||||
- def alter_bootconfig(self, guest, isinstall, bootconfig):
|
- def alter_bootconfig(self, guest, isinstall):
|
||||||
+ def alter_bootconfig(self, guest, isinstall, bootconfig, force_update=False):
|
+ def alter_bootconfig(self, guest, isinstall, force_update=False):
|
||||||
"""
|
"""
|
||||||
Generate the portion of the guest xml that determines boot devices
|
Generate the portion of the guest xml that determines boot devices
|
||||||
and parameters. (typically the <os></os> block)
|
and parameters. (typically the <os></os> block)
|
||||||
@@ -122,7 +122,7 @@ class Installer(object):
|
@@ -123,7 +123,7 @@ class Installer(object):
|
||||||
'post-install' phase.
|
'post-install' phase.
|
||||||
@type isinstall: C{bool}
|
@type isinstall: C{bool}
|
||||||
"""
|
"""
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
Reference: bnc#887868
|
||||||
Refresh pools status before fetch_pools.
|
Refresh pools status before fetch_pools.
|
||||||
|
|
||||||
Currently, when connecting to hypervisor, if there are pools active
|
Currently, when connecting to hypervisor, if there are pools active
|
||||||
@ -16,7 +17,7 @@ Index: virt-manager-1.1.0/virtinst/pollhelpers.py
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtinst/pollhelpers.py
|
--- virt-manager-1.1.0.orig/virtinst/pollhelpers.py
|
||||||
+++ virt-manager-1.1.0/virtinst/pollhelpers.py
|
+++ virt-manager-1.1.0/virtinst/pollhelpers.py
|
||||||
@@ -133,6 +133,19 @@ def fetch_pools(backend, origmap, build_
|
@@ -132,6 +132,19 @@ def fetch_pools(backend, origmap, build_
|
||||||
|
|
||||||
if backend.check_support(
|
if backend.check_support(
|
||||||
backend.SUPPORT_CONN_LISTALLSTORAGEPOOLS) and not _force_old_poll:
|
backend.SUPPORT_CONN_LISTALLSTORAGEPOOLS) and not _force_old_poll:
|
||||||
|
@ -1,19 +1,21 @@
|
|||||||
|
Set cache mode for target installation disk to unsafe for better
|
||||||
|
performance.
|
||||||
Index: virt-manager-1.1.0/virtinst/guest.py
|
Index: virt-manager-1.1.0/virtinst/guest.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtinst/guest.py
|
--- virt-manager-1.1.0.orig/virtinst/guest.py
|
||||||
+++ virt-manager-1.1.0/virtinst/guest.py
|
+++ virt-manager-1.1.0/virtinst/guest.py
|
||||||
@@ -31,6 +31,7 @@ from virtinst import util
|
@@ -52,6 +52,7 @@ from .osxml import OSXML
|
||||||
from virtinst import support
|
from .pm import PM
|
||||||
from virtinst import OSXML
|
from .seclabel import Seclabel
|
||||||
from virtinst import VirtualDevice
|
from .xmlbuilder import XMLBuilder, XMLProperty, XMLChildProperty
|
||||||
+from virtinst import VirtualDisk
|
+from .devicedisk import VirtualDisk
|
||||||
from virtinst import Clock
|
|
||||||
from virtinst import Seclabel
|
|
||||||
from virtinst import CPU
|
class Guest(XMLBuilder):
|
||||||
@@ -348,6 +349,13 @@ class Guest(XMLBuilder):
|
@@ -363,6 +364,14 @@ class Guest(XMLBuilder):
|
||||||
self.on_crash = action
|
dev.set_defaults(self)
|
||||||
|
self._set_disk_defaults(disks=self._install_devices)
|
||||||
|
|
||||||
self._set_defaults()
|
|
||||||
+ # At install time set the target disk to 'unsafe' for
|
+ # At install time set the target disk to 'unsafe' for
|
||||||
+ # better performance if the target is not a block device
|
+ # better performance if the target is not a block device
|
||||||
+ if install:
|
+ if install:
|
||||||
@ -21,10 +23,11 @@ Index: virt-manager-1.1.0/virtinst/guest.py
|
|||||||
+ saved_cache = target_disk.driver_cache
|
+ saved_cache = target_disk.driver_cache
|
||||||
+ if target_disk.type != VirtualDisk.TYPE_BLOCK:
|
+ if target_disk.type != VirtualDisk.TYPE_BLOCK:
|
||||||
+ target_disk.driver_cache = VirtualDisk.CACHE_MODE_UNSAFE
|
+ target_disk.driver_cache = VirtualDisk.CACHE_MODE_UNSAFE
|
||||||
|
+
|
||||||
self.bootloader = None
|
self.bootloader = None
|
||||||
if (not install and
|
if (not install and
|
||||||
@@ -366,7 +374,10 @@ class Guest(XMLBuilder):
|
self.os.is_xenpv() and
|
||||||
|
@@ -380,7 +389,10 @@ class Guest(XMLBuilder):
|
||||||
self.bootloader = "/usr/bin/pygrub"
|
self.bootloader = "/usr/bin/pygrub"
|
||||||
self.os.clear()
|
self.os.clear()
|
||||||
|
|
||||||
@ -34,5 +37,5 @@ Index: virt-manager-1.1.0/virtinst/guest.py
|
|||||||
+ target_disk.driver_cache = saved_cache
|
+ target_disk.driver_cache = saved_cache
|
||||||
+ return xml_config
|
+ return xml_config
|
||||||
|
|
||||||
def get_continue_inst(self):
|
|
||||||
"""
|
##############
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
Index: virt-manager-1.1.0/virtinst/guest.py
|
Use the correct qemu emulator based on the architecture.
|
||||||
|
Index: virt-manager-1.2.0/virtinst/guest.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtinst/guest.py
|
--- virt-manager-1.2.0.orig/virtinst/guest.py
|
||||||
+++ virt-manager-1.1.0/virtinst/guest.py
|
+++ virt-manager-1.2.0/virtinst/guest.py
|
||||||
@@ -19,6 +19,7 @@
|
@@ -19,6 +19,7 @@
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
# MA 02110-1301 USA.
|
# MA 02110-1301 USA.
|
||||||
@ -10,7 +11,7 @@ Index: virt-manager-1.1.0/virtinst/guest.py
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
import urlgrabber.progress as progress
|
import urlgrabber.progress as progress
|
||||||
@@ -769,14 +770,26 @@ class Guest(XMLBuilder):
|
@@ -815,14 +816,28 @@ class Guest(XMLBuilder):
|
||||||
self.emulator = None
|
self.emulator = None
|
||||||
return
|
return
|
||||||
|
|
||||||
@ -18,6 +19,8 @@ Index: virt-manager-1.1.0/virtinst/guest.py
|
|||||||
+ if self.conn.is_qemu():
|
+ if self.conn.is_qemu():
|
||||||
+ if self.os.arch == "s390x":
|
+ if self.os.arch == "s390x":
|
||||||
+ preferred_emulator = "/usr/bin/qemu-system-s390x"
|
+ preferred_emulator = "/usr/bin/qemu-system-s390x"
|
||||||
|
+ elif self.os.arch == "ppc64" or self.os.arch == "ppc64le":
|
||||||
|
+ preferred_emulator = "/usr/bin/qemu-system-ppc64"
|
||||||
+ else:
|
+ else:
|
||||||
+ preferred_emulator = "/usr/bin/qemu-system-x86_64"
|
+ preferred_emulator = "/usr/bin/qemu-system-x86_64"
|
||||||
+ elif self.conn.is_lxc():
|
+ elif self.conn.is_lxc():
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
Index: virt-manager-1.1.0/virtinst/storage.py
|
Enhancement to add ocfs2 as a supported FS type
|
||||||
|
Index: virt-manager-1.2.0/virtinst/storage.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtinst/storage.py
|
--- virt-manager-1.2.0.orig/virtinst/storage.py
|
||||||
+++ virt-manager-1.1.0/virtinst/storage.py
|
+++ virt-manager-1.2.0/virtinst/storage.py
|
||||||
@@ -405,7 +405,7 @@ class StoragePool(_StorageObject):
|
@@ -436,7 +436,7 @@ class StoragePool(_StorageObject):
|
||||||
def list_formats(self):
|
def list_formats(self):
|
||||||
if self.type == self.TYPE_FS:
|
if self.type == self.TYPE_FS:
|
||||||
return ["auto", "ext2", "ext3", "ext4", "ufs", "iso9660", "udf",
|
return ["auto", "ext2", "ext3", "ext4", "ufs", "iso9660", "udf",
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
Index: virt-manager-1.1.0/virtinst/osdict.py
|
|
||||||
===================================================================
|
|
||||||
--- virt-manager-1.1.0.orig/virtinst/osdict.py
|
|
||||||
+++ virt-manager-1.1.0/virtinst/osdict.py
|
|
||||||
@@ -528,6 +528,21 @@ _add_type("unix", "UNIX")
|
|
||||||
_add_type("other", "Other")
|
|
||||||
_add_var("generic", "Generic", supported=True, parent="other")
|
|
||||||
|
|
||||||
+_add_var("opensuse11", "openSUSE 11", urldistro="opensuse", supported=True, virtiodisk=True, virtionet=True, parent="linux")
|
|
||||||
+_add_var("opensuse12", "openSUSE 12", inputtype="tablet", inputbus="usb", parent="opensuse11")
|
|
||||||
+_add_var("opensuse13", "openSUSE 13 (or later)", parent="opensuse12")
|
|
||||||
+_add_var("sles", "Suse Linux Enterprise Server", urldistro="suse", supported=True, parent="linux")
|
|
||||||
+_add_var("sles10", "Suse Linux Enterprise Server 10", supported=True, virtiodisk=True, virtionet=True, parent="sles")
|
|
||||||
+_add_var("sles11", "Suse Linux Enterprise Server 11", supported=True, virtiodisk=True, virtionet=True, inputtype="tablet", inputbus="usb", parent="sles10")
|
|
||||||
+_add_var("sles12", "Suse Linux Enterprise Server 12 (or later)", supported=True, virtiodisk=True, virtionet=True, parent="sles11")
|
|
||||||
+_add_var("sled10", "Suse Linux Enterprise Desktop 10", supported=True, virtiodisk=True, virtionet=True, parent="sles10")
|
|
||||||
+_add_var("sled11", "Suse Linux Enterprise Desktop 11", supported=True, virtiodisk=True, virtionet=True, inputtype="tablet", inputbus="usb", parent="sles11")
|
|
||||||
+_add_var("sled12", "Suse Linux Enterprise Desktop 12 (or later)", supported=True, virtiodisk=True, virtionet=True, parent="sles12")
|
|
||||||
+_add_var("oes2l", "Novell Open Enterprise Server 2", supported=True, virtiodisk=True, virtionet=True, parent="sles10")
|
|
||||||
+_add_var("oes11", "Novell Open Enterprise Server 11 (or later)", supported=True, virtiodisk=True, virtionet=True, parent="sles11")
|
|
||||||
+_add_var("rear", "Relax and Recover", supported=True, virtiodisk=True, virtionet=True, parent="sles11")
|
|
||||||
+_add_var("netware6", "Novell Netware 6 (or later)", supported=True, parent="other")
|
|
||||||
+
|
|
||||||
|
|
||||||
_os_data_loaded = False
|
|
||||||
_os_loader = None
|
|
@ -1,30 +0,0 @@
|
|||||||
Index: virt-manager-1.0.1/virtinst/devicedisk.py
|
|
||||||
===================================================================
|
|
||||||
--- virt-manager-1.0.1.orig/virtinst/devicedisk.py
|
|
||||||
+++ virt-manager-1.0.1/virtinst/devicedisk.py
|
|
||||||
@@ -156,10 +156,11 @@ class VirtualDisk(VirtualDevice):
|
|
||||||
|
|
||||||
DRIVER_TAP_RAW = "aio"
|
|
||||||
DRIVER_TAP_QCOW = "qcow"
|
|
||||||
+ DRIVER_TAP_QED = "qed"
|
|
||||||
DRIVER_TAP_VMDK = "vmdk"
|
|
||||||
DRIVER_TAP_VDISK = "vdisk"
|
|
||||||
driver_types = [DRIVER_TAP_RAW, DRIVER_TAP_QCOW,
|
|
||||||
- DRIVER_TAP_VMDK, DRIVER_TAP_VDISK]
|
|
||||||
+ DRIVER_TAP_QED, DRIVER_TAP_VMDK, DRIVER_TAP_VDISK]
|
|
||||||
|
|
||||||
CACHE_MODE_NONE = "none"
|
|
||||||
CACHE_MODE_WRITETHROUGH = "writethrough"
|
|
||||||
Index: virt-manager-1.0.1/virtinst/support.py
|
|
||||||
===================================================================
|
|
||||||
--- virt-manager-1.0.1.orig/virtinst/support.py
|
|
||||||
+++ virt-manager-1.0.1/virtinst/support.py
|
|
||||||
@@ -258,7 +258,7 @@ SUPPORT_CONN_DISK_SD = _make(version="1.
|
|
||||||
# default to qcow2. It might be fine for xen or qemu older than the versions
|
|
||||||
# here, but until someone tests things I'm going to be a bit conservative.
|
|
||||||
SUPPORT_CONN_DEFAULT_QCOW2 = _make(
|
|
||||||
- version="0.8.0", hv_version={"qemu": "1.2.0", "test": 0})
|
|
||||||
+ version="0.8.0", hv_version={"qemu": "1.2.0", "all": 0})
|
|
||||||
SUPPORT_CONN_DEFAULT_USB2 = _make(
|
|
||||||
version="0.9.7", hv_version={"qemu": "1.0.0", "test": 0})
|
|
||||||
SUPPORT_CONN_CAN_ACPI = _make(hv_version={"xen": "3.1.0", "all": 0})
|
|
@ -1,13 +1,14 @@
|
|||||||
|
Reference: fate#315125:
|
||||||
Set NOCOW flag to newly created volume by default, to solve performance
|
Set NOCOW flag to newly created volume by default, to solve performance
|
||||||
issue on btrfs.
|
issue on btrfs.
|
||||||
|
|
||||||
Signed-off-by: Chunyan Liu <cyliu@suse.com>
|
Signed-off-by: Chunyan Liu <cyliu@suse.com>
|
||||||
|
|
||||||
Index: virt-manager-1.1.0/virtinst/storage.py
|
Index: virt-manager-1.2.0/virtinst/storage.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtinst/storage.py
|
--- virt-manager-1.2.0.orig/virtinst/storage.py
|
||||||
+++ virt-manager-1.1.0/virtinst/storage.py
|
+++ virt-manager-1.2.0/virtinst/storage.py
|
||||||
@@ -658,6 +658,11 @@ class StorageVolume(_StorageObject):
|
@@ -705,6 +705,11 @@ class StorageVolume(_StorageObject):
|
||||||
lazy_refcounts = XMLProperty("./target/features/lazy_refcounts",
|
lazy_refcounts = XMLProperty("./target/features/lazy_refcounts",
|
||||||
is_bool=True, default_cb=_lazy_refcounts_default_cb)
|
is_bool=True, default_cb=_lazy_refcounts_default_cb)
|
||||||
|
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
Reference: bnc#813082
|
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.1.0/virtinst/devicedisk.py
|
Index: virt-manager-1.1.0/virtinst/devicedisk.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtinst/devicedisk.py
|
--- virt-manager-1.1.0.orig/virtinst/devicedisk.py
|
||||||
+++ virt-manager-1.1.0/virtinst/devicedisk.py
|
+++ virt-manager-1.1.0/virtinst/devicedisk.py
|
||||||
@@ -562,6 +562,12 @@ class VirtualDisk(VirtualDevice):
|
@@ -572,6 +572,12 @@ class VirtualDisk(VirtualDevice):
|
||||||
return None
|
return None
|
||||||
if self.conn.is_qemu():
|
if self.conn.is_qemu():
|
||||||
return self.DRIVER_QEMU
|
return self.DRIVER_QEMU
|
||||||
@ -17,7 +19,7 @@ Index: virt-manager-1.1.0/virtinst/devicedisk.py
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
def _get_default_driver_type(self):
|
def _get_default_driver_type(self):
|
||||||
@@ -575,6 +581,8 @@ class VirtualDisk(VirtualDevice):
|
@@ -585,6 +591,8 @@ class VirtualDisk(VirtualDevice):
|
||||||
http://lists.gnu.org/archive/html/qemu-devel/2008-04/msg00675.html
|
http://lists.gnu.org/archive/html/qemu-devel/2008-04/msg00675.html
|
||||||
"""
|
"""
|
||||||
if self.driver_name != self.DRIVER_QEMU:
|
if self.driver_name != self.DRIVER_QEMU:
|
||||||
@ -25,4 +27,4 @@ Index: virt-manager-1.1.0/virtinst/devicedisk.py
|
|||||||
+ return self.type
|
+ return self.type
|
||||||
return None
|
return None
|
||||||
|
|
||||||
if self._storage_creator:
|
drvtype = self._storage_backend.get_driver_type()
|
||||||
|
@ -1,10 +1,16 @@
|
|||||||
bnc#872789
|
Reference: bnc#872789
|
||||||
|
This is an indexing problem created by virt-manager. It knows not
|
||||||
|
to add two IDE disks of the same name (eg, 'hda' twice) or two Xen
|
||||||
|
disks of the same name (eg, 'xvda' twice) but with the different bus
|
||||||
|
types (ide vs xen) it added xvda with hda. These disks were then
|
||||||
|
passed to qemu where it error'ed out with the disks having the same
|
||||||
|
index (in this case both are 0).
|
||||||
|
|
||||||
Index: virt-manager-1.1.0/virtinst/devicedisk.py
|
Index: virt-manager-1.1.0/virtinst/devicedisk.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtinst/devicedisk.py
|
--- virt-manager-1.1.0.orig/virtinst/devicedisk.py
|
||||||
+++ virt-manager-1.1.0/virtinst/devicedisk.py
|
+++ virt-manager-1.1.0/virtinst/devicedisk.py
|
||||||
@@ -936,6 +936,17 @@ class VirtualDisk(VirtualDevice):
|
@@ -1012,6 +1012,17 @@ class VirtualDisk(VirtualDevice):
|
||||||
@rtype C{str}
|
@rtype C{str}
|
||||||
"""
|
"""
|
||||||
prefix, maxnode = self.get_target_prefix(skip_targets)
|
prefix, maxnode = self.get_target_prefix(skip_targets)
|
||||||
@ -22,7 +28,7 @@ Index: virt-manager-1.1.0/virtinst/devicedisk.py
|
|||||||
skip_targets = [t for t in skip_targets if t and t.startswith(prefix)]
|
skip_targets = [t for t in skip_targets if t and t.startswith(prefix)]
|
||||||
skip_targets.sort()
|
skip_targets.sort()
|
||||||
|
|
||||||
@@ -949,7 +960,12 @@ class VirtualDisk(VirtualDevice):
|
@@ -1025,7 +1036,12 @@ class VirtualDisk(VirtualDevice):
|
||||||
ran = range(pref_ctrl * 7, (pref_ctrl + 1) * 7)
|
ran = range(pref_ctrl * 7, (pref_ctrl + 1) * 7)
|
||||||
|
|
||||||
for i in ran:
|
for i in ran:
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
Enhancement for when no hypervisor can be found locally it opens
|
||||||
|
the new connection dialog.
|
||||||
Index: virt-manager-1.1.0/virtManager/engine.py
|
Index: virt-manager-1.1.0/virtManager/engine.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/engine.py
|
--- virt-manager-1.1.0.orig/virtManager/engine.py
|
||||||
|
@ -1,43 +1,45 @@
|
|||||||
Index: virt-manager-1.1.0/virtManager/create.py
|
Reference: bnc#869024
|
||||||
|
Add s390x support
|
||||||
|
Index: virt-manager-1.2.0/virtManager/create.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
--- virt-manager-1.2.0.orig/virtManager/create.py
|
||||||
+++ virt-manager-1.1.0/virtManager/create.py
|
+++ virt-manager-1.2.0/virtManager/create.py
|
||||||
@@ -428,7 +428,7 @@ class vmmCreate(vmmGObjectUI):
|
@@ -417,7 +417,7 @@ class vmmCreate(vmmGObjectUI):
|
||||||
can_remote_url = self.conn.get_backend().support_remote_url_install()
|
can_remote_url = self.conn.get_backend().support_remote_url_install()
|
||||||
|
|
||||||
installable_arch = (self.capsguest.arch in
|
installable_arch = (self.capsinfo.arch in
|
||||||
- ["i686", "x86_64", "ppc64", "ia64"])
|
- ["i686", "x86_64", "ppc64", "ppc64le", "ia64"])
|
||||||
+ ["i686", "x86_64", "ppc64", "ia64", "s390x"])
|
+ ["i686", "x86_64", "ppc64", "ppc64le", "ia64", "s390x"])
|
||||||
|
|
||||||
# Install Options
|
if self.capsinfo.arch == "aarch64":
|
||||||
method_tree = self.widget("method-tree")
|
try:
|
||||||
@@ -690,7 +690,7 @@ class vmmCreate(vmmGObjectUI):
|
@@ -684,7 +684,7 @@ class vmmCreate(vmmGObjectUI):
|
||||||
archs.remove("i686")
|
archs.remove("i686")
|
||||||
archs.sort()
|
archs.sort()
|
||||||
|
|
||||||
- prios = ["x86_64", "i686", "armv7l", "ppc64"]
|
- prios = ["x86_64", "i686", "aarch64", "armv7l", "ppc64", "ppc64le"]
|
||||||
+ prios = ["x86_64", "i686", "armv7l", "ppc64", "s390x"]
|
+ prios = ["x86_64", "i686", "aarch64", "armv7l", "ppc64", "ppc64le", "s390x"]
|
||||||
if self.conn.caps.host.cpu.arch not in prios:
|
if self.conn.caps.host.cpu.arch not in prios:
|
||||||
prios = []
|
prios = []
|
||||||
else:
|
else:
|
||||||
Index: virt-manager-1.1.0/virtinst/osxml.py
|
Index: virt-manager-1.2.0/virtinst/osxml.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtinst/osxml.py
|
--- virt-manager-1.2.0.orig/virtinst/osxml.py
|
||||||
+++ virt-manager-1.1.0/virtinst/osxml.py
|
+++ virt-manager-1.2.0/virtinst/osxml.py
|
||||||
@@ -58,6 +58,8 @@ class OSXML(XMLBuilder):
|
@@ -70,6 +70,8 @@ class OSXML(XMLBuilder):
|
||||||
return self.arch == "ppc64"
|
return self.arch == "ppc64" or self.arch == "ppc64le"
|
||||||
def is_pseries(self):
|
def is_pseries(self):
|
||||||
return self.is_ppc64 and self.machine == "pseries"
|
return self.is_ppc64() and self.machine == "pseries"
|
||||||
+ def is_s390x(self):
|
+ def is_s390x(self):
|
||||||
+ return self.arch == "s390x"
|
+ return self.arch == "s390x"
|
||||||
|
|
||||||
_XML_ROOT_NAME = "os"
|
_XML_ROOT_NAME = "os"
|
||||||
_XML_PROP_ORDER = ["arch", "os_type", "loader",
|
_XML_PROP_ORDER = ["arch", "os_type", "loader", "loader_ro", "loader_type",
|
||||||
Index: virt-manager-1.1.0/virtinst/guest.py
|
Index: virt-manager-1.2.0/virtinst/guest.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtinst/guest.py
|
--- virt-manager-1.2.0.orig/virtinst/guest.py
|
||||||
+++ virt-manager-1.1.0/virtinst/guest.py
|
+++ virt-manager-1.2.0/virtinst/guest.py
|
||||||
@@ -112,7 +112,10 @@ class Guest(XMLBuilder):
|
@@ -119,7 +119,10 @@ class Guest(XMLBuilder):
|
||||||
self.skip_default_channel = False
|
self.skip_default_channel = False
|
||||||
self.skip_default_sound = False
|
self.skip_default_sound = False
|
||||||
self.skip_default_usbredir = False
|
self.skip_default_usbredir = False
|
||||||
@ -48,8 +50,8 @@ Index: virt-manager-1.1.0/virtinst/guest.py
|
|||||||
+ self.skip_default_graphics = False
|
+ self.skip_default_graphics = False
|
||||||
self.x86_cpu_default = self.cpu.SPECIAL_MODE_HOST_MODEL_ONLY
|
self.x86_cpu_default = self.cpu.SPECIAL_MODE_HOST_MODEL_ONLY
|
||||||
|
|
||||||
self._os_variant = None
|
self.__os_object = None
|
||||||
@@ -569,11 +572,13 @@ class Guest(XMLBuilder):
|
@@ -611,11 +614,13 @@ class Guest(XMLBuilder):
|
||||||
self.conn.check_support(
|
self.conn.check_support(
|
||||||
self.conn.SUPPORT_CONN_VIRTIO_CONSOLE)):
|
self.conn.SUPPORT_CONN_VIRTIO_CONSOLE)):
|
||||||
dev.target_type = "virtio"
|
dev.target_type = "virtio"
|
||||||
@ -64,21 +66,21 @@ Index: virt-manager-1.1.0/virtinst/guest.py
|
|||||||
return
|
return
|
||||||
if self.get_devices("video"):
|
if self.get_devices("video"):
|
||||||
return
|
return
|
||||||
@@ -618,7 +623,7 @@ class Guest(XMLBuilder):
|
@@ -660,7 +665,7 @@ class Guest(XMLBuilder):
|
||||||
return
|
return
|
||||||
if self.os.is_container():
|
if self.os.is_container():
|
||||||
return
|
return
|
||||||
- if self.os.arch not in ["x86_64", "i686", "ppc64", "ia64"]:
|
- if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64"]:
|
||||||
+ if self.os.arch not in ["x86_64", "i686", "ppc64", "ia64", "s390x"]:
|
+ if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64", "s390x"]:
|
||||||
return
|
return
|
||||||
self.add_device(virtinst.VirtualGraphics(self.conn))
|
self.add_device(VirtualGraphics(self.conn))
|
||||||
|
|
||||||
@@ -844,7 +849,7 @@ class Guest(XMLBuilder):
|
@@ -948,7 +953,7 @@ class Guest(XMLBuilder):
|
||||||
if not self._lookup_osdict_key(key, False):
|
if self._hv_only_supports_virtio():
|
||||||
return False
|
return True
|
||||||
|
|
||||||
- if self.os.is_x86():
|
- if self.os.is_x86():
|
||||||
+ if self.os.is_x86() or self.os.is_s390x():
|
+ if self.os.is_x86() or self.os.is_s390x():
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if (self.os.is_arm_vexpress() and
|
if (self.os.is_arm_vexpress() and
|
||||||
self.os.dtb and
|
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
|
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.1.0/virtManager/create.py
|
Index: virt-manager-1.1.0/virtManager/create.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
--- virt-manager-1.1.0.orig/virtManager/create.py
|
||||||
+++ virt-manager-1.1.0/virtManager/create.py
|
+++ virt-manager-1.1.0/virtManager/create.py
|
||||||
@@ -694,11 +694,6 @@ class vmmCreate(vmmGObjectUI):
|
@@ -689,11 +689,6 @@ class vmmCreate(vmmGObjectUI):
|
||||||
for guest in self.conn.caps.guests:
|
for guest in self.conn.caps.guests:
|
||||||
if guest.os_type == self.capsguest.os_type:
|
if guest.os_type == self.capsinfo.os_type:
|
||||||
archs.append(guest.arch)
|
archs.append(guest.arch)
|
||||||
-
|
-
|
||||||
- # Combine x86/i686 to avoid confusion
|
- # Combine x86/i686 to avoid confusion
|
||||||
@ -13,4 +16,4 @@ Index: virt-manager-1.1.0/virtManager/create.py
|
|||||||
- archs.remove("i686")
|
- archs.remove("i686")
|
||||||
archs.sort()
|
archs.sort()
|
||||||
|
|
||||||
prios = ["x86_64", "i686", "armv7l", "ppc64", "s390x"]
|
prios = ["x86_64", "i686", "aarch64", "armv7l", "ppc64", "ppc64le", "s390x"]
|
||||||
|
@ -1,9 +1,16 @@
|
|||||||
bnc#875111
|
Reference: bnc#875111
|
||||||
|
Steps to get a KVM VM in the crashed state:
|
||||||
|
1) Install a sles12 KVM VM
|
||||||
|
2) Manually edit the XML and add/modify <on_crash>preserve</on_crash>
|
||||||
|
3) In virt-manager add the panic device (Details->Add Hardware)
|
||||||
|
4) Edit the VM's /etc/default/grub file and remove the crashkernel information
|
||||||
|
and then run grub2-mkconfig /boot/grub2/grub.cfg.
|
||||||
|
5) Start the VM and within the VM's terminal type "echo 'c' > /proc/sysrq-trigger"
|
||||||
Index: virt-manager-1.1.0/virtManager/manager.py
|
Index: virt-manager-1.1.0/virtManager/manager.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/manager.py
|
--- virt-manager-1.1.0.orig/virtManager/manager.py
|
||||||
+++ virt-manager-1.1.0/virtManager/manager.py
|
+++ virt-manager-1.1.0/virtManager/manager.py
|
||||||
@@ -921,7 +921,7 @@ class vmmManager(vmmGObjectUI):
|
@@ -864,7 +864,7 @@ class vmmManager(vmmGObjectUI):
|
||||||
show_pause = bool(vm and vm.is_unpauseable())
|
show_pause = bool(vm and vm.is_unpauseable())
|
||||||
else:
|
else:
|
||||||
show_pause = bool(vm and vm.is_pauseable())
|
show_pause = bool(vm and vm.is_pauseable())
|
||||||
@ -11,7 +18,7 @@ Index: virt-manager-1.1.0/virtManager/manager.py
|
|||||||
+ show_shutdown = bool(vm and vm.is_destroyable())
|
+ show_shutdown = bool(vm and vm.is_destroyable())
|
||||||
|
|
||||||
if vm and vm.managedsave_supported:
|
if vm and vm.managedsave_supported:
|
||||||
self.change_run_text(vm.hasSavedImage())
|
self.change_run_text(vm.has_managed_save())
|
||||||
Index: virt-manager-1.1.0/virtManager/vmmenu.py
|
Index: virt-manager-1.1.0/virtManager/vmmenu.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/vmmenu.py
|
--- virt-manager-1.1.0.orig/virtManager/vmmenu.py
|
||||||
@ -38,9 +45,9 @@ Index: virt-manager-1.1.0/virtManager/vmmenu.py
|
|||||||
child.set_sensitive(statemap[name])
|
child.set_sensitive(statemap[name])
|
||||||
+ child.set_visible(statemap[name])
|
+ child.set_visible(statemap[name])
|
||||||
|
|
||||||
|
if name == "reset":
|
||||||
class VMActionMenu(_VMMenu):
|
child.set_tooltip_text(None)
|
||||||
@@ -122,7 +125,8 @@ class VMActionMenu(_VMMenu):
|
@@ -130,7 +133,8 @@ class VMActionMenu(_VMMenu):
|
||||||
self._add_action(_("_Pause"), "suspend", Gtk.STOCK_MEDIA_PAUSE)
|
self._add_action(_("_Pause"), "suspend", Gtk.STOCK_MEDIA_PAUSE)
|
||||||
self._add_action(_("R_esume"), "resume", Gtk.STOCK_MEDIA_PAUSE)
|
self._add_action(_("R_esume"), "resume", Gtk.STOCK_MEDIA_PAUSE)
|
||||||
s = self._add_action(_("_Shut Down"), "shutdown", addcb=False)
|
s = self._add_action(_("_Shut Down"), "shutdown", addcb=False)
|
||||||
@ -50,7 +57,7 @@ Index: virt-manager-1.1.0/virtManager/vmmenu.py
|
|||||||
|
|
||||||
self.add(Gtk.SeparatorMenuItem())
|
self.add(Gtk.SeparatorMenuItem())
|
||||||
self._add_action(_("Clone..."), "clone", None)
|
self._add_action(_("Clone..."), "clone", None)
|
||||||
@@ -138,7 +142,7 @@ class VMActionMenu(_VMMenu):
|
@@ -146,7 +150,7 @@ class VMActionMenu(_VMMenu):
|
||||||
def update_widget_states(self, vm):
|
def update_widget_states(self, vm):
|
||||||
statemap = {
|
statemap = {
|
||||||
"run": bool(vm and vm.is_runable()),
|
"run": bool(vm and vm.is_runable()),
|
||||||
@ -59,8 +66,8 @@ Index: virt-manager-1.1.0/virtManager/vmmenu.py
|
|||||||
"suspend": bool(vm and vm.is_stoppable()),
|
"suspend": bool(vm and vm.is_stoppable()),
|
||||||
"resume": bool(vm and vm.is_paused()),
|
"resume": bool(vm and vm.is_paused()),
|
||||||
"migrate": bool(vm and vm.is_stoppable()),
|
"migrate": bool(vm and vm.is_stoppable()),
|
||||||
@@ -155,6 +159,8 @@ class VMActionMenu(_VMMenu):
|
@@ -163,6 +167,8 @@ class VMActionMenu(_VMMenu):
|
||||||
child.update_widget_states(vm)
|
child.get_submenu().update_widget_states(vm)
|
||||||
if name in statemap:
|
if name in statemap:
|
||||||
child.set_sensitive(statemap[name])
|
child.set_sensitive(statemap[name])
|
||||||
+ if name == "shutdown" and self._shutdown:
|
+ if name == "shutdown" and self._shutdown:
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
|
Enhancement to switch the label from 'Kickstart' to 'Autoyast' when
|
||||||
|
a suse distro is selected.
|
||||||
Index: virt-manager-1.1.0/virtManager/create.py
|
Index: virt-manager-1.1.0/virtManager/create.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
--- virt-manager-1.1.0.orig/virtManager/create.py
|
||||||
+++ virt-manager-1.1.0/virtManager/create.py
|
+++ virt-manager-1.1.0/virtManager/create.py
|
||||||
@@ -1265,11 +1265,34 @@ class vmmCreate(vmmGObjectUI):
|
@@ -1242,11 +1242,34 @@ class vmmCreate(vmmGObjectUI):
|
||||||
if self.widget("install-os-version").get_visible():
|
self.populate_os_type_model()
|
||||||
self.widget("install-os-version-entry").grab_focus()
|
return
|
||||||
|
|
||||||
+ def _update_kickstart_label(self):
|
+ def _update_kickstart_label(self):
|
||||||
+ # Update label based on os version selected to either kickstart or autoyast
|
+ # Update label based on os version selected to either kickstart or autoyast
|
||||||
@ -34,10 +36,10 @@ Index: virt-manager-1.1.0/virtManager/create.py
|
|||||||
|
|
||||||
+ self._update_kickstart_label()
|
+ self._update_kickstart_label()
|
||||||
+
|
+
|
||||||
# Get previous
|
# 'show all OS' was clicked
|
||||||
|
# Get previous type to reselect it later
|
||||||
type_row = self._selected_os_row()
|
type_row = self._selected_os_row()
|
||||||
if not type_row:
|
@@ -1611,7 +1634,10 @@ class vmmCreate(vmmGObjectUI):
|
||||||
@@ -1634,7 +1657,10 @@ class vmmCreate(vmmGObjectUI):
|
|
||||||
if extra:
|
if extra:
|
||||||
extraargs += extra
|
extraargs += extra
|
||||||
if ks:
|
if ks:
|
||||||
@ -49,7 +51,7 @@ Index: virt-manager-1.1.0/virtManager/create.py
|
|||||||
|
|
||||||
if extraargs:
|
if extraargs:
|
||||||
self.guest.installer.extraargs = extraargs
|
self.guest.installer.extraargs = extraargs
|
||||||
@@ -2042,6 +2068,7 @@ class vmmCreate(vmmGObjectUI):
|
@@ -2053,6 +2079,7 @@ class vmmCreate(vmmGObjectUI):
|
||||||
dl = self.set_os_val(self.widget("install-os-type"), distro_type)
|
dl = self.set_os_val(self.widget("install-os-type"), distro_type)
|
||||||
vl = self.set_os_val(self.widget("install-os-version"), distro_var)
|
vl = self.set_os_val(self.widget("install-os-version"), distro_var)
|
||||||
self.set_distro_labels(dl, vl)
|
self.set_distro_labels(dl, vl)
|
||||||
@ -61,7 +63,7 @@ Index: virt-manager-1.1.0/ui/create.ui
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/ui/create.ui
|
--- virt-manager-1.1.0.orig/ui/create.ui
|
||||||
+++ virt-manager-1.1.0/ui/create.ui
|
+++ virt-manager-1.1.0/ui/create.ui
|
||||||
@@ -841,7 +841,7 @@ bar</property>
|
@@ -843,7 +843,7 @@ bar</property>
|
||||||
<property name="column_spacing">6</property>
|
<property name="column_spacing">6</property>
|
||||||
<property name="row_spacing">4</property>
|
<property name="row_spacing">4</property>
|
||||||
<child>
|
<child>
|
||||||
@ -69,4 +71,4 @@ Index: virt-manager-1.1.0/ui/create.ui
|
|||||||
+ <object class="GtkLabel" id="kickstart-url-label">
|
+ <object class="GtkLabel" id="kickstart-url-label">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="label" translatable="yes">Kickstart URL:</property>
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
bnc#885273
|
|
||||||
|
|
||||||
Index: virt-manager-1.1.0/virtManager/createnet.py
|
|
||||||
===================================================================
|
|
||||||
--- virt-manager-1.1.0.orig/virtManager/createnet.py
|
|
||||||
+++ virt-manager-1.1.0/virtManager/createnet.py
|
|
||||||
@@ -257,6 +257,8 @@ class vmmCreateNetwork(vmmGObjectUI):
|
|
||||||
try:
|
|
||||||
net = self._build_xmlstub()
|
|
||||||
net.name = self.widget("net-name").get_text()
|
|
||||||
+ if net.name == '':
|
|
||||||
+ return self.err.val_err(_("Invalid network name"), "")
|
|
||||||
except Exception, e:
|
|
||||||
return self.err.val_err(_("Invalid network name"), str(e))
|
|
||||||
|
|
@ -1,6 +1,10 @@
|
|||||||
--- virt-manager-1.1.0/virt-manager.orig 2014-12-02 12:08:47.000000000 -0700
|
References: bnc#907958
|
||||||
+++ virt-manager-1.1.0/virt-manager 2014-12-02 12:09:20.000000000 -0700
|
Sanity check for those who forget '-X' on ssh and try to start virt-manager
|
||||||
@@ -175,8 +175,11 @@ def main():
|
Index: virt-manager-1.1.0/virt-manager
|
||||||
|
===================================================================
|
||||||
|
--- virt-manager-1.1.0.orig/virt-manager
|
||||||
|
+++ virt-manager-1.1.0/virt-manager
|
||||||
|
@@ -181,8 +181,11 @@ def main():
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk
|
||||||
leftovers = sys.argv[1:]
|
leftovers = sys.argv[1:]
|
||||||
|
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
|
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.1.0/virtManager/create.py
|
Index: virt-manager-1.1.0/virtManager/create.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
--- virt-manager-1.1.0.orig/virtManager/create.py
|
||||||
+++ virt-manager-1.1.0/virtManager/create.py
|
+++ virt-manager-1.1.0/virtManager/create.py
|
||||||
@@ -22,6 +22,8 @@ import traceback
|
@@ -21,6 +21,8 @@
|
||||||
import logging
|
import logging
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
@ -11,7 +13,16 @@ Index: virt-manager-1.1.0/virtManager/create.py
|
|||||||
|
|
||||||
from gi.repository import GObject
|
from gi.repository import GObject
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk
|
||||||
@@ -1175,6 +1177,55 @@ class vmmCreate(vmmGObjectUI):
|
@@ -836,7 +838,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"
|
||||||
|
@@ -1158,6 +1160,53 @@ class vmmCreate(vmmGObjectUI):
|
||||||
return
|
return
|
||||||
self.start_detection(forward=forward)
|
self.start_detection(forward=forward)
|
||||||
|
|
||||||
@ -22,10 +33,12 @@ Index: virt-manager-1.1.0/virtManager/create.py
|
|||||||
+ lines = f.readlines()
|
+ lines = f.readlines()
|
||||||
+ f.close()
|
+ f.close()
|
||||||
+ for line in lines:
|
+ for line in lines:
|
||||||
+ if "openSUSE 13" in line:
|
+ if "openSUSE " in line:
|
||||||
+ return 'linux', 'opensuse13'
|
+ parts = line.split(' ')
|
||||||
+ if "openSUSE 12" in line:
|
+ if len(parts) > 2 and len(parts[3]) <= 4:
|
||||||
+ return 'linux', 'opensuse12'
|
+ os_ver = "opensuse" + parts[3]
|
||||||
|
+ return 'linux', os_ver
|
||||||
|
+ return 'linux', 'opensuse13.2'
|
||||||
+ if "SUSE Linux Enterprise Server 12" in line:
|
+ if "SUSE Linux Enterprise Server 12" in line:
|
||||||
+ return 'linux', 'sles12'
|
+ return 'linux', 'sles12'
|
||||||
+ if "SUSE Linux Enterprise Desktop 12" in line:
|
+ if "SUSE Linux Enterprise Desktop 12" in line:
|
||||||
@ -34,10 +47,6 @@ Index: virt-manager-1.1.0/virtManager/create.py
|
|||||||
+ return 'linux', 'sles11'
|
+ return 'linux', 'sles11'
|
||||||
+ if "SUSE Linux Enterprise Desktop 11" in line:
|
+ if "SUSE Linux Enterprise Desktop 11" in line:
|
||||||
+ return 'linux', 'sled11'
|
+ return 'linux', 'sled11'
|
||||||
+ if "Fedora" in line:
|
|
||||||
+ return 'linux', 'fedora17'
|
|
||||||
+ if "Red Hat Enterprise Linux Server" in line:
|
|
||||||
+ return 'linux', 'rhel6'
|
|
||||||
+ return None, None
|
+ return None, None
|
||||||
+
|
+
|
||||||
+ def detect_host_os(self):
|
+ def detect_host_os(self):
|
||||||
@ -67,7 +76,7 @@ Index: virt-manager-1.1.0/virtManager/create.py
|
|||||||
def toggle_detect_os(self, src):
|
def toggle_detect_os(self, src):
|
||||||
dodetect = src.get_active()
|
dodetect = src.get_active()
|
||||||
|
|
||||||
@@ -1187,6 +1238,8 @@ class vmmCreate(vmmGObjectUI):
|
@@ -1170,6 +1219,8 @@ class vmmCreate(vmmGObjectUI):
|
||||||
self.widget("install-os-version-entry").set_text("")
|
self.widget("install-os-version-entry").set_text("")
|
||||||
self.mediaDetected = False
|
self.mediaDetected = False
|
||||||
self.detect_media_os()
|
self.detect_media_os()
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
From 02c2d2fcb3c445082a91807ab277a7c85d0a38db Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cedric.bosdonnat@free.fr>
|
|
||||||
Date: Tue, 20 May 2014 17:14:27 +0200
|
|
||||||
Subject: [PATCH] Default connection URI if libvirt-daemon-driver-lxc is
|
|
||||||
installed
|
|
||||||
|
|
||||||
The default URI is set to lxc:/// if libvirt's lxc driver is installed
|
|
||||||
locally, but only if there is no kvm/xen URI to default to.
|
|
||||||
---
|
|
||||||
virtManager/connect.py | 4 ++++
|
|
||||||
2 files changed, 11 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
Index: virt-manager-1.1.0/virtManager/connect.py
|
|
||||||
===================================================================
|
|
||||||
--- virt-manager-1.1.0.orig/virtManager/connect.py
|
|
||||||
+++ virt-manager-1.1.0/virtManager/connect.py
|
|
||||||
@@ -115,6 +115,10 @@ class vmmConnect(vmmGObjectUI):
|
|
||||||
return "qemu:///system"
|
|
||||||
else:
|
|
||||||
return "qemu:///session"
|
|
||||||
+
|
|
||||||
+ if (os.path.exists("/usr/lib/libvirt/libvirt_lxc") or
|
|
||||||
+ os.path.exists("/usr/lib64/libvirt/libvirt_lxc")):
|
|
||||||
+ return "lxc:///"
|
|
||||||
return None
|
|
||||||
|
|
||||||
def cancel(self, ignore1=None, ignore2=None):
|
|
@ -1,8 +1,9 @@
|
|||||||
|
Enhancement to default to PV instead of HVM on Xen host.
|
||||||
Index: virt-manager-1.1.0/virtManager/create.py
|
Index: virt-manager-1.1.0/virtManager/create.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
--- virt-manager-1.1.0.orig/virtManager/create.py
|
||||||
+++ virt-manager-1.1.0/virtManager/create.py
|
+++ virt-manager-1.1.0/virtManager/create.py
|
||||||
@@ -884,7 +884,12 @@ class vmmCreate(vmmGObjectUI):
|
@@ -860,7 +860,12 @@ class vmmCreate(vmmGObjectUI):
|
||||||
if gtype is None:
|
if gtype is None:
|
||||||
# If none specified, prefer HVM so install options aren't limited
|
# If none specified, prefer HVM so install options aren't limited
|
||||||
# with a default PV choice.
|
# with a default PV choice.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: virt-manager-0.10.0/data/virt-manager.desktop.in
|
Index: virt-manager-1.1.0/data/virt-manager.desktop.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-0.10.0.orig/data/virt-manager.desktop.in
|
--- virt-manager-1.1.0.orig/data/virt-manager.desktop.in
|
||||||
+++ virt-manager-0.10.0/data/virt-manager.desktop.in
|
+++ virt-manager-1.1.0/data/virt-manager.desktop.in
|
||||||
@@ -1,8 +1,19 @@
|
@@ -1,8 +1,19 @@
|
||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
_Name=Virtual Machine Manager
|
_Name=Virtual Machine Manager
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
bnc#885094
|
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.1.0/virtManager/delete.py
|
Index: virt-manager-1.1.0/virtManager/delete.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/delete.py
|
--- virt-manager-1.1.0.orig/virtManager/delete.py
|
||||||
+++ virt-manager-1.1.0/virtManager/delete.py
|
+++ virt-manager-1.1.0/virtManager/delete.py
|
||||||
@@ -240,7 +240,7 @@ def populate_storage_list(storage_list,
|
@@ -250,7 +250,7 @@ def populate_storage_list(storage_list,
|
||||||
diskdata.append(("dtb", vm.get_xmlobj().os.dtb, True, False))
|
diskdata.append(("dtb", vm.get_xmlobj().os.dtb, True, False))
|
||||||
|
|
||||||
for target, path, ro, shared in diskdata:
|
for target, path, ro, shared in diskdata:
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
Index: virt-manager-1.1.0/virtManager/addhardware.py
|
Enhancement to add the eepro100 NIC for KVM
|
||||||
|
Index: virt-manager-1.2.0/virtManager/addhardware.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/addhardware.py
|
--- virt-manager-1.2.0.orig/virtManager/addhardware.py
|
||||||
+++ virt-manager-1.1.0/virtManager/addhardware.py
|
+++ virt-manager-1.2.0/virtManager/addhardware.py
|
||||||
@@ -574,6 +574,7 @@ class vmmAddHardware(vmmGObjectUI):
|
@@ -582,6 +582,7 @@ class vmmAddHardware(vmmGObjectUI):
|
||||||
if vm.is_hvm():
|
if vm.is_hvm():
|
||||||
mod_list = ["rtl8139", "ne2k_pci", "pcnet", "e1000"]
|
mod_list = []
|
||||||
if vm.get_hv_type() in ["kvm", "qemu", "test"]:
|
if vm.get_hv_type() in ["kvm", "qemu", "test"]:
|
||||||
+ mod_list.append("eepro100")
|
+ mod_list.append("eepro100")
|
||||||
mod_list.append("virtio")
|
mod_list.append("virtio")
|
||||||
if (vm.get_hv_type() == "kvm" and
|
mod_list.append("rtl8139")
|
||||||
vm.get_machtype() == "pseries"):
|
mod_list.append("e1000")
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
bnc#892003
|
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.1.0/virtManager/connection.py
|
Index: virt-manager-1.1.0/virtManager/connection.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/connection.py
|
--- virt-manager-1.1.0.orig/virtManager/connection.py
|
||||||
+++ virt-manager-1.1.0/virtManager/connection.py
|
+++ virt-manager-1.1.0/virtManager/connection.py
|
||||||
@@ -1028,7 +1028,7 @@ class vmmConnection(vmmGObject):
|
@@ -903,7 +903,7 @@ class vmmConnection(vmmGObject):
|
||||||
self._add_conn_events()
|
self.caps.get_cpu_values("x86_64")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
- self._backend.setKeepAlive(20, 1)
|
- self._backend.setKeepAlive(20, 1)
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
|
Enhancement adding Send Keys for mostly NetWare and also Windows
|
||||||
Index: virt-manager-1.1.0/virtManager/console.py
|
Index: virt-manager-1.1.0/virtManager/console.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/console.py
|
--- virt-manager-1.1.0.orig/virtManager/console.py
|
||||||
+++ virt-manager-1.1.0/virtManager/console.py
|
+++ virt-manager-1.1.0/virtManager/console.py
|
||||||
@@ -940,6 +940,16 @@ class vmmConsolePages(vmmGObjectUI):
|
@@ -140,6 +140,16 @@ class vmmConsolePages(vmmGObjectUI):
|
||||||
make_item("Ctrl+Alt+_Backspace", ["Control_L", "Alt_L", "BackSpace"])
|
make_item("Ctrl+Alt+_Backspace", ["Control_L", "Alt_L", "BackSpace"])
|
||||||
make_item("Ctrl+Alt+_Delete", ["Control_L", "Alt_L", "Delete"])
|
make_item("Ctrl+Alt+_Delete", ["Control_L", "Alt_L", "Delete"])
|
||||||
menu.add(Gtk.SeparatorMenuItem())
|
menu.add(Gtk.SeparatorMenuItem())
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
|
/usr/bin/kvm doesn't exist on suse distros so check instead for
|
||||||
|
/usr/bin/qemu-system-x86_64
|
||||||
Index: virt-manager-1.1.0/virtManager/connect.py
|
Index: virt-manager-1.1.0/virtManager/connect.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/connect.py
|
--- virt-manager-1.1.0.orig/virtManager/connect.py
|
||||||
+++ virt-manager-1.1.0/virtManager/connect.py
|
+++ virt-manager-1.1.0/virtManager/connect.py
|
||||||
@@ -109,7 +109,7 @@ class vmmConnect(vmmGObjectUI):
|
@@ -114,7 +114,7 @@ class vmmConnect(vmmGObjectUI):
|
||||||
|
|
||||||
if (os.path.exists("/usr/bin/qemu") or
|
if (os.path.exists("/usr/bin/qemu") or
|
||||||
os.path.exists("/usr/bin/qemu-kvm") or
|
os.path.exists("/usr/bin/qemu-kvm") or
|
||||||
- os.path.exists("/usr/bin/kvm") or
|
- os.path.exists("/usr/bin/kvm") or
|
||||||
+ os.path.exists("/usr/bin/qemu-system-x86_64") or
|
+ os.path.exists("/usr/bin/qemu-system-x86_64") or
|
||||||
os.path.exists("/usr/libexec/qemu-kvm")):
|
os.path.exists("/usr/libexec/qemu-kvm") or
|
||||||
if always_system or os.geteuid() == 0:
|
glob.glob("/usr/bin/qemu-system-*")):
|
||||||
return "qemu:///system"
|
return "qemu:///system"
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
Index: virt-manager-1.1.0/virtManager/packageutils.py
|
Use the correct systemd to start libvirt.
|
||||||
|
Index: virt-manager-1.2.0/virtManager/packageutils.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/packageutils.py
|
--- virt-manager-1.2.0.orig/virtManager/packageutils.py
|
||||||
+++ virt-manager-1.1.0/virtManager/packageutils.py
|
+++ virt-manager-1.2.0/virtManager/packageutils.py
|
||||||
@@ -149,8 +149,8 @@ def start_libvirtd():
|
@@ -154,8 +154,8 @@ def start_libvirtd():
|
||||||
logging.debug("libvirtd not running, asking system-config-services "
|
logging.debug("libvirtd not running, asking system-config-services "
|
||||||
"to start it")
|
"to start it")
|
||||||
scs = Gio.DBusProxy.new_sync(bus, 0, None,
|
scs = Gio.DBusProxy.new_sync(bus, 0, None,
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
Reference: bnc#867749
|
||||||
|
When booted into the native kernel don't ask libvirt to make a
|
||||||
|
local Xen connection and likewise when booted into the Xen kernel
|
||||||
|
don't ask libvirt to connect to the local qemu.
|
||||||
Index: virt-manager-1.1.0/virtManager/engine.py
|
Index: virt-manager-1.1.0/virtManager/engine.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/engine.py
|
--- virt-manager-1.1.0.orig/virtManager/engine.py
|
||||||
@ -6,7 +10,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py
|
|||||||
if not uris:
|
if not uris:
|
||||||
return
|
return
|
||||||
logging.debug("About to connect to uris %s", uris)
|
logging.debug("About to connect to uris %s", uris)
|
||||||
+ tryuri = vmmConnect.default_uri(always_system=True)
|
+ tryuri = vmmConnect.default_uri()
|
||||||
+ found_uri = None
|
+ found_uri = None
|
||||||
for uri in uris:
|
for uri in uris:
|
||||||
+ # If booted Xen, don't try connecting to local qemu
|
+ # If booted Xen, don't try connecting to local qemu
|
||||||
|
@ -1,9 +1,15 @@
|
|||||||
Index: virt-manager-1.1.0/setup.py
|
Reference: bnc#866287
|
||||||
|
This patch is for when virt-manager is installed but not libvirt
|
||||||
|
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.2.0/setup.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/setup.py
|
--- virt-manager-1.2.0.orig/setup.py
|
||||||
+++ virt-manager-1.1.0/setup.py
|
+++ virt-manager-1.2.0/setup.py
|
||||||
@@ -303,8 +303,11 @@ class configure(Command):
|
@@ -280,8 +280,11 @@ class configure(Command):
|
||||||
("pkgversion=", None, "user specified version-id"),
|
("prefix=", None, "installation prefix"),
|
||||||
("qemu-user=", None,
|
("qemu-user=", None,
|
||||||
"user libvirt uses to launch qemu processes (default=root)"),
|
"user libvirt uses to launch qemu processes (default=root)"),
|
||||||
- ("libvirt-package-names=", None,
|
- ("libvirt-package-names=", None,
|
||||||
@ -16,9 +22,9 @@ Index: virt-manager-1.1.0/setup.py
|
|||||||
"first run. comma separated string (default=none)"),
|
"first run. comma separated string (default=none)"),
|
||||||
("kvm-package-names=", None,
|
("kvm-package-names=", None,
|
||||||
"recommended kvm packages virt-manager will check for on first run "
|
"recommended kvm packages virt-manager will check for on first run "
|
||||||
@@ -330,7 +333,8 @@ class configure(Command):
|
@@ -307,7 +310,8 @@ class configure(Command):
|
||||||
|
def initialize_options(self):
|
||||||
self.prefix = sysprefix
|
self.prefix = sysprefix
|
||||||
self.pkgversion = None
|
|
||||||
self.qemu_user = None
|
self.qemu_user = None
|
||||||
- self.libvirt_package_names = None
|
- self.libvirt_package_names = None
|
||||||
+ self.libvirt_kvm_package_names = None
|
+ self.libvirt_kvm_package_names = None
|
||||||
@ -26,8 +32,8 @@ Index: virt-manager-1.1.0/setup.py
|
|||||||
self.kvm_package_names = None
|
self.kvm_package_names = None
|
||||||
self.askpass_package_names = None
|
self.askpass_package_names = None
|
||||||
self.preferred_distros = None
|
self.preferred_distros = None
|
||||||
@@ -347,8 +351,10 @@ class configure(Command):
|
@@ -322,8 +326,10 @@ class configure(Command):
|
||||||
template += "pkgversion = %s\n" % self.pkgversion
|
template += "prefix = %s\n" % self.prefix
|
||||||
if self.qemu_user is not None:
|
if self.qemu_user is not None:
|
||||||
template += "default_qemu_user = %s\n" % self.qemu_user
|
template += "default_qemu_user = %s\n" % self.qemu_user
|
||||||
- if self.libvirt_package_names is not None:
|
- if self.libvirt_package_names is not None:
|
||||||
@ -39,49 +45,50 @@ Index: virt-manager-1.1.0/setup.py
|
|||||||
if self.kvm_package_names is not None:
|
if self.kvm_package_names is not None:
|
||||||
template += "hv_packages = %s\n" % self.kvm_package_names
|
template += "hv_packages = %s\n" % self.kvm_package_names
|
||||||
if self.askpass_package_names is not None:
|
if self.askpass_package_names is not None:
|
||||||
Index: virt-manager-1.1.0/virtcli/cliconfig.py
|
Index: virt-manager-1.2.0/virtcli/cliconfig.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtcli/cliconfig.py
|
--- virt-manager-1.2.0.orig/virtcli/cliconfig.py
|
||||||
+++ virt-manager-1.1.0/virtcli/cliconfig.py
|
+++ virt-manager-1.2.0/virtcli/cliconfig.py
|
||||||
@@ -92,6 +92,7 @@ stable_defaults = bool(int(_get_param("s
|
@@ -84,7 +84,8 @@ class _CLIConfig(object):
|
||||||
preferred_distros = _split_list(_get_param("preferred_distros", ""))
|
_get_param("preferred_distros", ""))
|
||||||
hv_packages = _split_list(_get_param("hv_packages", ""))
|
self.hv_packages = _split_list(_get_param("hv_packages", ""))
|
||||||
askpass_package = _split_list(_get_param("askpass_packages", ""))
|
self.askpass_package = _split_list(_get_param("askpass_packages", ""))
|
||||||
-libvirt_packages = _split_list(_get_param("libvirt_packages", ""))
|
- self.libvirt_packages = _split_list(_get_param("libvirt_packages", ""))
|
||||||
+libvirt_kvm_packages = _split_list(_get_param("libvirt_kvm_packages", ""))
|
+ self.libvirt_kvm_packages = _split_list(_get_param("libvirt_kvm_packages", ""))
|
||||||
+libvirt_xen_packages = _split_list(_get_param("libvirt_xen_packages", ""))
|
+ self.libvirt_xen_packages = _split_list(_get_param("libvirt_xen_packages", ""))
|
||||||
default_graphics = _get_param("default_graphics", "spice")
|
self.default_graphics = _get_param("default_graphics", "spice")
|
||||||
with_bhyve = bool(int(_get_param("with_bhyve", "0")))
|
self.default_hvs = _split_list(_get_param("default_hvs", ""))
|
||||||
Index: virt-manager-1.1.0/virtManager/config.py
|
|
||||||
|
Index: virt-manager-1.2.0/virtManager/config.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/config.py
|
--- virt-manager-1.2.0.orig/virtManager/config.py
|
||||||
+++ virt-manager-1.1.0/virtManager/config.py
|
+++ virt-manager-1.2.0/virtManager/config.py
|
||||||
@@ -158,7 +158,8 @@ class vmmConfig(object):
|
@@ -165,7 +165,8 @@ class vmmConfig(object):
|
||||||
self.stable_defaults = cliconfig.stable_defaults
|
self.default_qemu_user = CLIConfig.default_qemu_user
|
||||||
self.preferred_distros = cliconfig.preferred_distros
|
self.preferred_distros = CLIConfig.preferred_distros
|
||||||
self.hv_packages = cliconfig.hv_packages
|
self.hv_packages = CLIConfig.hv_packages
|
||||||
- self.libvirt_packages = cliconfig.libvirt_packages
|
- self.libvirt_packages = CLIConfig.libvirt_packages
|
||||||
+ self.libvirt_kvm_packages = cliconfig.libvirt_kvm_packages
|
+ self.libvirt_kvm_packages = CLIConfig.libvirt_kvm_packages
|
||||||
+ self.libvirt_xen_packages = cliconfig.libvirt_xen_packages
|
+ self.libvirt_xen_packages = CLIConfig.libvirt_xen_packages
|
||||||
self.askpass_package = cliconfig.askpass_package
|
self.askpass_package = CLIConfig.askpass_package
|
||||||
self.default_graphics_from_config = cliconfig.default_graphics
|
self.default_graphics_from_config = CLIConfig.default_graphics
|
||||||
self.with_bhyve = cliconfig.with_bhyve
|
self.default_hvs = CLIConfig.default_hvs
|
||||||
Index: virt-manager-1.1.0/virtManager/engine.py
|
Index: virt-manager-1.2.0/virtManager/engine.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/engine.py
|
--- virt-manager-1.2.0.orig/virtManager/engine.py
|
||||||
+++ virt-manager-1.1.0/virtManager/engine.py
|
+++ virt-manager-1.2.0/virtManager/engine.py
|
||||||
@@ -194,21 +194,17 @@ class vmmEngine(vmmGObject):
|
@@ -193,21 +193,18 @@ class vmmEngine(vmmGObject):
|
||||||
|
|
||||||
ret = None
|
ret = None
|
||||||
try:
|
try:
|
||||||
- libvirt_packages = self.config.libvirt_packages
|
- libvirt_packages = self.config.libvirt_packages
|
||||||
- packages = self.config.hv_packages + libvirt_packages
|
- packages = self.config.hv_packages + libvirt_packages
|
||||||
-
|
+ tryuri = vmmConnect.default_uri()
|
||||||
+ tryuri = vmmConnect.default_uri(always_system=True)
|
|
||||||
+ if tryuri and tryuri.startswith('xen'):
|
+ if tryuri and tryuri.startswith('xen'):
|
||||||
+ packages = self.config.libvirt_xen_packages
|
+ packages = self.config.libvirt_xen_packages
|
||||||
+ else:
|
+ else:
|
||||||
+ packages = self.config.libvirt_kvm_packages + self.config.hv_packages
|
+ packages = self.config.libvirt_kvm_packages + self.config.hv_packages
|
||||||
|
|
||||||
ret = packageutils.check_packagekit(manager, manager.err, packages)
|
ret = packageutils.check_packagekit(manager, manager.err, packages)
|
||||||
except:
|
except:
|
||||||
logging.exception("Error talking to PackageKit")
|
logging.exception("Error talking to PackageKit")
|
||||||
@ -89,7 +96,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py
|
|||||||
- if ret:
|
- if ret:
|
||||||
- tryuri = "qemu:///system"
|
- tryuri = "qemu:///system"
|
||||||
- else:
|
- else:
|
||||||
- tryuri = vmmConnect.default_uri(always_system=True)
|
- tryuri = vmmConnect.default_uri()
|
||||||
-
|
-
|
||||||
if tryuri is None:
|
if tryuri is None:
|
||||||
- manager.set_startup_error(msg)
|
- manager.set_startup_error(msg)
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
bnc#874594 - virt-manager allows issuing of start for xen domain twice, resulting in failure
|
Reference: bnc#874594
|
||||||
|
When the 'Power on virtual machine' button is double clicked,
|
||||||
Index: virt-manager-1.1.0/virtManager/details.py
|
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.2.0/virtManager/details.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/details.py
|
--- virt-manager-1.2.0.orig/virtManager/details.py
|
||||||
+++ virt-manager-1.1.0/virtManager/details.py
|
+++ virt-manager-1.2.0/virtManager/details.py
|
||||||
@@ -1499,6 +1499,9 @@ class vmmDetails(vmmGObjectUI):
|
@@ -1471,6 +1471,9 @@ class vmmDetails(vmmGObjectUI):
|
||||||
self.widget("details-menu-usb-redirection").set_sensitive(can_usb)
|
self.widget("details-menu-usb-redirection").set_sensitive(can_usb)
|
||||||
|
|
||||||
def control_vm_run(self, src_ignore):
|
def control_vm_run(self, src_ignore):
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
Reference: bnc#888173
|
||||||
|
Force the use of vm-install on s390. The viewer in virt-manager
|
||||||
|
and virt-viewer needs a graphics adapter defined in the VM to show
|
||||||
|
the display correctly. On s390 you can't have a graphics adapter
|
||||||
|
(you get the error 'No PCI buses available'). Vm-install gets
|
||||||
|
around this problem by starting an xterm window in which to run the
|
||||||
|
VM.
|
||||||
Index: virt-manager-1.1.0/virtManager/engine.py
|
Index: virt-manager-1.1.0/virtManager/engine.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/engine.py
|
--- virt-manager-1.1.0.orig/virtManager/engine.py
|
||||||
@ -10,7 +17,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py
|
|||||||
import os
|
import os
|
||||||
from subprocess import *
|
from subprocess import *
|
||||||
|
|
||||||
@@ -795,7 +796,7 @@ class vmmEngine(vmmGObject):
|
@@ -821,7 +822,7 @@ class vmmEngine(vmmGObject):
|
||||||
obj.connect("action-clone-domain", self._do_show_clone)
|
obj.connect("action-clone-domain", self._do_show_clone)
|
||||||
obj.connect("action-show-domain", self._do_show_vm)
|
obj.connect("action-show-domain", self._do_show_vm)
|
||||||
obj.connect("action-show-preferences", self._do_show_preferences)
|
obj.connect("action-show-preferences", self._do_show_preferences)
|
||||||
@ -19,7 +26,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py
|
|||||||
obj.connect("action-show-create-vminstall", self._do_show_create_vminstall)
|
obj.connect("action-show-create-vminstall", self._do_show_create_vminstall)
|
||||||
obj.connect("action-show-about", self._do_show_about)
|
obj.connect("action-show-about", self._do_show_about)
|
||||||
obj.connect("action-show-host", self._do_show_host)
|
obj.connect("action-show-host", self._do_show_host)
|
||||||
@@ -843,7 +844,20 @@ class vmmEngine(vmmGObject):
|
@@ -869,7 +870,20 @@ class vmmEngine(vmmGObject):
|
||||||
self.windowCreate = None
|
self.windowCreate = None
|
||||||
|
|
||||||
def _do_show_create_vminstall(self, src, uri):
|
def _do_show_create_vminstall(self, src, uri):
|
||||||
@ -41,7 +48,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py
|
|||||||
|
|
||||||
def _do_show_create(self, src, uri, use_vminstall=False):
|
def _do_show_create(self, src, uri, use_vminstall=False):
|
||||||
if uri is None:
|
if uri is None:
|
||||||
@@ -927,7 +941,10 @@ class vmmEngine(vmmGObject):
|
@@ -952,7 +966,10 @@ class vmmEngine(vmmGObject):
|
||||||
|
|
||||||
def show_domain_creator(self, uri):
|
def show_domain_creator(self, uri):
|
||||||
self.show_manager()
|
self.show_manager()
|
||||||
|
@ -1,16 +1,12 @@
|
|||||||
|
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 createing a VM.
|
||||||
Index: virt-manager-1.1.0/virtManager/create.py
|
Index: virt-manager-1.1.0/virtManager/create.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
--- virt-manager-1.1.0.orig/virtManager/create.py
|
||||||
+++ virt-manager-1.1.0/virtManager/create.py
|
+++ virt-manager-1.1.0/virtManager/create.py
|
||||||
@@ -18,6 +18,7 @@
|
@@ -359,7 +359,13 @@ class vmmCreate(vmmGObjectUI):
|
||||||
# MA 02110-1301 USA.
|
|
||||||
#
|
|
||||||
|
|
||||||
+import traceback
|
|
||||||
import logging
|
|
||||||
import threading
|
|
||||||
import time
|
|
||||||
@@ -368,7 +369,13 @@ class vmmCreate(vmmGObjectUI):
|
|
||||||
self.widget("install-url-options").set_expanded(False)
|
self.widget("install-url-options").set_expanded(False)
|
||||||
urlmodel = self.widget("install-url-box").get_model()
|
urlmodel = self.widget("install-url-box").get_model()
|
||||||
ksmodel = self.widget("install-ks-box").get_model()
|
ksmodel = self.widget("install-ks-box").get_model()
|
||||||
@ -29,14 +25,13 @@ Index: virt-manager-1.1.0/virtinst/util.py
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtinst/util.py
|
--- virt-manager-1.1.0.orig/virtinst/util.py
|
||||||
+++ virt-manager-1.1.0/virtinst/util.py
|
+++ virt-manager-1.1.0/virtinst/util.py
|
||||||
@@ -23,12 +23,14 @@ import os
|
@@ -23,11 +23,13 @@ import os
|
||||||
import random
|
import random
|
||||||
import re
|
import re
|
||||||
import stat
|
import stat
|
||||||
+import commands
|
+import commands
|
||||||
|
|
||||||
import libvirt
|
import libvirt
|
||||||
import libxml2
|
|
||||||
|
|
||||||
|
|
||||||
_host_blktap_capable = None
|
_host_blktap_capable = None
|
||||||
@ -44,10 +39,10 @@ Index: virt-manager-1.1.0/virtinst/util.py
|
|||||||
|
|
||||||
|
|
||||||
def listify(l):
|
def listify(l):
|
||||||
@@ -517,3 +519,96 @@ def convert_units(value, old_unit, new_u
|
@@ -462,3 +464,96 @@ def register_libvirt_error_handler():
|
||||||
power = get_power(new_unit)
|
ignore = userdata
|
||||||
|
ignore = err
|
||||||
return in_bytes / pow(factor, power)
|
libvirt.registerErrorHandler(f=libvirt_callback, ctx=None)
|
||||||
+
|
+
|
||||||
+def getHostInstallSource():
|
+def getHostInstallSource():
|
||||||
+ global _host_repo_url
|
+ global _host_repo_url
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
Index: virt-manager-1.1.0/virtManager/create.py
|
|
||||||
===================================================================
|
|
||||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
|
||||||
+++ virt-manager-1.1.0/virtManager/create.py
|
|
||||||
@@ -62,8 +62,9 @@ INSTALL_PAGE_CONTAINER_APP = 4
|
|
||||||
INSTALL_PAGE_CONTAINER_OS = 5
|
|
||||||
|
|
||||||
STABLE_OS_SUPPORT = [
|
|
||||||
- "rhel3", "rhel4", "rhel5.4", "rhel6",
|
|
||||||
- "win2k3", "winxp", "win2k8", "vista", "win7",
|
|
||||||
+ "oes11", "sles10", "sles11", "sles12",
|
|
||||||
+ "sled10", "sled11", "sled12",
|
|
||||||
+ "win2k3", "win2k8", "win2k12", "win7", "win8",
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
@ -1,10 +1,13 @@
|
|||||||
Index: virt-manager-1.1.0/virtManager/addhardware.py
|
Reference: bnc#885380
|
||||||
|
Xen no longer supports vmdk and never supported qed.
|
||||||
|
See /usr/share/doc/packages/xen/misc/xl-disk-configuration.txt
|
||||||
|
Index: virt-manager-1.2.0/virtManager/addhardware.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/addhardware.py
|
--- virt-manager-1.2.0.orig/virtManager/addhardware.py
|
||||||
+++ virt-manager-1.1.0/virtManager/addhardware.py
|
+++ virt-manager-1.2.0/virtManager/addhardware.py
|
||||||
@@ -719,11 +719,14 @@ class vmmAddHardware(vmmGObjectUI):
|
@@ -762,11 +762,14 @@ class vmmAddHardware(vmmGObjectUI):
|
||||||
combo.set_model(model)
|
combo.set_model(model)
|
||||||
uiutil.set_combo_text_column(combo, 0)
|
uiutil.init_combo_text_column(combo, 0)
|
||||||
|
|
||||||
- formats = ["raw", "qcow2", "qed"]
|
- formats = ["raw", "qcow2", "qed"]
|
||||||
no_create_formats = []
|
no_create_formats = []
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
bnc#886311 and bnc#888289
|
|
||||||
Prevents a second unecessary vmmDomain object from being created for the VM.
|
|
||||||
The orignal object gets the cpu stats from libvirt but the new one is used to
|
|
||||||
update the display but it is never updated with the new stats.
|
|
||||||
|
|
||||||
Index: virt-manager-1.1.0/virtManager/connection.py
|
|
||||||
===================================================================
|
|
||||||
--- virt-manager-1.1.0.orig/virtManager/connection.py
|
|
||||||
+++ virt-manager-1.1.0/virtManager/connection.py
|
|
||||||
@@ -1245,6 +1245,9 @@ class vmmConnection(vmmGObject):
|
|
||||||
self.emit("nodedev-added", name)
|
|
||||||
|
|
||||||
self.idle_add(tick_send_signals)
|
|
||||||
+ if len(self._vms) < len(vms):
|
|
||||||
+ # Allow time for tick_send_signals to run
|
|
||||||
+ time.sleep(.1)
|
|
||||||
|
|
||||||
ticklist = []
|
|
||||||
def add_to_ticklist(l, args=()):
|
|
@ -1,7 +1,13 @@
|
|||||||
Index: virt-manager-1.1.0/ui/manager.ui
|
Allow vm-install to be launched from virt-manager. Vm-install is
|
||||||
|
considered a legacy installation tool since SLE12 and os13.2. This
|
||||||
|
patch creates a pop-down menu to allow the selection of vm-install
|
||||||
|
as the install tool. Vm-install is the required installation tool
|
||||||
|
for s390 but is only a convenience for those still attached to using
|
||||||
|
it instead of virt-install on x86.
|
||||||
|
Index: virt-manager-1.2.0/ui/manager.ui
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/ui/manager.ui
|
--- virt-manager-1.2.0.orig/ui/manager.ui
|
||||||
+++ virt-manager-1.1.0/ui/manager.ui
|
+++ virt-manager-1.2.0/ui/manager.ui
|
||||||
@@ -277,7 +277,7 @@
|
@@ -277,7 +277,7 @@
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="show_arrow">False</property>
|
<property name="show_arrow">False</property>
|
||||||
@ -19,11 +25,11 @@ Index: virt-manager-1.1.0/ui/manager.ui
|
|||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
Index: virt-manager-1.1.0/virtManager/manager.py
|
Index: virt-manager-1.2.0/virtManager/manager.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/manager.py
|
--- virt-manager-1.2.0.orig/virtManager/manager.py
|
||||||
+++ virt-manager-1.1.0/virtManager/manager.py
|
+++ virt-manager-1.2.0/virtManager/manager.py
|
||||||
@@ -93,6 +93,7 @@ class vmmManager(vmmGObjectUI):
|
@@ -92,6 +92,7 @@ class vmmManager(vmmGObjectUI):
|
||||||
"action-show-host": (GObject.SignalFlags.RUN_FIRST, None, [str]),
|
"action-show-host": (GObject.SignalFlags.RUN_FIRST, None, [str]),
|
||||||
"action-show-preferences": (GObject.SignalFlags.RUN_FIRST, None, []),
|
"action-show-preferences": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||||
"action-show-create": (GObject.SignalFlags.RUN_FIRST, None, [str]),
|
"action-show-create": (GObject.SignalFlags.RUN_FIRST, None, [str]),
|
||||||
@ -31,7 +37,7 @@ Index: virt-manager-1.1.0/virtManager/manager.py
|
|||||||
"action-suspend-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
|
"action-suspend-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
|
||||||
"action-resume-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
|
"action-resume-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
|
||||||
"action-run-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
|
"action-run-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
|
||||||
@@ -290,7 +291,8 @@ class vmmManager(vmmGObjectUI):
|
@@ -289,7 +290,8 @@ class vmmManager(vmmGObjectUI):
|
||||||
|
|
||||||
|
|
||||||
def init_toolbar(self):
|
def init_toolbar(self):
|
||||||
@ -41,7 +47,7 @@ Index: virt-manager-1.1.0/virtManager/manager.py
|
|||||||
self.widget("vm-open").set_icon_name("icon_console")
|
self.widget("vm-open").set_icon_name("icon_console")
|
||||||
|
|
||||||
menu = vmmenu.VMShutdownMenu(self, self.current_vm)
|
menu = vmmenu.VMShutdownMenu(self, self.current_vm)
|
||||||
@@ -475,6 +477,9 @@ class vmmManager(vmmGObjectUI):
|
@@ -474,6 +476,9 @@ class vmmManager(vmmGObjectUI):
|
||||||
def new_vm(self, src_ignore=None):
|
def new_vm(self, src_ignore=None):
|
||||||
self.emit("action-show-create", self.current_conn_uri())
|
self.emit("action-show-create", self.current_conn_uri())
|
||||||
|
|
||||||
@ -51,10 +57,10 @@ Index: virt-manager-1.1.0/virtManager/manager.py
|
|||||||
def show_about(self, src_ignore):
|
def show_about(self, src_ignore):
|
||||||
self.emit("action-show-about")
|
self.emit("action-show-about")
|
||||||
|
|
||||||
Index: virt-manager-1.1.0/virtManager/vmmenu.py
|
Index: virt-manager-1.2.0/virtManager/vmmenu.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/vmmenu.py
|
--- virt-manager-1.2.0.orig/virtManager/vmmenu.py
|
||||||
+++ virt-manager-1.1.0/virtManager/vmmenu.py
|
+++ virt-manager-1.2.0/virtManager/vmmenu.py
|
||||||
@@ -19,9 +19,28 @@
|
@@ -19,9 +19,28 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
@ -84,13 +90,13 @@ Index: virt-manager-1.1.0/virtManager/vmmenu.py
|
|||||||
# Build toolbar shutdown button menu (manager and details toolbar) #
|
# Build toolbar shutdown button menu (manager and details toolbar) #
|
||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
Index: virt-manager-1.1.0/virtManager/config.py
|
Index: virt-manager-1.2.0/virtManager/config.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/config.py
|
--- virt-manager-1.2.0.orig/virtManager/config.py
|
||||||
+++ virt-manager-1.1.0/virtManager/config.py
|
+++ virt-manager-1.2.0/virtManager/config.py
|
||||||
@@ -190,6 +190,13 @@ class vmmConfig(object):
|
@@ -197,6 +197,13 @@ class vmmConfig(object):
|
||||||
|
|
||||||
# General app wide helpers (gconf agnostic)
|
# General app wide helpers (gsettings agnostic)
|
||||||
|
|
||||||
+ def get_new_icon_name(self):
|
+ def get_new_icon_name(self):
|
||||||
+ theme = Gtk.IconTheme.get_default()
|
+ theme = Gtk.IconTheme.get_default()
|
||||||
@ -102,10 +108,10 @@ Index: virt-manager-1.1.0/virtManager/config.py
|
|||||||
def get_appname(self):
|
def get_appname(self):
|
||||||
return self.appname
|
return self.appname
|
||||||
def get_appversion(self):
|
def get_appversion(self):
|
||||||
Index: virt-manager-1.1.0/virtManager/engine.py
|
Index: virt-manager-1.2.0/virtManager/engine.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- virt-manager-1.1.0.orig/virtManager/engine.py
|
--- virt-manager-1.2.0.orig/virtManager/engine.py
|
||||||
+++ virt-manager-1.1.0/virtManager/engine.py
|
+++ virt-manager-1.2.0/virtManager/engine.py
|
||||||
@@ -27,6 +27,8 @@ import re
|
@@ -27,6 +27,8 @@ import re
|
||||||
import Queue
|
import Queue
|
||||||
import threading
|
import threading
|
||||||
@ -113,9 +119,9 @@ Index: virt-manager-1.1.0/virtManager/engine.py
|
|||||||
+import os
|
+import os
|
||||||
+from subprocess import *
|
+from subprocess import *
|
||||||
|
|
||||||
from virtinst import util
|
from . import packageutils
|
||||||
|
from .about import vmmAbout
|
||||||
@@ -74,6 +76,7 @@ class vmmEngine(vmmGObject):
|
@@ -72,6 +74,7 @@ class vmmEngine(vmmGObject):
|
||||||
self.windowCreate = None
|
self.windowCreate = None
|
||||||
self.windowManager = None
|
self.windowManager = None
|
||||||
self.windowMigrate = None
|
self.windowMigrate = None
|
||||||
@ -123,7 +129,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py
|
|||||||
|
|
||||||
self.conns = {}
|
self.conns = {}
|
||||||
self.err = vmmErrorDialog()
|
self.err = vmmErrorDialog()
|
||||||
@@ -793,6 +796,7 @@ class vmmEngine(vmmGObject):
|
@@ -819,6 +822,7 @@ class vmmEngine(vmmGObject):
|
||||||
obj.connect("action-show-domain", self._do_show_vm)
|
obj.connect("action-show-domain", self._do_show_vm)
|
||||||
obj.connect("action-show-preferences", self._do_show_preferences)
|
obj.connect("action-show-preferences", self._do_show_preferences)
|
||||||
obj.connect("action-show-create", self._do_show_create)
|
obj.connect("action-show-create", self._do_show_create)
|
||||||
@ -131,7 +137,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py
|
|||||||
obj.connect("action-show-about", self._do_show_about)
|
obj.connect("action-show-about", self._do_show_about)
|
||||||
obj.connect("action-show-host", self._do_show_host)
|
obj.connect("action-show-host", self._do_show_host)
|
||||||
obj.connect("action-show-connect", self._do_show_connect)
|
obj.connect("action-show-connect", self._do_show_connect)
|
||||||
@@ -835,11 +839,52 @@ class vmmEngine(vmmGObject):
|
@@ -861,11 +865,52 @@ class vmmEngine(vmmGObject):
|
||||||
self.windowCreate = obj
|
self.windowCreate = obj
|
||||||
return self.windowCreate
|
return self.windowCreate
|
||||||
|
|
||||||
@ -148,7 +154,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py
|
|||||||
+
|
+
|
||||||
+ def _do_show_create(self, src, uri, use_vminstall=False):
|
+ def _do_show_create(self, src, uri, use_vminstall=False):
|
||||||
+ if uri is None:
|
+ if uri is None:
|
||||||
+ uri = vmmConnect.default_uri(always_system=True)
|
+ uri = vmmConnect.default_uri()
|
||||||
+ conn = self._lookup_conn(uri)
|
+ conn = self._lookup_conn(uri)
|
||||||
+ do_remote = conn.is_remote()
|
+ do_remote = conn.is_remote()
|
||||||
+ if self.windowCreate == None or do_remote != self.remote_install:
|
+ if self.windowCreate == None or do_remote != self.remote_install:
|
||||||
|
Loading…
Reference in New Issue
Block a user