- 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

View File

@ -1,7 +1,7 @@
#
# 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
# remain the property of their copyright owners, unless otherwise agreed
@ -15,7 +15,6 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define with_guestfs 0
%define askpass_package "openssh-askpass"
%define qemu_user "qemu"
@ -96,6 +95,7 @@ Requires: dbus-1-x11
Requires: dconf
Requires: gtk3
Requires: libosinfo >= 0.2.10
Requires: typelib(Libosinfo)
Requires: python-gconf
Requires: virt-manager-common = %{verrel}
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"
We need the RFC version to work correctly whereas redhat's anaconda
needs their own modified version.
Index: virt-manager-1.1.0/virtinst/util.py
Index: virt-manager-1.2.0/virtinst/util.py
===================================================================
--- virt-manager-1.1.0.orig/virtinst/util.py
+++ virt-manager-1.1.0/virtinst/util.py
@@ -557,3 +557,22 @@ def getInstallRepos(enabled_sources_only
--- virt-manager-1.2.0.orig/virtinst/util.py
+++ virt-manager-1.2.0/virtinst/util.py
@@ -559,3 +559,22 @@ def getInstallRepos(enabled_sources_only
zypper_output.insert(0, dom0_inst_source)
return (index_dom0, zypper_output)
@ -32,10 +32,10 @@ Index: virt-manager-1.1.0/virtinst/util.py
+
+ 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.1.0/virtinst/distroinstaller.py
--- virt-manager-1.2.0.orig/virtinst/distroinstaller.py
+++ virt-manager-1.2.0/virtinst/distroinstaller.py
@@ -51,6 +51,8 @@ def _sanitize_url(url):
"""
Do nothing for http or ftp, but make sure nfs is in the expected format
@ -45,10 +45,10 @@ Index: virt-manager-1.1.0/virtinst/distroinstaller.py
if url.startswith("nfs://"):
# Convert RFC compliant NFS nfs://server/path/to/distro
# to what mount/anaconda expect nfs:server:/path/to/distro
Index: virt-manager-1.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.1.0/virtinst/urlfetcher.py
--- virt-manager-1.2.0.orig/virtinst/urlfetcher.py
+++ virt-manager-1.2.0/virtinst/urlfetcher.py
@@ -33,6 +33,7 @@ import urlparse
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.
These locations are then presented as potential installation
locations when createing a VM.
Index: virt-manager-1.1.0/virtManager/create.py
Index: virt-manager-1.2.0/virtManager/create.py
===================================================================
--- virt-manager-1.1.0.orig/virtManager/create.py
+++ virt-manager-1.1.0/virtManager/create.py
--- virt-manager-1.2.0.orig/virtManager/create.py
+++ virt-manager-1.2.0/virtManager/create.py
@@ -359,7 +359,13 @@ class vmmCreate(vmmGObjectUI):
self.widget("install-url-options").set_expanded(False)
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.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.1.0/virtinst/util.py
@@ -23,11 +23,13 @@ import os
--- virt-manager-1.2.0.orig/virtinst/util.py
+++ virt-manager-1.2.0/virtinst/util.py
@@ -23,11 +23,14 @@ import os
import random
import re
import stat
+import commands
+import subprocess
+from subprocess import Popen, PIPE
import libvirt
@ -39,7 +40,7 @@ Index: virt-manager-1.1.0/virtinst/util.py
def listify(l):
@@ -462,3 +464,96 @@ def register_libvirt_error_handler():
@@ -462,3 +465,97 @@ def register_libvirt_error_handler():
ignore = userdata
ignore = err
libvirt.registerErrorHandler(f=libvirt_callback, ctx=None)
@ -102,35 +103,36 @@ Index: virt-manager-1.1.0/virtinst/util.py
+ if os.geteuid() != 0:
+ return (0, [])
+ dom0_inst_source = getHostInstallSource()
+ locations = commands.getoutput("/usr/bin/zypper lr -u | awk -F'|' '{ print $6 }'")
+ locations = locations[(locations.rfind('URI')):].split()
+ index = 0
+ try:
+ if enabled_sources_only is True:
+ 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
+ number_of_sources = 0
+ zypper_output = []
+ # If we only want to list enabled sources
+ if enabled_sources_only == True:
+ enabled = commands.getoutput("/usr/bin/zypper lr -u | awk -F'|' '{ print $4 }'")
+ enabled = enabled[(enabled.rfind('Enabled')):].split()
+ 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]
+ for repo in zypper_list:
+ repo = [x.strip(' ') for x in repo.split("|")]
+ if len(repo) >= uri_index:
+ str = repo[uri_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
+
+ if index_dom0 == -1 and dom0_inst_source:
+ index_dom0 = 0
+ zypper_output.insert(0, dom0_inst_source)