- bsc#933242 - virt-manager: summary=Error launching manager: list

index out of range 
  virtman-show-suse-install-repos.patch
- Add depedency on typelib(Libosinfo)

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=236
This commit is contained in:
Charles Arnold 2015-06-02 20:12:49 +00:00 committed by Git OBS Bridge
parent 53545deafa
commit d0da1c4472
4 changed files with 52 additions and 42 deletions

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Tue Jun 2 14:08:51 MDT 2015 - carnold@suse.com
- bsc#933242 - virt-manager: summary=Error launching manager: list
index out of range
virtman-show-suse-install-repos.patch
- Add depedency on typelib(Libosinfo)
------------------------------------------------------------------- -------------------------------------------------------------------
Wed May 20 13:14:27 MDT 2015 - carnold@suse.com Wed May 20 13:14:27 MDT 2015 - carnold@suse.com

View File

@ -1,7 +1,7 @@
# #
# spec file for package virt-manager # spec file for package virt-manager
# #
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -15,7 +15,6 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/ # Please submit bugfixes or comments via http://bugs.opensuse.org/
# #
%define with_guestfs 0 %define with_guestfs 0
%define askpass_package "openssh-askpass" %define askpass_package "openssh-askpass"
%define qemu_user "qemu" %define qemu_user "qemu"
@ -96,6 +95,7 @@ Requires: dbus-1-x11
Requires: dconf Requires: dconf
Requires: gtk3 Requires: gtk3
Requires: libosinfo >= 0.2.10 Requires: libosinfo >= 0.2.10
Requires: typelib(Libosinfo)
Requires: python-gconf Requires: python-gconf
Requires: virt-manager-common = %{verrel} Requires: virt-manager-common = %{verrel}
Requires: vm-install >= 0.5.6 Requires: vm-install >= 0.5.6

View File

@ -5,11 +5,11 @@ A fix for accessing nfs mounted media. A comment in the code states,
and carry the latter form around internally" and carry the latter form around internally"
We need the RFC version to work correctly whereas redhat's anaconda We need the RFC version to work correctly whereas redhat's anaconda
needs their own modified version. needs their own modified version.
Index: virt-manager-1.1.0/virtinst/util.py Index: virt-manager-1.2.0/virtinst/util.py
=================================================================== ===================================================================
--- virt-manager-1.1.0.orig/virtinst/util.py --- virt-manager-1.2.0.orig/virtinst/util.py
+++ virt-manager-1.1.0/virtinst/util.py +++ virt-manager-1.2.0/virtinst/util.py
@@ -557,3 +557,22 @@ def getInstallRepos(enabled_sources_only @@ -559,3 +559,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)
@ -32,10 +32,10 @@ Index: virt-manager-1.1.0/virtinst/util.py
+ +
+ return url + return url
+ +
Index: virt-manager-1.1.0/virtinst/distroinstaller.py Index: virt-manager-1.2.0/virtinst/distroinstaller.py
=================================================================== ===================================================================
--- virt-manager-1.1.0.orig/virtinst/distroinstaller.py --- virt-manager-1.2.0.orig/virtinst/distroinstaller.py
+++ virt-manager-1.1.0/virtinst/distroinstaller.py +++ virt-manager-1.2.0/virtinst/distroinstaller.py
@@ -51,6 +51,8 @@ def _sanitize_url(url): @@ -51,6 +51,8 @@ def _sanitize_url(url):
""" """
Do nothing for http or ftp, but make sure nfs is in the expected format Do nothing for http or ftp, but make sure nfs is in the expected format
@ -45,10 +45,10 @@ Index: virt-manager-1.1.0/virtinst/distroinstaller.py
if url.startswith("nfs://"): if url.startswith("nfs://"):
# Convert RFC compliant NFS nfs://server/path/to/distro # Convert RFC compliant NFS nfs://server/path/to/distro
# to what mount/anaconda expect nfs:server:/path/to/distro # to what mount/anaconda expect nfs:server:/path/to/distro
Index: virt-manager-1.1.0/virtinst/urlfetcher.py Index: virt-manager-1.2.0/virtinst/urlfetcher.py
=================================================================== ===================================================================
--- virt-manager-1.1.0.orig/virtinst/urlfetcher.py --- virt-manager-1.2.0.orig/virtinst/urlfetcher.py
+++ virt-manager-1.1.0/virtinst/urlfetcher.py +++ virt-manager-1.2.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

View File

