- 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
|
||||
|
||||
|
@ -21,13 +21,13 @@
|
||||
%define qemu_user "qemu"
|
||||
%define libvirt_kvm_packages ""
|
||||
%define libvirt_xen_packages ""
|
||||
%define preferred_distros "sles,opensuse"
|
||||
%define preferred_distros "sles12,opensuse13.2"
|
||||
%define kvm_packages ""
|
||||
%define _version 1.1.0
|
||||
%define _version 1.2.0
|
||||
%define _release 1
|
||||
|
||||
Name: virt-manager
|
||||
Version: 1.1.0
|
||||
Version: 1.2.0
|
||||
Release: 0
|
||||
Summary: Virtual Machine Manager
|
||||
License: GPL-2.0+
|
||||
@ -36,19 +36,18 @@ Url: http://virt-manager.org/
|
||||
Source0: %{name}-%{version}.tar.bz2
|
||||
Source1: virt-install.rb
|
||||
Source2: virt-install.desktop
|
||||
# Upstream Patches
|
||||
# SUSE Only
|
||||
Patch1: 65f7017e-createnet-fix.patch
|
||||
Patch70: virtman-desktop.patch
|
||||
Patch71: virtman-kvm.patch
|
||||
Patch72: virtman-keycombo.patch
|
||||
Patch73: virtman-vminstall.patch
|
||||
Patch74: virtman-show-suse-install-repos.patch
|
||||
Patch75: virtman-stable-os-support.patch
|
||||
Patch76: virtman-dont-allow-grub.xen-to-be-deleted.patch
|
||||
Patch77: virtman-s390x-default-to-vminstall.patch
|
||||
Patch78: virtman-libvirtd-not-running.patch
|
||||
Patch79: virtinst-pvgrub2-bootloader.patch
|
||||
Patch80: virtinst-nfs-install-sanitize.patch
|
||||
Patch75: virtman-s390x-default-to-vminstall.patch
|
||||
Patch76: virtman-libvirtd-not-running.patch
|
||||
Patch77: virtman-dont-allow-grub.xen-to-be-deleted.patch
|
||||
Patch78: virtinst-pvgrub2-bootloader.patch
|
||||
Patch79: virtinst-nfs-install-sanitize.patch
|
||||
# Features or Enhancements
|
||||
Patch100: virtman-eepro100.patch
|
||||
Patch101: virtman-default-guest-from-host-os.patch
|
||||
@ -57,11 +56,9 @@ Patch103: virtman-autoyast-support.patch
|
||||
Patch104: virtman-packages.patch
|
||||
Patch105: virtman-load-stored-uris.patch
|
||||
Patch106: virtman-add-s390x-arch-support.patch
|
||||
Patch107: virtman-default-lxc-uri.patch
|
||||
Patch108: virtman-add-connect-default.patch
|
||||
Patch107: virtman-add-connect-default.patch
|
||||
Patch120: virtinst-storage-ocfs2.patch
|
||||
Patch121: virtinst-supported-disk-formats.patch
|
||||
Patch122: virtinst-support-suse-distros.patch
|
||||
Patch121: virtinst-default-xen-to-qcow2-format.patch
|
||||
Patch123: virtinst-detect-suse-distros.patch
|
||||
Patch124: virtinst-modify-gui-defaults.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
|
||||
Patch128: virtinst-add-default-rng-device.patch
|
||||
Patch129: virtinst-set-qemu-emulator.patch
|
||||
Patch130: virtinst-ppc64le.patch
|
||||
# Bug Fixes
|
||||
Patch150: virtman-supported-disk-formats.patch
|
||||
Patch151: virtman-prevent-double-click-starting-vm-twice.patch
|
||||
Patch152: virtman-check-for-empty-network-name.patch
|
||||
Patch153: virtman-increase-setKeepAlive-count.patch
|
||||
Patch154: virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch
|
||||
Patch155: virtman-sync-vm-startup-for-cpu-usage.patch
|
||||
Patch156: virtman-check-for-valid-display.patch
|
||||
Patch157: virtinst-xen-drive-type.patch
|
||||
Patch158: virtinst-xenbus-disk-index-fix.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
|
||||
Patch152: virtman-increase-setKeepAlive-count.patch
|
||||
Patch153: virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch
|
||||
Patch154: virtman-check-for-valid-display.patch
|
||||
Patch155: virtman-allow-creating-i686-vm.patch
|
||||
Patch160: virtinst-xen-drive-type.patch
|
||||
Patch161: virtinst-xenbus-disk-index-fix.patch
|
||||
Patch162: virtinst-refresh_before_fetch_pool.patch
|
||||
BuildArch: noarch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
@ -112,7 +103,9 @@ Requires: python-libguestfs
|
||||
%endif
|
||||
|
||||
BuildRequires: glib2-devel
|
||||
%if 0%{?suse_version} > 1320
|
||||
BuildRequires: gobject-introspection
|
||||
%endif
|
||||
BuildRequires: intltool
|
||||
BuildRequires: perl
|
||||
BuildRequires: python
|
||||
@ -161,8 +154,8 @@ machine).
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
# Upstream Patches
|
||||
# SUSE Only
|
||||
%patch1 -p1
|
||||
%patch70 -p1
|
||||
%patch71 -p1
|
||||
%patch72 -p1
|
||||
@ -173,7 +166,6 @@ machine).
|
||||
%patch77 -p1
|
||||
%patch78 -p1
|
||||
%patch79 -p1
|
||||
%patch80 -p1
|
||||
# Enhancements
|
||||
%patch100 -p1
|
||||
%patch101 -p1
|
||||
@ -183,10 +175,8 @@ machine).
|
||||
%patch105 -p1
|
||||
%patch106 -p1
|
||||
%patch107 -p1
|
||||
%patch108 -p1
|
||||
%patch120 -p1
|
||||
%patch121 -p1
|
||||
%patch122 -p1
|
||||
%patch123 -p1
|
||||
%patch124 -p1
|
||||
%patch125 -p1
|
||||
@ -194,7 +184,6 @@ machine).
|
||||
%patch127 -p1
|
||||
%patch128 -p1
|
||||
%patch129 -p1
|
||||
%patch130 -p1
|
||||
# Bug Fixes
|
||||
%patch150 -p1
|
||||
%patch151 -p1
|
||||
@ -202,14 +191,9 @@ machine).
|
||||
%patch153 -p1
|
||||
%patch154 -p1
|
||||
%patch155 -p1
|
||||
%patch156 -p1
|
||||
%patch157 -p1
|
||||
%patch158 -p1
|
||||
%patch159 -p1
|
||||
%patch160 -p1
|
||||
%patch161 -p1
|
||||
%patch162 -p1
|
||||
%patch163 -p1
|
||||
|
||||
%build
|
||||
%if %{qemu_user}
|
||||
@ -238,7 +222,6 @@ machine).
|
||||
|
||||
python setup.py configure \
|
||||
--prefix=%{_prefix} \
|
||||
--pkgversion="%{version}" \
|
||||
--default-graphics="spice" \
|
||||
%{?_qemu_user} \
|
||||
%{?_kvm_packages} \
|
||||
@ -296,6 +279,7 @@ fi
|
||||
%{_datadir}/appdata/%{name}.appdata.xml
|
||||
%{_datadir}/applications/%{name}.desktop
|
||||
%{_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
|
||||
%defattr(-,root,root,-)
|
||||
@ -316,8 +300,11 @@ fi
|
||||
%{_datadir}/%{name}/virt-clone
|
||||
%{_datadir}/%{name}/virt-convert
|
||||
%{_datadir}/%{name}/virt-xml
|
||||
%dir %{_datadir}/*
|
||||
%dir %{_datadir}/*/*
|
||||
%dir %{_datadir}/YaST2
|
||||
%dir %{_datadir}/YaST2/clients
|
||||
%dir %{_datadir}/applications/YaST2
|
||||
%dir %{_datadir}/GConf
|
||||
%dir %{_datadir}/GConf/gsettings
|
||||
%{_datadir}/YaST2/clients/virt-install.rb
|
||||
%{_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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/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
|
||||
self.add_device(virtinst.VirtualGraphics(self.conn))
|
||||
self.add_device(VirtualGraphics(self.conn))
|
||||
|
||||
+ def add_default_rng(self):
|
||||
+ osvar = self._get_os_variant()
|
||||
+ if not self.conn.is_qemu() or not osvar or osvar.startswith("win"):
|
||||
+ return
|
||||
+ rng_dev = virtinst.VirtualRNGDevice(True)
|
||||
+ rng_dev.type = virtinst.VirtualRNGDevice.TYPE_RANDOM
|
||||
+ rng_dev = VirtualRNGDevice(True)
|
||||
+ rng_dev.type = VirtualRNGDevice.TYPE_RANDOM
|
||||
+ setattr(rng_dev, "device", "/dev/random")
|
||||
+ self.add_device(rng_dev)
|
||||
+
|
||||
def add_default_devices(self):
|
||||
self.add_default_graphics()
|
||||
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_usb_controller()
|
||||
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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/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
|
||||
|
||||
@ -44,6 +46,8 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
+ distro_arch = line.split(' ', 1)
|
||||
+ elif line.startswith("DEFAULTBASE "):
|
||||
+ distro_arch = line.split(' ', 1)
|
||||
+ elif line.startswith("REPOID "):
|
||||
+ distro_arch = line.rsplit('/', 1)
|
||||
+ if distribution and distro_version and distro_arch:
|
||||
+ break
|
||||
+
|
||||
@ -76,7 +80,10 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
+ elif re.match(".*openSUSE.*", distribution[1]):
|
||||
+ dclass = OpensuseDistro
|
||||
+ 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:
|
||||
+ return None
|
||||
@ -92,7 +99,7 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
|
||||
def getDistroStore(guest, fetcher):
|
||||
stores = []
|
||||
@@ -339,6 +422,10 @@ def getDistroStore(guest, fetcher):
|
||||
@@ -334,6 +422,10 @@ def getDistroStore(guest, fetcher):
|
||||
if dist:
|
||||
return dist
|
||||
|
||||
@ -103,7 +110,31 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
stores = _allstores[:]
|
||||
|
||||
# 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):
|
||||
name = "SUSE"
|
||||
@ -131,10 +162,12 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
+ 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
|
||||
@ -152,10 +185,13 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
+ # self.content is the VERSION line from the contents file
|
||||
+ if self.content is None or self.content[1] is None:
|
||||
+ return False
|
||||
+ distro_version = self.content[1]
|
||||
+ distro_version = self.content[1].strip()
|
||||
+ version = distro_version.split('.', 1)[0].strip()
|
||||
+ if int(version) >= 10:
|
||||
+ self.os_variant += version
|
||||
+ if self.os_variant.startswith("sles"):
|
||||
+ self.os_variant += version
|
||||
+ else:
|
||||
+ self.os_variant += distro_version
|
||||
+ else:
|
||||
+ self.os_variant += "9"
|
||||
+
|
||||
@ -172,7 +208,7 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
return True
|
||||
|
||||
def _get_method_arg(self):
|
||||
@@ -863,6 +980,27 @@ class SuseDistro(Distro):
|
||||
@@ -874,6 +1018,27 @@ class SuseDistro(Distro):
|
||||
return osobj.name
|
||||
return self.os_variant
|
||||
|
||||
@ -200,3 +236,18 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
|
||||
class DebianDistro(Distro):
|
||||
# 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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtinst/urlfetcher.py
|
||||
@ -38,34 +41,17 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
stores = _allstores[:]
|
||||
|
||||
# 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)
|
||||
return False
|
||||
|
||||
+class WindowsDistro(Distro):
|
||||
+
|
||||
+ urldistro = "windows"
|
||||
+ os_variant = "win-unknown"
|
||||
+ os_variant = "win8.1"
|
||||
+
|
||||
+ def isValidStore(self):
|
||||
+ return False
|
||||
|
||||
# Build list of all *Distro classes
|
||||
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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/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("create-conn").set_active(-1)
|
||||
activeconn = self.populate_conn_list(urihint)
|
||||
- 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():
|
||||
+ self.widget("arch-expander").set_expanded(True)
|
||||
+ else:
|
||||
@ -46,7 +52,7 @@ Index: virt-manager-1.1.0/virtManager/netlist.py
|
||||
skip_ifaces = ["lo"]
|
||||
|
||||
vnet_taps = []
|
||||
@@ -228,10 +238,18 @@ class vmmNetworkList(vmmGObjectUI):
|
||||
@@ -229,10 +239,18 @@ class vmmNetworkList(vmmGObjectUI):
|
||||
if can_default and not default_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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/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)
|
||||
return (index_dom0, zypper_output)
|
||||
|
||||
@ -47,12 +52,12 @@ Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
@@ -33,6 +33,7 @@ import urlparse
|
||||
import urlgrabber.grabber as grabber
|
||||
|
||||
from virtinst import osdict
|
||||
from .osdict import OSDB
|
||||
+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)
|
||||
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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/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
|
||||
self.os.is_xenpv() and
|
||||
not self.os.kernel):
|
||||
@ -15,7 +19,7 @@ Index: virt-manager-1.1.0/virtinst/guest.py
|
||||
+ self.installer.extraargs = None
|
||||
+ # alter_bootconfig won't update the osxml unless it thinks
|
||||
+ # 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")
|
||||
+ else:
|
||||
+ 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/virtinst/installer.py
|
||||
@@ -111,7 +111,7 @@ class Installer(object):
|
||||
@@ -112,7 +112,7 @@ class Installer(object):
|
||||
dev.validate()
|
||||
return dev
|
||||
|
||||
- def alter_bootconfig(self, guest, isinstall, bootconfig):
|
||||
+ def alter_bootconfig(self, guest, isinstall, bootconfig, force_update=False):
|
||||
- def alter_bootconfig(self, guest, isinstall):
|
||||
+ def alter_bootconfig(self, guest, isinstall, force_update=False):
|
||||
"""
|
||||
Generate the portion of the guest xml that determines boot devices
|
||||
and parameters. (typically the <os></os> block)
|
||||
@@ -122,7 +122,7 @@ class Installer(object):
|
||||
@@ -123,7 +123,7 @@ class Installer(object):
|
||||
'post-install' phase.
|
||||
@type isinstall: C{bool}
|
||||
"""
|
||||
|
@ -1,3 +1,4 @@
|
||||
Reference: bnc#887868
|
||||
Refresh pools status before fetch_pools.
|
||||
|
||||
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/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(
|
||||
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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.1.0/virtinst/guest.py
|
||||
@@ -31,6 +31,7 @@ from virtinst import util
|
||||
from virtinst import support
|
||||
from virtinst import OSXML
|
||||
from virtinst import VirtualDevice
|
||||
+from virtinst import VirtualDisk
|
||||
from virtinst import Clock
|
||||
from virtinst import Seclabel
|
||||
from virtinst import CPU
|
||||
@@ -348,6 +349,13 @@ class Guest(XMLBuilder):
|
||||
self.on_crash = action
|
||||
@@ -52,6 +52,7 @@ from .osxml import OSXML
|
||||
from .pm import PM
|
||||
from .seclabel import Seclabel
|
||||
from .xmlbuilder import XMLBuilder, XMLProperty, XMLChildProperty
|
||||
+from .devicedisk import VirtualDisk
|
||||
|
||||
|
||||
class Guest(XMLBuilder):
|
||||
@@ -363,6 +364,14 @@ class Guest(XMLBuilder):
|
||||
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
|
||||
+ # better performance if the target is not a block device
|
||||
+ if install:
|
||||
@ -21,10 +23,11 @@ Index: virt-manager-1.1.0/virtinst/guest.py
|
||||
+ saved_cache = target_disk.driver_cache
|
||||
+ if target_disk.type != VirtualDisk.TYPE_BLOCK:
|
||||
+ target_disk.driver_cache = VirtualDisk.CACHE_MODE_UNSAFE
|
||||
|
||||
+
|
||||
self.bootloader = None
|
||||
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.os.clear()
|
||||
|
||||
@ -34,5 +37,5 @@ Index: virt-manager-1.1.0/virtinst/guest.py
|
||||
+ target_disk.driver_cache = saved_cache
|
||||
+ 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.1.0/virtinst/guest.py
|
||||
--- virt-manager-1.2.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.2.0/virtinst/guest.py
|
||||
@@ -19,6 +19,7 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
# MA 02110-1301 USA.
|
||||
@ -10,7 +11,7 @@ Index: virt-manager-1.1.0/virtinst/guest.py
|
||||
import logging
|
||||
|
||||
import urlgrabber.progress as progress
|
||||
@@ -769,14 +770,26 @@ class Guest(XMLBuilder):
|
||||
@@ -815,14 +816,28 @@ class Guest(XMLBuilder):
|
||||
self.emulator = None
|
||||
return
|
||||
|
||||
@ -18,6 +19,8 @@ Index: virt-manager-1.1.0/virtinst/guest.py
|
||||
+ 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():
|
||||
|
@ -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.1.0/virtinst/storage.py
|
||||
@@ -405,7 +405,7 @@ class StoragePool(_StorageObject):
|
||||
--- virt-manager-1.2.0.orig/virtinst/storage.py
|
||||
+++ virt-manager-1.2.0/virtinst/storage.py
|
||||
@@ -436,7 +436,7 @@ class StoragePool(_StorageObject):
|
||||
def list_formats(self):
|
||||
if self.type == self.TYPE_FS:
|
||||
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
|
||||
issue on btrfs.
|
||||
|
||||
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.1.0/virtinst/storage.py
|
||||
@@ -658,6 +658,11 @@ class StorageVolume(_StorageObject):
|
||||
--- virt-manager-1.2.0.orig/virtinst/storage.py
|
||||
+++ virt-manager-1.2.0/virtinst/storage.py
|
||||
@@ -705,6 +705,11 @@ class StorageVolume(_StorageObject):
|
||||
lazy_refcounts = XMLProperty("./target/features/lazy_refcounts",
|
||||
is_bool=True, default_cb=_lazy_refcounts_default_cb)
|
||||
|
||||
|
@ -1,10 +1,12 @@
|
||||
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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/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
|
||||
if self.conn.is_qemu():
|
||||
return self.DRIVER_QEMU
|
||||
@ -17,7 +19,7 @@ Index: virt-manager-1.1.0/virtinst/devicedisk.py
|
||||
return None
|
||||
|
||||
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
|
||||
"""
|
||||
if self.driver_name != self.DRIVER_QEMU:
|
||||
@ -25,4 +27,4 @@ Index: virt-manager-1.1.0/virtinst/devicedisk.py
|
||||
+ return self.type
|
||||
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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/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}
|
||||
"""
|
||||
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.sort()
|
||||
|
||||
@@ -949,7 +960,12 @@ class VirtualDisk(VirtualDevice):
|
||||
@@ -1025,7 +1036,12 @@ class VirtualDisk(VirtualDevice):
|
||||
ran = range(pref_ctrl * 7, (pref_ctrl + 1) * 7)
|
||||
|
||||
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
|
||||
===================================================================
|
||||
--- 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.1.0/virtManager/create.py
|
||||
@@ -428,7 +428,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
--- virt-manager-1.2.0.orig/virtManager/create.py
|
||||
+++ virt-manager-1.2.0/virtManager/create.py
|
||||
@@ -417,7 +417,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
can_remote_url = self.conn.get_backend().support_remote_url_install()
|
||||
|
||||
installable_arch = (self.capsguest.arch in
|
||||
- ["i686", "x86_64", "ppc64", "ia64"])
|
||||
+ ["i686", "x86_64", "ppc64", "ia64", "s390x"])
|
||||
installable_arch = (self.capsinfo.arch in
|
||||
- ["i686", "x86_64", "ppc64", "ppc64le", "ia64"])
|
||||
+ ["i686", "x86_64", "ppc64", "ppc64le", "ia64", "s390x"])
|
||||
|
||||
# Install Options
|
||||
method_tree = self.widget("method-tree")
|
||||
@@ -690,7 +690,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
if self.capsinfo.arch == "aarch64":
|
||||
try:
|
||||
@@ -684,7 +684,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
archs.remove("i686")
|
||||
archs.sort()
|
||||
|
||||
- prios = ["x86_64", "i686", "armv7l", "ppc64"]
|
||||
+ prios = ["x86_64", "i686", "armv7l", "ppc64", "s390x"]
|
||||
- prios = ["x86_64", "i686", "aarch64", "armv7l", "ppc64", "ppc64le"]
|
||||
+ prios = ["x86_64", "i686", "aarch64", "armv7l", "ppc64", "ppc64le", "s390x"]
|
||||
if self.conn.caps.host.cpu.arch not in prios:
|
||||
prios = []
|
||||
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.1.0/virtinst/osxml.py
|
||||
@@ -58,6 +58,8 @@ class OSXML(XMLBuilder):
|
||||
return self.arch == "ppc64"
|
||||
--- virt-manager-1.2.0.orig/virtinst/osxml.py
|
||||
+++ virt-manager-1.2.0/virtinst/osxml.py
|
||||
@@ -70,6 +70,8 @@ class OSXML(XMLBuilder):
|
||||
return self.arch == "ppc64" or self.arch == "ppc64le"
|
||||
def is_pseries(self):
|
||||
return self.is_ppc64 and self.machine == "pseries"
|
||||
return self.is_ppc64() and self.machine == "pseries"
|
||||
+ def is_s390x(self):
|
||||
+ return self.arch == "s390x"
|
||||
|
||||
_XML_ROOT_NAME = "os"
|
||||
_XML_PROP_ORDER = ["arch", "os_type", "loader",
|
||||
Index: virt-manager-1.1.0/virtinst/guest.py
|
||||
_XML_PROP_ORDER = ["arch", "os_type", "loader", "loader_ro", "loader_type",
|
||||
Index: virt-manager-1.2.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.1.0/virtinst/guest.py
|
||||
@@ -112,7 +112,10 @@ class Guest(XMLBuilder):
|
||||
--- virt-manager-1.2.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.2.0/virtinst/guest.py
|
||||
@@ -119,7 +119,10 @@ class Guest(XMLBuilder):
|
||||
self.skip_default_channel = False
|
||||
self.skip_default_sound = 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.x86_cpu_default = self.cpu.SPECIAL_MODE_HOST_MODEL_ONLY
|
||||
|
||||
self._os_variant = None
|
||||
@@ -569,11 +572,13 @@ class Guest(XMLBuilder):
|
||||
self.__os_object = None
|
||||
@@ -611,11 +614,13 @@ class Guest(XMLBuilder):
|
||||
self.conn.check_support(
|
||||
self.conn.SUPPORT_CONN_VIRTIO_CONSOLE)):
|
||||
dev.target_type = "virtio"
|
||||
@ -64,21 +66,21 @@ Index: virt-manager-1.1.0/virtinst/guest.py
|
||||
return
|
||||
if self.get_devices("video"):
|
||||
return
|
||||
@@ -618,7 +623,7 @@ class Guest(XMLBuilder):
|
||||
@@ -660,7 +665,7 @@ class Guest(XMLBuilder):
|
||||
return
|
||||
if self.os.is_container():
|
||||
return
|
||||
- if self.os.arch not in ["x86_64", "i686", "ppc64", "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"]:
|
||||
+ if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64", "s390x"]:
|
||||
return
|
||||
self.add_device(virtinst.VirtualGraphics(self.conn))
|
||||
self.add_device(VirtualGraphics(self.conn))
|
||||
|
||||
@@ -844,7 +849,7 @@ class Guest(XMLBuilder):
|
||||
if not self._lookup_osdict_key(key, False):
|
||||
return False
|
||||
@@ -948,7 +953,7 @@ class Guest(XMLBuilder):
|
||||
if self._hv_only_supports_virtio():
|
||||
return True
|
||||
|
||||
- if self.os.is_x86():
|
||||
+ if self.os.is_x86() or self.os.is_s390x():
|
||||
return True
|
||||
|
||||
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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/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:
|
||||
if guest.os_type == self.capsguest.os_type:
|
||||
if guest.os_type == self.capsinfo.os_type:
|
||||
archs.append(guest.arch)
|
||||
-
|
||||
- # Combine x86/i686 to avoid confusion
|
||||
@ -13,4 +16,4 @@ Index: virt-manager-1.1.0/virtManager/create.py
|
||||
- archs.remove("i686")
|
||||
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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/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())
|
||||
else:
|
||||
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())
|
||||
|
||||
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
|
||||
===================================================================
|
||||
--- 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_visible(statemap[name])
|
||||
|
||||
|
||||
class VMActionMenu(_VMMenu):
|
||||
@@ -122,7 +125,8 @@ class VMActionMenu(_VMMenu):
|
||||
if name == "reset":
|
||||
child.set_tooltip_text(None)
|
||||
@@ -130,7 +133,8 @@ class VMActionMenu(_VMMenu):
|
||||
self._add_action(_("_Pause"), "suspend", Gtk.STOCK_MEDIA_PAUSE)
|
||||
self._add_action(_("R_esume"), "resume", Gtk.STOCK_MEDIA_PAUSE)
|
||||
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_action(_("Clone..."), "clone", None)
|
||||
@@ -138,7 +142,7 @@ class VMActionMenu(_VMMenu):
|
||||
@@ -146,7 +150,7 @@ class VMActionMenu(_VMMenu):
|
||||
def update_widget_states(self, vm):
|
||||
statemap = {
|
||||
"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()),
|
||||
"resume": bool(vm and vm.is_paused()),
|
||||
"migrate": bool(vm and vm.is_stoppable()),
|
||||
@@ -155,6 +159,8 @@ class VMActionMenu(_VMMenu):
|
||||
child.update_widget_states(vm)
|
||||
@@ -163,6 +167,8 @@ class VMActionMenu(_VMMenu):
|
||||
child.get_submenu().update_widget_states(vm)
|
||||
if name in statemap:
|
||||
child.set_sensitive(statemap[name])
|
||||
+ 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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
||||
+++ virt-manager-1.1.0/virtManager/create.py
|
||||
@@ -1265,11 +1265,34 @@ class vmmCreate(vmmGObjectUI):
|
||||
if self.widget("install-os-version").get_visible():
|
||||
self.widget("install-os-version-entry").grab_focus()
|
||||
@@ -1242,11 +1242,34 @@ class vmmCreate(vmmGObjectUI):
|
||||
self.populate_os_type_model()
|
||||
return
|
||||
|
||||
+ def _update_kickstart_label(self):
|
||||
+ # 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()
|
||||
+
|
||||
# Get previous
|
||||
# 'show all OS' was clicked
|
||||
# Get previous type to reselect it later
|
||||
type_row = self._selected_os_row()
|
||||
if not type_row:
|
||||
@@ -1634,7 +1657,10 @@ class vmmCreate(vmmGObjectUI):
|
||||
@@ -1611,7 +1634,10 @@ class vmmCreate(vmmGObjectUI):
|
||||
if extra:
|
||||
extraargs += extra
|
||||
if ks:
|
||||
@ -49,7 +51,7 @@ Index: virt-manager-1.1.0/virtManager/create.py
|
||||
|
||||
if 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)
|
||||
vl = self.set_os_val(self.widget("install-os-version"), distro_var)
|
||||
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/ui/create.ui
|
||||
@@ -841,7 +841,7 @@ bar</property>
|
||||
@@ -843,7 +843,7 @@ bar</property>
|
||||
<property name="column_spacing">6</property>
|
||||
<property name="row_spacing">4</property>
|
||||
<child>
|
||||
@ -69,4 +71,4 @@ Index: virt-manager-1.1.0/ui/create.ui
|
||||
+ <object class="GtkLabel" id="kickstart-url-label">
|
||||
<property name="visible">True</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
|
||||
+++ virt-manager-1.1.0/virt-manager 2014-12-02 12:09:20.000000000 -0700
|
||||
@@ -175,8 +175,11 @@ def main():
|
||||
References: bnc#907958
|
||||
Sanity check for those who forget '-X' on ssh and try to start virt-manager
|
||||
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
|
||||
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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
||||
+++ virt-manager-1.1.0/virtManager/create.py
|
||||
@@ -22,6 +22,8 @@ import traceback
|
||||
@@ -21,6 +21,8 @@
|
||||
import logging
|
||||
import threading
|
||||
import time
|
||||
@ -11,7 +13,16 @@ Index: virt-manager-1.1.0/virtManager/create.py
|
||||
|
||||
from gi.repository import GObject
|
||||
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
|
||||
self.start_detection(forward=forward)
|
||||
|
||||
@ -22,10 +33,12 @@ Index: virt-manager-1.1.0/virtManager/create.py
|
||||
+ lines = f.readlines()
|
||||
+ f.close()
|
||||
+ for line in lines:
|
||||
+ if "openSUSE 13" in line:
|
||||
+ return 'linux', 'opensuse13'
|
||||
+ if "openSUSE 12" in line:
|
||||
+ return 'linux', 'opensuse12'
|
||||
+ if "openSUSE " in line:
|
||||
+ parts = line.split(' ')
|
||||
+ if len(parts) > 2 and len(parts[3]) <= 4:
|
||||
+ os_ver = "opensuse" + parts[3]
|
||||
+ return 'linux', os_ver
|
||||
+ return 'linux', 'opensuse13.2'
|
||||
+ if "SUSE Linux Enterprise Server 12" in line:
|
||||
+ return 'linux', 'sles12'
|
||||
+ if "SUSE Linux Enterprise Desktop 12" in line:
|
||||
@ -34,10 +47,6 @@ Index: virt-manager-1.1.0/virtManager/create.py
|
||||
+ return 'linux', 'sles11'
|
||||
+ if "SUSE Linux Enterprise Desktop 11" in line:
|
||||
+ return 'linux', 'sled11'
|
||||
+ if "Fedora" in line:
|
||||
+ return 'linux', 'fedora17'
|
||||
+ if "Red Hat Enterprise Linux Server" in line:
|
||||
+ return 'linux', 'rhel6'
|
||||
+ return None, None
|
||||
+
|
||||
+ def detect_host_os(self):
|
||||
@ -67,7 +76,7 @@ Index: virt-manager-1.1.0/virtManager/create.py
|
||||
def toggle_detect_os(self, src):
|
||||
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.mediaDetected = False
|
||||
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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/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 none specified, prefer HVM so install options aren't limited
|
||||
# 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-0.10.0/data/virt-manager.desktop.in
|
||||
--- virt-manager-1.1.0.orig/data/virt-manager.desktop.in
|
||||
+++ virt-manager-1.1.0/data/virt-manager.desktop.in
|
||||
@@ -1,8 +1,19 @@
|
||||
[Desktop Entry]
|
||||
_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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/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))
|
||||
|
||||
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.1.0/virtManager/addhardware.py
|
||||
@@ -574,6 +574,7 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
--- virt-manager-1.2.0.orig/virtManager/addhardware.py
|
||||
+++ virt-manager-1.2.0/virtManager/addhardware.py
|
||||
@@ -582,6 +582,7 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
if vm.is_hvm():
|
||||
mod_list = ["rtl8139", "ne2k_pci", "pcnet", "e1000"]
|
||||
mod_list = []
|
||||
if vm.get_hv_type() in ["kvm", "qemu", "test"]:
|
||||
+ mod_list.append("eepro100")
|
||||
mod_list.append("virtio")
|
||||
if (vm.get_hv_type() == "kvm" and
|
||||
vm.get_machtype() == "pseries"):
|
||||
mod_list.append("rtl8139")
|
||||
mod_list.append("e1000")
|
||||
|
@ -1,14 +1,17 @@
|
||||
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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtManager/connection.py
|
||||
+++ virt-manager-1.1.0/virtManager/connection.py
|
||||
@@ -1028,7 +1028,7 @@ class vmmConnection(vmmGObject):
|
||||
self._add_conn_events()
|
||||
@@ -903,7 +903,7 @@ class vmmConnection(vmmGObject):
|
||||
self.caps.get_cpu_values("x86_64")
|
||||
|
||||
try:
|
||||
- self._backend.setKeepAlive(20, 1)
|
||||
+ self._backend.setKeepAlive(20, 10)
|
||||
except Exception, e:
|
||||
if (type(e) is not AttributeError and
|
||||
not util.is_error_nosupport(e)):
|
||||
try:
|
||||
- self._backend.setKeepAlive(20, 1)
|
||||
+ self._backend.setKeepAlive(20, 10)
|
||||
except Exception, e:
|
||||
if (type(e) is not AttributeError and
|
||||
not util.is_error_nosupport(e)):
|
||||
|
@ -1,8 +1,9 @@
|
||||
Enhancement adding Send Keys for mostly NetWare and also Windows
|
||||
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
|
||||
@@ -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+_Delete", ["Control_L", "Alt_L", "Delete"])
|
||||
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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/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
|
||||
os.path.exists("/usr/bin/qemu-kvm") or
|
||||
- os.path.exists("/usr/bin/kvm") or
|
||||
+ os.path.exists("/usr/bin/qemu-system-x86_64") or
|
||||
os.path.exists("/usr/libexec/qemu-kvm")):
|
||||
if always_system or os.geteuid() == 0:
|
||||
return "qemu:///system"
|
||||
os.path.exists("/usr/libexec/qemu-kvm") or
|
||||
glob.glob("/usr/bin/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.1.0/virtManager/packageutils.py
|
||||
@@ -149,8 +149,8 @@ def start_libvirtd():
|
||||
--- virt-manager-1.2.0.orig/virtManager/packageutils.py
|
||||
+++ virt-manager-1.2.0/virtManager/packageutils.py
|
||||
@@ -154,8 +154,8 @@ def start_libvirtd():
|
||||
logging.debug("libvirtd not running, asking system-config-services "
|
||||
"to start it")
|
||||
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
|
||||
===================================================================
|
||||
--- 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:
|
||||
return
|
||||
logging.debug("About to connect to uris %s", uris)
|
||||
+ tryuri = vmmConnect.default_uri(always_system=True)
|
||||
+ tryuri = vmmConnect.default_uri()
|
||||
+ found_uri = None
|
||||
for uri in uris:
|
||||
+ # 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.1.0/setup.py
|
||||
@@ -303,8 +303,11 @@ class configure(Command):
|
||||
("pkgversion=", None, "user specified version-id"),
|
||||
--- virt-manager-1.2.0.orig/setup.py
|
||||
+++ virt-manager-1.2.0/setup.py
|
||||
@@ -280,8 +280,11 @@ class configure(Command):
|
||||
("prefix=", None, "installation prefix"),
|
||||
("qemu-user=", None,
|
||||
"user libvirt uses to launch qemu processes (default=root)"),
|
||||
- ("libvirt-package-names=", None,
|
||||
@ -16,9 +22,9 @@ Index: virt-manager-1.1.0/setup.py
|
||||
"first run. comma separated string (default=none)"),
|
||||
("kvm-package-names=", None,
|
||||
"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.pkgversion = None
|
||||
self.qemu_user = None
|
||||
- self.libvirt_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.askpass_package_names = None
|
||||
self.preferred_distros = None
|
||||
@@ -347,8 +351,10 @@ class configure(Command):
|
||||
template += "pkgversion = %s\n" % self.pkgversion
|
||||
@@ -322,8 +326,10 @@ class configure(Command):
|
||||
template += "prefix = %s\n" % self.prefix
|
||||
if self.qemu_user is not None:
|
||||
template += "default_qemu_user = %s\n" % self.qemu_user
|
||||
- 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:
|
||||
template += "hv_packages = %s\n" % self.kvm_package_names
|
||||
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.1.0/virtcli/cliconfig.py
|
||||
@@ -92,6 +92,7 @@ stable_defaults = bool(int(_get_param("s
|
||||
preferred_distros = _split_list(_get_param("preferred_distros", ""))
|
||||
hv_packages = _split_list(_get_param("hv_packages", ""))
|
||||
askpass_package = _split_list(_get_param("askpass_packages", ""))
|
||||
-libvirt_packages = _split_list(_get_param("libvirt_packages", ""))
|
||||
+libvirt_kvm_packages = _split_list(_get_param("libvirt_kvm_packages", ""))
|
||||
+libvirt_xen_packages = _split_list(_get_param("libvirt_xen_packages", ""))
|
||||
default_graphics = _get_param("default_graphics", "spice")
|
||||
with_bhyve = bool(int(_get_param("with_bhyve", "0")))
|
||||
Index: virt-manager-1.1.0/virtManager/config.py
|
||||
--- virt-manager-1.2.0.orig/virtcli/cliconfig.py
|
||||
+++ virt-manager-1.2.0/virtcli/cliconfig.py
|
||||
@@ -84,7 +84,8 @@ class _CLIConfig(object):
|
||||
_get_param("preferred_distros", ""))
|
||||
self.hv_packages = _split_list(_get_param("hv_packages", ""))
|
||||
self.askpass_package = _split_list(_get_param("askpass_packages", ""))
|
||||
- self.libvirt_packages = _split_list(_get_param("libvirt_packages", ""))
|
||||
+ self.libvirt_kvm_packages = _split_list(_get_param("libvirt_kvm_packages", ""))
|
||||
+ self.libvirt_xen_packages = _split_list(_get_param("libvirt_xen_packages", ""))
|
||||
self.default_graphics = _get_param("default_graphics", "spice")
|
||||
self.default_hvs = _split_list(_get_param("default_hvs", ""))
|
||||
|
||||
Index: virt-manager-1.2.0/virtManager/config.py
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtManager/config.py
|
||||
+++ virt-manager-1.1.0/virtManager/config.py
|
||||
@@ -158,7 +158,8 @@ class vmmConfig(object):
|
||||
self.stable_defaults = cliconfig.stable_defaults
|
||||
self.preferred_distros = cliconfig.preferred_distros
|
||||
self.hv_packages = cliconfig.hv_packages
|
||||
- self.libvirt_packages = cliconfig.libvirt_packages
|
||||
+ self.libvirt_kvm_packages = cliconfig.libvirt_kvm_packages
|
||||
+ self.libvirt_xen_packages = cliconfig.libvirt_xen_packages
|
||||
self.askpass_package = cliconfig.askpass_package
|
||||
self.default_graphics_from_config = cliconfig.default_graphics
|
||||
self.with_bhyve = cliconfig.with_bhyve
|
||||
Index: virt-manager-1.1.0/virtManager/engine.py
|
||||
--- virt-manager-1.2.0.orig/virtManager/config.py
|
||||
+++ virt-manager-1.2.0/virtManager/config.py
|
||||
@@ -165,7 +165,8 @@ class vmmConfig(object):
|
||||
self.default_qemu_user = CLIConfig.default_qemu_user
|
||||
self.preferred_distros = CLIConfig.preferred_distros
|
||||
self.hv_packages = CLIConfig.hv_packages
|
||||
- self.libvirt_packages = CLIConfig.libvirt_packages
|
||||
+ self.libvirt_kvm_packages = CLIConfig.libvirt_kvm_packages
|
||||
+ self.libvirt_xen_packages = CLIConfig.libvirt_xen_packages
|
||||
self.askpass_package = CLIConfig.askpass_package
|
||||
self.default_graphics_from_config = CLIConfig.default_graphics
|
||||
self.default_hvs = CLIConfig.default_hvs
|
||||
Index: virt-manager-1.2.0/virtManager/engine.py
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.1.0/virtManager/engine.py
|
||||
@@ -194,21 +194,17 @@ class vmmEngine(vmmGObject):
|
||||
--- virt-manager-1.2.0.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.2.0/virtManager/engine.py
|
||||
@@ -193,21 +193,18 @@ class vmmEngine(vmmGObject):
|
||||
|
||||
ret = None
|
||||
try:
|
||||
- libvirt_packages = self.config.libvirt_packages
|
||||
- packages = self.config.hv_packages + libvirt_packages
|
||||
-
|
||||
+ tryuri = vmmConnect.default_uri(always_system=True)
|
||||
+ tryuri = vmmConnect.default_uri()
|
||||
+ if tryuri and tryuri.startswith('xen'):
|
||||
+ packages = self.config.libvirt_xen_packages
|
||||
+ else:
|
||||
+ packages = self.config.libvirt_kvm_packages + self.config.hv_packages
|
||||
|
||||
ret = packageutils.check_packagekit(manager, manager.err, packages)
|
||||
except:
|
||||
logging.exception("Error talking to PackageKit")
|
||||
@ -89,7 +96,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py
|
||||
- if ret:
|
||||
- tryuri = "qemu:///system"
|
||||
- else:
|
||||
- tryuri = vmmConnect.default_uri(always_system=True)
|
||||
- tryuri = vmmConnect.default_uri()
|
||||
-
|
||||
if tryuri is None:
|
||||
- manager.set_startup_error(msg)
|
||||
|
@ -1,10 +1,13 @@
|
||||
bnc#874594 - virt-manager allows issuing of start for xen domain twice, resulting in failure
|
||||
|
||||
Index: virt-manager-1.1.0/virtManager/details.py
|
||||
Reference: bnc#874594
|
||||
When the 'Power on virtual machine' button is double clicked,
|
||||
virt-manager issues two start commands to start the VM which
|
||||
results in a failure. There is code elsewhere to desensitize the
|
||||
button but this patch does it earlier.
|
||||
Index: virt-manager-1.2.0/virtManager/details.py
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtManager/details.py
|
||||
+++ virt-manager-1.1.0/virtManager/details.py
|
||||
@@ -1499,6 +1499,9 @@ class vmmDetails(vmmGObjectUI):
|
||||
--- virt-manager-1.2.0.orig/virtManager/details.py
|
||||
+++ virt-manager-1.2.0/virtManager/details.py
|
||||
@@ -1471,6 +1471,9 @@ class vmmDetails(vmmGObjectUI):
|
||||
self.widget("details-menu-usb-redirection").set_sensitive(can_usb)
|
||||
|
||||
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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtManager/engine.py
|
||||
@ -10,7 +17,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py
|
||||
import os
|
||||
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-show-domain", self._do_show_vm)
|
||||
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-about", self._do_show_about)
|
||||
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
|
||||
|
||||
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):
|
||||
if uri is None:
|
||||
@@ -927,7 +941,10 @@ class vmmEngine(vmmGObject):
|
||||
@@ -952,7 +966,10 @@ class vmmEngine(vmmGObject):
|
||||
|
||||
def show_domain_creator(self, uri):
|
||||
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
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
||||
+++ virt-manager-1.1.0/virtManager/create.py
|
||||
@@ -18,6 +18,7 @@
|
||||
# MA 02110-1301 USA.
|
||||
#
|
||||
|
||||
+import traceback
|
||||
import logging
|
||||
import threading
|
||||
import time
|
||||
@@ -368,7 +369,13 @@ class vmmCreate(vmmGObjectUI):
|
||||
@@ -359,7 +359,13 @@ class vmmCreate(vmmGObjectUI):
|
||||
self.widget("install-url-options").set_expanded(False)
|
||||
urlmodel = self.widget("install-url-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/virtinst/util.py
|
||||
@@ -23,12 +23,14 @@ import os
|
||||
@@ -23,11 +23,13 @@ import os
|
||||
import random
|
||||
import re
|
||||
import stat
|
||||
+import commands
|
||||
|
||||
import libvirt
|
||||
import libxml2
|
||||
|
||||
|
||||
_host_blktap_capable = None
|
||||
@ -44,10 +39,10 @@ Index: virt-manager-1.1.0/virtinst/util.py
|
||||
|
||||
|
||||
def listify(l):
|
||||
@@ -517,3 +519,96 @@ def convert_units(value, old_unit, new_u
|
||||
power = get_power(new_unit)
|
||||
|
||||
return in_bytes / pow(factor, power)
|
||||
@@ -462,3 +464,96 @@ def register_libvirt_error_handler():
|
||||
ignore = userdata
|
||||
ignore = err
|
||||
libvirt.registerErrorHandler(f=libvirt_callback, ctx=None)
|
||||
+
|
||||
+def getHostInstallSource():
|
||||
+ 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.1.0/virtManager/addhardware.py
|
||||
@@ -719,11 +719,14 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
--- virt-manager-1.2.0.orig/virtManager/addhardware.py
|
||||
+++ virt-manager-1.2.0/virtManager/addhardware.py
|
||||
@@ -762,11 +762,14 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
combo.set_model(model)
|
||||
uiutil.set_combo_text_column(combo, 0)
|
||||
uiutil.init_combo_text_column(combo, 0)
|
||||
|
||||
- formats = ["raw", "qcow2", "qed"]
|
||||
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.1.0/ui/manager.ui
|
||||
--- virt-manager-1.2.0.orig/ui/manager.ui
|
||||
+++ virt-manager-1.2.0/ui/manager.ui
|
||||
@@ -277,7 +277,7 @@
|
||||
<property name="can_focus">False</property>
|
||||
<property name="show_arrow">False</property>
|
||||
@ -19,11 +25,11 @@ Index: virt-manager-1.1.0/ui/manager.ui
|
||||
</packing>
|
||||
</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.1.0/virtManager/manager.py
|
||||
@@ -93,6 +93,7 @@ class vmmManager(vmmGObjectUI):
|
||||
--- virt-manager-1.2.0.orig/virtManager/manager.py
|
||||
+++ virt-manager-1.2.0/virtManager/manager.py
|
||||
@@ -92,6 +92,7 @@ class vmmManager(vmmGObjectUI):
|
||||
"action-show-host": (GObject.SignalFlags.RUN_FIRST, None, [str]),
|
||||
"action-show-preferences": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
"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-resume-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):
|
||||
@ -41,7 +47,7 @@ Index: virt-manager-1.1.0/virtManager/manager.py
|
||||
self.widget("vm-open").set_icon_name("icon_console")
|
||||
|
||||
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):
|
||||
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):
|
||||
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.1.0/virtManager/vmmenu.py
|
||||
--- virt-manager-1.2.0.orig/virtManager/vmmenu.py
|
||||
+++ virt-manager-1.2.0/virtManager/vmmenu.py
|
||||
@@ -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) #
|
||||
####################################################################
|
||||
|
||||
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.1.0/virtManager/config.py
|
||||
@@ -190,6 +190,13 @@ class vmmConfig(object):
|
||||
--- virt-manager-1.2.0.orig/virtManager/config.py
|
||||
+++ virt-manager-1.2.0/virtManager/config.py
|
||||
@@ -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):
|
||||
+ theme = Gtk.IconTheme.get_default()
|
||||
@ -102,10 +108,10 @@ Index: virt-manager-1.1.0/virtManager/config.py
|
||||
def get_appname(self):
|
||||
return self.appname
|
||||
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.1.0/virtManager/engine.py
|
||||
--- virt-manager-1.2.0.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.2.0/virtManager/engine.py
|
||||
@@ -27,6 +27,8 @@ import re
|
||||
import Queue
|
||||
import threading
|
||||
@ -113,9 +119,9 @@ Index: virt-manager-1.1.0/virtManager/engine.py
|
||||
+import os
|
||||
+from subprocess import *
|
||||
|
||||
from virtinst import util
|
||||
|
||||
@@ -74,6 +76,7 @@ class vmmEngine(vmmGObject):
|
||||
from . import packageutils
|
||||
from .about import vmmAbout
|
||||
@@ -72,6 +74,7 @@ class vmmEngine(vmmGObject):
|
||||
self.windowCreate = None
|
||||
self.windowManager = None
|
||||
self.windowMigrate = None
|
||||
@ -123,7 +129,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py
|
||||
|
||||
self.conns = {}
|
||||
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-preferences", self._do_show_preferences)
|
||||
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-host", self._do_show_host)
|
||||
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
|
||||
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):
|
||||
+ if uri is None:
|
||||
+ uri = vmmConnect.default_uri(always_system=True)
|
||||
+ uri = vmmConnect.default_uri()
|
||||
+ conn = self._lookup_conn(uri)
|
||||
+ do_remote = conn.is_remote()
|
||||
+ if self.windowCreate == None or do_remote != self.remote_install:
|
||||
|
Loading…
Reference in New Issue
Block a user