@ -2,10 +2,10 @@ Enhancement that gets the hosts installation location from
install.inf and also collects the repos provided by zypper. install.inf and also collects the repos provided by zypper.
These locations are then presented as potential installation These locations are then presented as potential installation
locations when createing a VM. locations when createing a VM.
Index: virt-manager-1.1.0/virtManager/create.py 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
@@ -359,7 +359,13 @@ class vmmCreate(vmmGObjectUI): @@ -359,7 +359,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()
@ -21,15 +21,16 @@ Index: virt-manager-1.1.0/virtManager/create.py
self.populate_media_model(ksmodel, self.config.get_kickstart_urls()) self.populate_media_model(ksmodel, self.config.get_kickstart_urls())
self.set_distro_labels("-", "-", force=True) self.set_distro_labels("-", "-", force=True)
Index: virt-manager-1.1.0/virtinst/util.py Index: virt-manager-1.2.0/virtinst/util.py
=================================================================== ===================================================================
--- virt-manager-1.1.0.orig/virtinst/util.py --- virt-manager-1.2.0.orig/virtinst/util.py
+++ virt-manager-1.1.0/virtinst/util.py +++ virt-manager-1.2.0/virtinst/util.py
@@ -23,11 +23,13 @@ import os @@ -23,11 +23,14 @@ import os
import random import random
import re import re
import stat import stat
+import commands +import subprocess
+from subprocess import Popen, PIPE
import libvirt import libvirt
@ -39,7 +40,7 @@ Index: virt-manager-1.1.0/virtinst/util.py
def listify(l): def listify(l):
@@ -462,3 +464,96 @@ def register_libvirt_error_handler(): @@ -462,3 +465,97 @@ def register_libvirt_error_handler():
ignore = userdata ignore = userdata
ignore = err ignore = err
libvirt.registerErrorHandler(f=libvirt_callback, ctx=None) libvirt.registerErrorHandler(f=libvirt_callback, ctx=None)
@ -102,35 +103,36 @@ Index: virt-manager-1.1.0/virtinst/util.py
+ if os.geteuid() != 0: + if os.geteuid() != 0:
+ return (0, []) + return (0, [])
+ dom0_inst_source = getHostInstallSource() + dom0_inst_source = getHostInstallSource()
+ locations = commands.getoutput("/usr/bin/zypper lr -u | awk -F'|' '{ print $6 }'") + try:
+ locations = locations[(locations.rfind('URI')):].split() + if enabled_sources_only is True:
+ index = 0 + cmd = ['/usr/bin/zypper', 'lr', '-u', '-E']
+ else:
+ cmd = ['/usr/bin/zypper', 'lr', '-u']
+ p = subprocess.Popen(cmd, stdout=PIPE, stderr=PIPE)
+ stdout, stderr = p.communicate()
+ zypper_output = stdout
+ except:
+ if dom0_inst_source is None:
+ dom0_inst_source = []
+ return (0, dom0_inst_source)
+
+ zypper_list = zypper_output.split("\n")
+ zypper_header = [x.strip(' ') for x in zypper_list[0].split("|")]
+ uri_index = zypper_header.index("URI")
+
+ index_dom0 = -1 + index_dom0 = -1
+ number_of_sources = 0 + number_of_sources = 0
+ zypper_output = [] + zypper_output = []
+ # If we only want to list enabled sources + for repo in zypper_list:
+ if enabled_sources_only == True: + repo = [x.strip(' ') for x in repo.split("|")]
+ enabled = commands.getoutput("/usr/bin/zypper lr -u | awk -F'|' '{ print $4 }'") + if len(repo) >= uri_index:
+ enabled = enabled[(enabled.rfind('Enabled')):].split() + str = repo[uri_index]
+ for e in enabled:
+ if e == "Yes":
+ str = locations[index]
+ if str.startswith('ftp://') or str.startswith('http://') or str.startswith('nfs://') or str.startswith('smb://'):
+ zypper_output.append(str)
+ if dom0_inst_source is not None and str == dom0_inst_source:
+ index_dom0 = number_of_sources
+ number_of_sources += 1
+ index += 1
+ else:
+ locations.sort()
+ for l in locations:
+ str = locations[index]
+ if str.startswith('ftp://') or str.startswith('http://') or str.startswith('nfs://') or str.startswith('smb://'): + if str.startswith('ftp://') or str.startswith('http://') or str.startswith('nfs://') or str.startswith('smb://'):
+ zypper_output.append(str) + zypper_output.append(str)
+ if dom0_inst_source is not None and str == dom0_inst_source: + if dom0_inst_source is not None and str == dom0_inst_source:
+ index_dom0 = number_of_sources + index_dom0 = number_of_sources
+ number_of_sources += 1 + number_of_sources += 1
+ index += 1 +
+ if index_dom0 == -1 and dom0_inst_source: + if index_dom0 == -1 and dom0_inst_source:
+ index_dom0 = 0 + index_dom0 = 0
+ zypper_output.insert(0, dom0_inst_source) + zypper_output.insert(0, dom0_inst_source)