Accepting request 259885 from Virtualization
Automatic submission by obs-autosubmit OBS-URL: https://build.opensuse.org/request/show/259885 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/virt-manager?expand=0&rev=113
This commit is contained in:
commit
af0149f069
@ -1,88 +0,0 @@
|
||||
Subject: virt-manager: enable media detection for CD/ISO images
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Tue Mar 25 14:31:08 2014 +0100
|
||||
Date: Wed Mar 26 16:12:13 2014 +0100:
|
||||
Git: 6b5171031e7e688fd9c1c44aeec599dcb1a9e6cd
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.0.1/virtManager/create.py
|
||||
@@ -132,7 +132,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
"on_install_url_box_changed": self.url_box_changed,
|
||||
"on_install_local_cdrom_toggled": self.toggle_local_cdrom,
|
||||
"on_install_local_cdrom_combo_changed": self.detect_media_os,
|
||||
- "on_install_local_box_changed": self.detect_media_os,
|
||||
+ "on_install_local_box_changed": self.local_box_changed,
|
||||
"on_install_local_browse_clicked": self.browse_iso,
|
||||
"on_install_import_browse_clicked": self.browse_import,
|
||||
"on_install_app_browse_clicked": self.browse_app,
|
||||
@@ -543,6 +543,11 @@ class vmmCreate(vmmGObjectUI):
|
||||
|
||||
self.mediacombo = vmmMediaCombo(self.conn, self.builder, self.topwin,
|
||||
MEDIA_CDROM)
|
||||
+ def mediacombo_changed(src):
|
||||
+ ignore = src
|
||||
+ self.mediaDetected = False
|
||||
+ self.detect_media_os()
|
||||
+ self.mediacombo.combo.connect("changed", mediacombo_changed)
|
||||
self.mediacombo.reset_state()
|
||||
self.widget("install-local-cdrom-align").add(
|
||||
self.mediacombo.top_box)
|
||||
@@ -1109,16 +1114,22 @@ class vmmCreate(vmmGObjectUI):
|
||||
|
||||
self.change_caps(self.capsguest.os_type, arch)
|
||||
|
||||
- def url_box_changed(self, ignore):
|
||||
+ def media_box_changed(self, widget):
|
||||
self.mediaDetected = False
|
||||
|
||||
- # If the url_entry has focus, don't fire detect_media_os, it means
|
||||
+ # If the widget has focus, don't fire detect_media_os, it means
|
||||
# the user is probably typing
|
||||
- if self.widget("install-url-box").get_child().has_focus():
|
||||
+ if self.widget(widget).get_child().has_focus():
|
||||
return
|
||||
|
||||
self.detect_media_os()
|
||||
|
||||
+ def url_box_changed(self, ignore):
|
||||
+ self.media_box_changed("install-url-box")
|
||||
+
|
||||
+ def local_box_changed(self, ignore):
|
||||
+ self.media_box_changed("install-local-box")
|
||||
+
|
||||
def should_detect_media(self):
|
||||
return (self.is_detect_active() and not self.mediaDetected)
|
||||
|
||||
@@ -1182,6 +1193,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
is_active = src.get_active()
|
||||
if is_active and self.mediacombo.get_path():
|
||||
# Local CDROM was selected with media preset, detect distro
|
||||
+ self.mediaDetected = False
|
||||
self.detect_media_os()
|
||||
|
||||
self.widget("install-local-cdrom-align").set_sensitive(is_active)
|
||||
@@ -1190,6 +1202,8 @@ class vmmCreate(vmmGObjectUI):
|
||||
uselocal = src.get_active()
|
||||
self.widget("install-local-box").set_sensitive(uselocal)
|
||||
self.widget("install-local-browse").set_sensitive(uselocal)
|
||||
+ self.mediaDetected = False
|
||||
+ self.detect_media_os()
|
||||
|
||||
def detect_visibility_changed(self, src, ignore=None):
|
||||
is_visible = src.get_visible()
|
||||
@@ -1241,11 +1255,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
INSTALL_PAGE_CONTAINER_OS]
|
||||
osbox.set_visible(iscontainer)
|
||||
|
||||
- # Detection only works/ is valid for URL,
|
||||
- # FIXME: Also works for CDROM if running as root (since we need to
|
||||
- # mount the iso/cdrom), but we should probably make this work for
|
||||
- # more distros (like windows) before we enable it
|
||||
- if (instpage == INSTALL_PAGE_URL):
|
||||
+ if instpage in (INSTALL_PAGE_ISO, INSTALL_PAGE_URL):
|
||||
detectbox.show()
|
||||
else:
|
||||
detectbox.hide()
|
@ -1,61 +0,0 @@
|
||||
Subject: virtManager: hide "Remove Hardware" for non-devices
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Thu Mar 27 12:40:42 2014 +0100
|
||||
Date: Thu Mar 27 13:50:06 2014 +0100:
|
||||
Git: 37eecb215d137ffb6e98f36adfa37f96220d7287
|
||||
|
||||
The menu item "Remove Hardware" in the Overview window is valid only
|
||||
when a hardware device is selected, hide it in any other case.
|
||||
|
||||
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1081373
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
diff --git a/virtManager/details.py b/virtManager/details.py
|
||||
index c1833ae..8c72efa 100644
|
||||
--- a/virtManager/details.py
|
||||
+++ b/virtManager/details.py
|
||||
@@ -530,6 +530,7 @@ class vmmDetails(vmmGObjectUI):
|
||||
|
||||
self.oldhwkey = None
|
||||
self.addhwmenu = None
|
||||
+ self._addhwmenuitems = None
|
||||
self.keycombo_menu = None
|
||||
self.init_menus()
|
||||
self.init_details()
|
||||
@@ -706,6 +707,7 @@ class vmmDetails(vmmGObjectUI):
|
||||
self.vm = None
|
||||
self.conn = None
|
||||
self.addhwmenu = None
|
||||
+ self._addhwmenuitems = None
|
||||
|
||||
self.gfxdetails.cleanup()
|
||||
self.gfxdetails = None
|
||||
@@ -801,8 +803,9 @@ class vmmDetails(vmmGObjectUI):
|
||||
rmHW.show()
|
||||
rmHW.connect("activate", self.remove_xml_dev)
|
||||
|
||||
- self.addhwmenu.add(addHW)
|
||||
- self.addhwmenu.add(rmHW)
|
||||
+ self._addhwmenuitems = {"add" : addHW, "remove" : rmHW}
|
||||
+ for i in self._addhwmenuitems.values():
|
||||
+ self.addhwmenu.add(i)
|
||||
|
||||
# Don't allowing changing network/disks for Dom0
|
||||
dom0 = self.vm.is_management_domain()
|
||||
@@ -1075,6 +1078,16 @@ class vmmDetails(vmmGObjectUI):
|
||||
if event.button != 3:
|
||||
return
|
||||
|
||||
+ devobj = self.get_hw_selection(HW_LIST_COL_DEVICE)
|
||||
+ if not devobj:
|
||||
+ return
|
||||
+
|
||||
+ rmdev = self._addhwmenuitems["remove"]
|
||||
+ if hasattr(devobj, "virtual_device_type"):
|
||||
+ rmdev.show()
|
||||
+ else:
|
||||
+ rmdev.hide()
|
||||
+
|
||||
self.addhwmenu.popup(None, None, None, None, 0, event.time)
|
||||
|
||||
def control_fullscreen(self, src):
|
@ -1,28 +0,0 @@
|
||||
Subject: createinterface: set right ip address for ipv6
|
||||
From: Chen Hanxiao chenhanxiao@cn.fujitsu.com Thu Mar 27 22:01:21 2014 +0800
|
||||
Date: Thu Mar 27 22:01:21 2014 +0800:
|
||||
Git: 58d8795b27b792bbbc89b93ac9333253df205943
|
||||
|
||||
We use v4_addr for building ipv6 addr.
|
||||
This patch will use right ip address for ipv6.
|
||||
|
||||
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
|
||||
|
||||
diff --git a/virtManager/createinterface.py b/virtManager/createinterface.py
|
||||
index 77fb6e1..11fc9b2 100644
|
||||
--- a/virtManager/createinterface.py
|
||||
+++ b/virtManager/createinterface.py
|
||||
@@ -818,9 +818,10 @@ class vmmCreateInterface(vmmGObjectUI):
|
||||
if not ipv6.dhcp:
|
||||
if v6_gate:
|
||||
ipv6.gateway = v6_gate
|
||||
- addr, prefix = build_ip(v4_addr)
|
||||
- if addr:
|
||||
- ipv6.add_ip(addr, prefix)
|
||||
+ for v6_addr in v6_addrlist:
|
||||
+ addr, prefix = build_ip(v6_addr)
|
||||
+ if addr:
|
||||
+ ipv6.add_ip(addr, prefix)
|
||||
|
||||
return [is_manual, copy_name, ipv4, ipv6, proto_xml]
|
||||
|
@ -1,31 +0,0 @@
|
||||
Subject: createinterface: raise value error when no ip addr set
|
||||
From: Chen Hanxiao chenhanxiao@cn.fujitsu.com Sun Mar 30 07:47:22 2014 +0800
|
||||
Date: Sun Mar 30 07:47:57 2014 +0800:
|
||||
Git: 119025e1ef5e6b47d634c1e05d9143f0092da5c2
|
||||
|
||||
We could set blank ip address
|
||||
|
||||
IP setting->Configure->Mode (static), then press "OK".
|
||||
|
||||
And libvirt will throw an error not very helpful:
|
||||
Error creating interface: 'Could not define interface:
|
||||
XML error: could not get interface XML description:
|
||||
XML invalid - Element protocol failed to validate attributes.
|
||||
|
||||
This patch will forbid setting an empty ip address.
|
||||
|
||||
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
|
||||
|
||||
diff --git a/virtManager/createinterface.py b/virtManager/createinterface.py
|
||||
index 11fc9b2..4588bba 100644
|
||||
--- a/virtManager/createinterface.py
|
||||
+++ b/virtManager/createinterface.py
|
||||
@@ -764,7 +764,7 @@ class vmmCreateInterface(vmmGObjectUI):
|
||||
def build_ip_info(self):
|
||||
def build_ip(addr_str):
|
||||
if not addr_str:
|
||||
- return None, None
|
||||
+ raise ValueError(_("Please enter an IP address"))
|
||||
ret = addr_str.rsplit("/", 1)
|
||||
address = ret[0]
|
||||
prefix = None
|
@ -1,31 +0,0 @@
|
||||
Subject: gfxdetails: Show port number for active autoport VM (bz 1081614)
|
||||
From: Cole Robinson crobinso@redhat.com Sun Mar 30 17:34:26 2014 -0400
|
||||
Date: Sun Mar 30 17:34:26 2014 -0400:
|
||||
Git: 7f802e287c21a6395a0e9f5435c1eab78b2ce6b5
|
||||
|
||||
|
||||
diff --git a/virtManager/gfxdetails.py b/virtManager/gfxdetails.py
|
||||
index 0141f7e..d6865a8 100644
|
||||
--- a/virtManager/gfxdetails.py
|
||||
+++ b/virtManager/gfxdetails.py
|
||||
@@ -154,15 +154,20 @@ class vmmGraphicsDetails(vmmGObjectUI):
|
||||
auto = self.widget(basename + "-auto")
|
||||
widget = self.widget(basename)
|
||||
auto.set_inconsistent(False)
|
||||
+ label = auto.get_label().split(" (")[0]
|
||||
|
||||
if val == -1 or gfx.autoport:
|
||||
auto.set_active(True)
|
||||
+ if val and val != -1:
|
||||
+ label += " (%s %s)" % (_("Port"), val)
|
||||
elif val is None:
|
||||
auto.set_inconsistent(True)
|
||||
else:
|
||||
auto.set_active(False)
|
||||
widget.set_value(val)
|
||||
|
||||
+ auto.set_label(label)
|
||||
+
|
||||
gtype = gfx.type
|
||||
is_vnc = (gtype == "vnc")
|
||||
is_sdl = (gtype == "sdl")
|
@ -1,62 +0,0 @@
|
||||
Subject: interface: check ip address format
|
||||
From: Chen Hanxiao chenhanxiao@cn.fujitsu.com Mon Mar 31 22:25:36 2014 +0800
|
||||
Date: Mon Mar 31 22:25:36 2014 +0800:
|
||||
Git: 89c45af26deca41cba5dffcc4cae5e653fedc89a
|
||||
|
||||
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
|
||||
|
||||
Index: virt-manager-1.0.1/tests/xmlparse-xml/interface-test-bridge-ip-out.xml
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/tests/xmlparse-xml/interface-test-bridge-ip-out.xml
|
||||
+++ virt-manager-1.0.1/tests/xmlparse-xml/interface-test-bridge-ip-out.xml
|
||||
@@ -15,7 +15,7 @@
|
||||
</protocol>
|
||||
<protocol family="ipv6">
|
||||
<ip address="fe99::215:58ff:fe6e:5" prefix="32"/>
|
||||
- <ip address="foobar" prefix="38"/>
|
||||
+ <ip address="2002::" prefix="38"/>
|
||||
<route gateway="1.2.3.4"/>
|
||||
</protocol>
|
||||
</interface>
|
||||
Index: virt-manager-1.0.1/tests/xmlparse.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/tests/xmlparse.py
|
||||
+++ virt-manager-1.0.1/tests/xmlparse.py
|
||||
@@ -958,7 +958,7 @@ class XMLParseTest(unittest.TestCase):
|
||||
check("autoconf", True, False)
|
||||
|
||||
check = self._make_checker(iface.protocols[1].ips[1])
|
||||
- check("address", "fe80::215:58ff:fe6e:5", "foobar")
|
||||
+ check("address", "fe80::215:58ff:fe6e:5", "2002::")
|
||||
check("prefix", 64, 38)
|
||||
|
||||
# Remove a child interface, verify it's data remains intact
|
||||
Index: virt-manager-1.0.1/virtinst/interface.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/interface.py
|
||||
+++ virt-manager-1.0.1/virtinst/interface.py
|
||||
@@ -23,6 +23,7 @@ Classes for building and installing libv
|
||||
import logging
|
||||
|
||||
import libvirt
|
||||
+import ipaddr
|
||||
|
||||
from virtinst import util
|
||||
from virtinst.xmlbuilder import XMLBuilder, XMLChildProperty, XMLProperty
|
||||
@@ -32,7 +33,15 @@ class _IPAddress(XMLBuilder):
|
||||
_XML_PROP_ORDER = ["address", "prefix"]
|
||||
_XML_ROOT_NAME = "ip"
|
||||
|
||||
- address = XMLProperty("./@address")
|
||||
+ ######################
|
||||
+ # Validation helpers #
|
||||
+ ######################
|
||||
+
|
||||
+ def _validate_ipaddr(self, addr):
|
||||
+ ipaddr.IPAddress(addr)
|
||||
+ return addr
|
||||
+
|
||||
+ address = XMLProperty("./@address", validate_cb=_validate_ipaddr)
|
||||
prefix = XMLProperty("./@prefix", is_int=True)
|
||||
|
||||
|
@ -1,108 +0,0 @@
|
||||
Subject: connection: Hook into domain balloon event (bz 1081424)
|
||||
From: Cole Robinson crobinso@redhat.com Mon Mar 31 12:43:49 2014 -0400
|
||||
Date: Mon Mar 31 12:43:49 2014 -0400:
|
||||
Git: adf3545671b155ca37c82bff0ab96d0c038ffee8
|
||||
|
||||
|
||||
diff --git a/virtManager/connection.py b/virtManager/connection.py
|
||||
index bc8a81f..27d5bd9 100644
|
||||
--- a/virtManager/connection.py
|
||||
+++ b/virtManager/connection.py
|
||||
@@ -99,9 +99,9 @@ class vmmConnection(vmmGObject):
|
||||
self._nodedev_capable = None
|
||||
|
||||
self.using_domain_events = False
|
||||
- self._domain_cb_id = None
|
||||
+ self._domain_cb_ids = []
|
||||
self.using_network_events = False
|
||||
- self._network_cb_id = None
|
||||
+ self._network_cb_ids = []
|
||||
|
||||
self._xml_flags = {}
|
||||
|
||||
@@ -840,6 +840,16 @@ class vmmConnection(vmmGObject):
|
||||
# event driven setup is hard, so we end up doing more polling than
|
||||
# necessary on most events.
|
||||
|
||||
+ def _domain_xml_misc_event(self, conn, domain, *args):
|
||||
+ # Just trigger a domain XML refresh for hotplug type events
|
||||
+ ignore = conn
|
||||
+ ignore = args
|
||||
+
|
||||
+ obj = self.vms.get(domain.UUIDString(), None)
|
||||
+ if not obj:
|
||||
+ return
|
||||
+ self.idle_add(obj.refresh_xml, True)
|
||||
+
|
||||
def _domain_lifecycle_event(self, conn, domain, event, reason, userdata):
|
||||
ignore = conn
|
||||
ignore = reason
|
||||
@@ -872,19 +882,41 @@ class vmmConnection(vmmGObject):
|
||||
|
||||
def _add_conn_events(self):
|
||||
try:
|
||||
- self._domain_cb_id = self.get_backend().domainEventRegisterAny(
|
||||
+ self._domain_cb_ids.append(
|
||||
+ self.get_backend().domainEventRegisterAny(
|
||||
None, libvirt.VIR_DOMAIN_EVENT_ID_LIFECYCLE,
|
||||
- self._domain_lifecycle_event, None)
|
||||
+ self._domain_lifecycle_event, None))
|
||||
self.using_domain_events = True
|
||||
logging.debug("Using domain events")
|
||||
except Exception, e:
|
||||
self.using_domain_events = False
|
||||
logging.debug("Error registering domain events: %s", e)
|
||||
|
||||
+ def _add_domain_xml_event(eventid, typestr):
|
||||
+ if not self.using_domain_events:
|
||||
+ return
|
||||
+ try:
|
||||
+ self._domain_cb_ids.append(
|
||||
+ self.get_backend().domainEventRegisterAny(
|
||||
+ None, eventid, self._domain_xml_misc_event, None))
|
||||
+ except Exception, e:
|
||||
+ logging.debug("Error registering domain %s event: %s",
|
||||
+ typestr, e)
|
||||
+
|
||||
+ _add_domain_xml_event(
|
||||
+ getattr(libvirt, "VIR_DOMAIN_EVENT_ID_BALLOON_CHANGE", 13),
|
||||
+ "balloon")
|
||||
+ _add_domain_xml_event(
|
||||
+ getattr(libvirt, "VIR_DOMAIN_EVENT_ID_TRAY_CHANGE", 10), "tray")
|
||||
+ _add_domain_xml_event(
|
||||
+ getattr(libvirt, "VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED", 15),
|
||||
+ "device removed")
|
||||
+
|
||||
try:
|
||||
eventid = getattr(libvirt, "VIR_NETWORK_EVENT_ID_LIFECYCLE", 0)
|
||||
- self._network_cb_id = self.get_backend().networkEventRegisterAny(
|
||||
- None, eventid, self._network_lifecycle_event, None)
|
||||
+ self._network_cb_ids.append(
|
||||
+ self.get_backend().networkEventRegisterAny(
|
||||
+ None, eventid, self._network_lifecycle_event, None))
|
||||
self.using_network_events = True
|
||||
logging.debug("Using network events")
|
||||
except Exception, e:
|
||||
@@ -936,15 +968,13 @@ class vmmConnection(vmmGObject):
|
||||
|
||||
try:
|
||||
if not self._backend.is_closed():
|
||||
- if self._domain_cb_id is not None:
|
||||
- self._backend.domainEventDeregisterAny(
|
||||
- self._domain_cb_id)
|
||||
- self._domain_cb_id = None
|
||||
-
|
||||
- if self._network_cb_id is not None:
|
||||
- self._backend.networkEventDeregisterAny(
|
||||
- self._network_cb_id)
|
||||
- self._network_cb_id = None
|
||||
+ for eid in self._domain_cb_ids:
|
||||
+ self._backend.domainEventDeregisterAny(eid)
|
||||
+ self._domain_cb_ids = []
|
||||
+
|
||||
+ for eid in self._network_cb_ids:
|
||||
+ self._backend.networkEventDeregisterAny(eid)
|
||||
+ self._network_cb_ids = []
|
||||
except:
|
||||
logging.debug("Failed to deregister events in conn cleanup",
|
||||
exc_info=True)
|
@ -1,37 +0,0 @@
|
||||
Subject: details: Fix showing vcpus values in 'customize' dialog (bz 1083903)
|
||||
From: Cole Robinson crobinso@redhat.com Thu Apr 3 10:30:37 2014 -0400
|
||||
Date: Thu Apr 3 10:30:37 2014 -0400:
|
||||
Git: ee6a541167b787a84cc5c7e553089cbd5ab9ada3
|
||||
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/details.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/details.py
|
||||
+++ virt-manager-1.0.1/virtManager/details.py
|
||||
@@ -2546,6 +2546,12 @@ class vmmDetails(vmmGObjectUI):
|
||||
self.vm.network_traffic_vector())
|
||||
|
||||
def refresh_config_cpu(self):
|
||||
+ # This bit needs to come first, since CPU values can be affected
|
||||
+ # by whether topology is enabled
|
||||
+ cpu = self.vm.get_cpu_config()
|
||||
+ show_top = bool(cpu.sockets or cpu.cores or cpu.threads)
|
||||
+ self.widget("cpu-topology-enable").set_active(show_top)
|
||||
+
|
||||
conn = self.vm.conn
|
||||
host_active_count = conn.host_active_processor_count()
|
||||
maxvcpus = self.vm.vcpu_max_count()
|
||||
@@ -2563,13 +2569,10 @@ class vmmDetails(vmmGObjectUI):
|
||||
self.widget("config-vcpus-warn-box").set_visible(warn)
|
||||
|
||||
# CPU model config
|
||||
- cpu = self.vm.get_cpu_config()
|
||||
- show_top = bool(cpu.sockets or cpu.cores or cpu.threads)
|
||||
sockets = cpu.sockets or 1
|
||||
cores = cpu.cores or 1
|
||||
threads = cpu.threads or 1
|
||||
|
||||
- self.widget("cpu-topology-enable").set_active(show_top)
|
||||
self.widget("cpu-sockets").set_value(sockets)
|
||||
self.widget("cpu-cores").set_value(cores)
|
||||
self.widget("cpu-threads").set_value(threads)
|
@ -1,293 +0,0 @@
|
||||
Subject: details: Fix changing graphics type (bz 1083903)
|
||||
From: Cole Robinson crobinso@redhat.com Thu Apr 3 10:53:54 2014 -0400
|
||||
Date: Thu Apr 3 10:53:54 2014 -0400:
|
||||
Git: 932e6e00bb08647800a62e59f61c8adee9c5de59
|
||||
|
||||
And clean up the API usage to avoid these types of issues in the future.
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/addhardware.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/addhardware.py
|
||||
+++ virt-manager-1.0.1/virtManager/addhardware.py
|
||||
@@ -905,12 +905,12 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
|
||||
# Input getters
|
||||
def get_config_input(self):
|
||||
- row = uiutil.get_list_selection(self.widget("input-type"))
|
||||
+ row = uiutil.get_list_selection(self.widget("input-type"), None)
|
||||
return row[1], row[2]
|
||||
|
||||
# Network getters
|
||||
def get_config_net_model(self):
|
||||
- return uiutil.get_list_selection(self.widget("net-model"))[0]
|
||||
+ return uiutil.get_list_selection(self.widget("net-model"), 0)
|
||||
|
||||
def get_config_macaddr(self):
|
||||
macaddr = None
|
||||
@@ -933,7 +933,7 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
return usb_info
|
||||
|
||||
def get_config_host_device_info(self):
|
||||
- return uiutil.get_list_selection(self.widget("host-device"))
|
||||
+ return uiutil.get_list_selection(self.widget("host-device"), None)
|
||||
|
||||
# Video Getters
|
||||
def get_config_video_model(self):
|
||||
@@ -1016,7 +1016,7 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
uiutil.set_list_selection(self.widget("hw-list"), page)
|
||||
|
||||
def get_hw_selection(self):
|
||||
- return uiutil.get_list_selection(self.widget("hw-list"))
|
||||
+ return uiutil.get_list_selection(self.widget("hw-list"), None)
|
||||
|
||||
def update_char_device_type_model(self):
|
||||
stable_blacklist = ["pipe", "udp"]
|
||||
Index: virt-manager-1.0.1/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.0.1/virtManager/create.py
|
||||
@@ -940,8 +940,8 @@ class vmmCreate(vmmGObjectUI):
|
||||
return self.widget("create-vm-name").get_text()
|
||||
|
||||
def get_config_machine(self):
|
||||
- return uiutil.get_list_selection(self.widget("config-machine"),
|
||||
- rowindex=0, check_visible=True)
|
||||
+ return uiutil.get_list_selection(self.widget("config-machine"), 0,
|
||||
+ check_visible=True)
|
||||
|
||||
def is_install_page(self):
|
||||
notebook = self.widget("create-pages")
|
||||
@@ -965,8 +965,10 @@ class vmmCreate(vmmGObjectUI):
|
||||
return INSTALL_PAGE_CONTAINER_OS
|
||||
|
||||
def get_config_os_info(self):
|
||||
- drow = uiutil.get_list_selection(self.widget("install-os-type"))
|
||||
- vrow = uiutil.get_list_selection(self.widget("install-os-version"))
|
||||
+ drow = uiutil.get_list_selection(
|
||||
+ self.widget("install-os-type"), None)
|
||||
+ vrow = uiutil.get_list_selection(
|
||||
+ self.widget("install-os-version"), None)
|
||||
distro = None
|
||||
dlabel = None
|
||||
variant = None
|
||||
@@ -1153,7 +1155,8 @@ class vmmCreate(vmmGObjectUI):
|
||||
self.detect_media_os()
|
||||
|
||||
def _selected_os_row(self):
|
||||
- return uiutil.get_list_selection(self.widget("install-os-type"))
|
||||
+ return uiutil.get_list_selection(
|
||||
+ self.widget("install-os-type"), None)
|
||||
|
||||
def change_os_type(self, box):
|
||||
ignore = box
|
||||
Index: virt-manager-1.0.1/virtManager/createinterface.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/createinterface.py
|
||||
+++ virt-manager-1.0.1/virtManager/createinterface.py
|
||||
@@ -775,7 +775,7 @@ class vmmCreateInterface(vmmGObjectUI):
|
||||
is_manual = self.widget("ip-do-manual").get_active()
|
||||
|
||||
copy_row = uiutil.get_list_selection(
|
||||
- self.widget("ip-copy-interface-combo"))
|
||||
+ self.widget("ip-copy-interface-combo"), None)
|
||||
|
||||
v4_mode = self.widget("ipv4-mode").get_active()
|
||||
v4_addr = self.widget("ipv4-address").get_text()
|
||||
Index: virt-manager-1.0.1/virtManager/details.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/details.py
|
||||
+++ virt-manager-1.0.1/virtManager/details.py
|
||||
@@ -1109,7 +1109,7 @@ class vmmDetails(vmmGObjectUI):
|
||||
self.widget("toolbar-box").hide()
|
||||
|
||||
def get_boot_selection(self):
|
||||
- return uiutil.get_list_selection(self.widget("config-boot-list"))
|
||||
+ return uiutil.get_list_selection(self.widget("config-boot-list"), None)
|
||||
|
||||
def set_hw_selection(self, page, disable_apply=True):
|
||||
if disable_apply:
|
||||
@@ -1117,7 +1117,7 @@ class vmmDetails(vmmGObjectUI):
|
||||
uiutil.set_list_selection(self.widget("hw-list"), page)
|
||||
|
||||
def get_hw_row(self):
|
||||
- return uiutil.get_list_selection(self.widget("hw-list"))
|
||||
+ return uiutil.get_list_selection(self.widget("hw-list"), None)
|
||||
|
||||
def get_hw_selection(self, field):
|
||||
row = self.get_hw_row()
|
||||
Index: virt-manager-1.0.1/virtManager/fsdetails.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/fsdetails.py
|
||||
+++ virt-manager-1.0.1/virtManager/fsdetails.py
|
||||
@@ -155,16 +155,16 @@ class vmmFSDetails(vmmGObjectUI):
|
||||
return self._dev
|
||||
|
||||
def get_config_fs_mode(self):
|
||||
- return uiutil.get_list_selection(self.widget("fs-mode-combo"),
|
||||
- rowindex=0, check_visible=True)
|
||||
+ return uiutil.get_list_selection(self.widget("fs-mode-combo"), 0,
|
||||
+ check_visible=True)
|
||||
|
||||
def get_config_fs_wrpolicy(self):
|
||||
- return uiutil.get_list_selection(self.widget("fs-wrpolicy-combo"),
|
||||
- rowindex=0, check_visible=True)
|
||||
+ return uiutil.get_list_selection(self.widget("fs-wrpolicy-combo"), 0,
|
||||
+ check_visible=True)
|
||||
|
||||
def get_config_fs_type(self):
|
||||
- return uiutil.get_list_selection(self.widget("fs-type-combo"),
|
||||
- rowindex=0, check_visible=True)
|
||||
+ return uiutil.get_list_selection(self.widget("fs-type-combo"), 0,
|
||||
+ check_visible=True)
|
||||
|
||||
def get_config_fs_readonly(self):
|
||||
if not self.widget("fs-readonly").is_visible():
|
||||
@@ -172,12 +172,12 @@ class vmmFSDetails(vmmGObjectUI):
|
||||
return self.widget("fs-readonly").get_active()
|
||||
|
||||
def get_config_fs_driver(self):
|
||||
- return uiutil.get_list_selection(self.widget("fs-driver-combo"),
|
||||
- rowindex=0, check_visible=True)
|
||||
+ return uiutil.get_list_selection(self.widget("fs-driver-combo"), 0,
|
||||
+ check_visible=True)
|
||||
|
||||
def get_config_fs_format(self):
|
||||
- return uiutil.get_list_selection(self.widget("fs-format-combo"),
|
||||
- rowindex=0, check_visible=True)
|
||||
+ return uiutil.get_list_selection(self.widget("fs-format-combo"), 0,
|
||||
+ check_visible=True)
|
||||
|
||||
# Setters
|
||||
def set_dev(self, dev):
|
||||
Index: virt-manager-1.0.1/virtManager/gfxdetails.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/gfxdetails.py
|
||||
+++ virt-manager-1.0.1/virtManager/gfxdetails.py
|
||||
@@ -134,9 +134,9 @@ class vmmGraphicsDetails(vmmGObjectUI):
|
||||
self.widget("graphics-password-chk").set_active(False)
|
||||
|
||||
def get_values(self):
|
||||
- gtype = uiutil.get_list_selection(self.widget("graphics-type"))
|
||||
+ gtype = uiutil.get_list_selection(self.widget("graphics-type"), 0)
|
||||
port, tlsport = self._get_config_graphics_ports()
|
||||
- addr = uiutil.get_list_selection(self.widget("graphics-address"))
|
||||
+ addr = uiutil.get_list_selection(self.widget("graphics-address"), 0)
|
||||
keymap = uiutil.get_combo_entry(self.widget("graphics-keymap"))
|
||||
if keymap == "auto":
|
||||
keymap = None
|
||||
Index: virt-manager-1.0.1/virtManager/manager.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/manager.py
|
||||
+++ virt-manager-1.0.1/virtManager/manager.py
|
||||
@@ -427,7 +427,7 @@ class vmmManager(vmmGObjectUI):
|
||||
##################
|
||||
|
||||
def current_row(self):
|
||||
- return uiutil.get_list_selection(self.widget("vm-list"))
|
||||
+ return uiutil.get_list_selection(self.widget("vm-list"), None)
|
||||
|
||||
def current_vm(self):
|
||||
row = self.current_row()
|
||||
Index: virt-manager-1.0.1/virtManager/migrate.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/migrate.py
|
||||
+++ virt-manager-1.0.1/virtManager/migrate.py
|
||||
@@ -184,7 +184,7 @@ class vmmMigrateDialog(vmmGObjectUI):
|
||||
self.reset_state()
|
||||
|
||||
def destconn_changed(self, src):
|
||||
- row = uiutil.get_list_selection(src)
|
||||
+ row = uiutil.get_list_selection(src, None)
|
||||
tooltip = ""
|
||||
if row:
|
||||
tooltip = _("A valid destination connection must be selected.")
|
||||
@@ -212,7 +212,7 @@ class vmmMigrateDialog(vmmGObjectUI):
|
||||
self.widget("migrate-port").set_sensitive(enable)
|
||||
|
||||
def get_config_destconn(self):
|
||||
- row = uiutil.get_list_selection(self.widget("migrate-dest"))
|
||||
+ row = uiutil.get_list_selection(self.widget("migrate-dest"), None)
|
||||
if not row or not row[2]:
|
||||
return None
|
||||
return row[1]
|
||||
Index: virt-manager-1.0.1/virtManager/netlist.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/netlist.py
|
||||
+++ virt-manager-1.0.1/virtManager/netlist.py
|
||||
@@ -284,13 +284,11 @@ class vmmNetworkList(vmmGObjectUI):
|
||||
###############
|
||||
|
||||
def get_network_row(self):
|
||||
- return uiutil.get_list_selection(self.widget("net-source"))
|
||||
+ return uiutil.get_list_selection(self.widget("net-source"), None)
|
||||
|
||||
def get_network_selection(self):
|
||||
- net_list = self.widget("net-source")
|
||||
bridge_entry = self.widget("net-bridge-name")
|
||||
-
|
||||
- row = uiutil.get_list_selection(net_list)
|
||||
+ row = self.get_network_row()
|
||||
if not row:
|
||||
return None, None, None
|
||||
|
||||
@@ -472,9 +470,9 @@ class vmmNetworkList(vmmGObjectUI):
|
||||
return
|
||||
|
||||
def _on_net_source_changed(self, src):
|
||||
+ ignore = src
|
||||
self._emit_changed()
|
||||
-
|
||||
- row = uiutil.get_list_selection(src)
|
||||
+ row = self.get_network_row()
|
||||
if not row:
|
||||
return
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/storagebrowse.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/storagebrowse.py
|
||||
+++ virt-manager-1.0.1/virtManager/storagebrowse.py
|
||||
@@ -221,7 +221,7 @@ class vmmStorageBrowser(vmmGObjectUI):
|
||||
return data["enable_create"]
|
||||
|
||||
def current_pool(self):
|
||||
- row = uiutil.get_list_selection(self.widget("pool-list"))
|
||||
+ row = uiutil.get_list_selection(self.widget("pool-list"), None)
|
||||
if not row:
|
||||
return
|
||||
try:
|
||||
@@ -232,7 +232,7 @@ class vmmStorageBrowser(vmmGObjectUI):
|
||||
def current_vol_row(self):
|
||||
if not self.current_pool():
|
||||
return
|
||||
- return uiutil.get_list_selection(self.widget("vol-list"))
|
||||
+ return uiutil.get_list_selection(self.widget("vol-list"), None)
|
||||
|
||||
def current_vol(self):
|
||||
pool = self.current_pool()
|
||||
Index: virt-manager-1.0.1/virtManager/uiutil.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/uiutil.py
|
||||
+++ virt-manager-1.0.1/virtManager/uiutil.py
|
||||
@@ -58,9 +58,11 @@ def spin_get_helper(widget):
|
||||
return adj.get_value()
|
||||
|
||||
|
||||
-def get_list_selection(widget, rowindex=None, check_visible=False):
|
||||
+def get_list_selection(widget, rowindex, check_visible=False):
|
||||
"""
|
||||
- Helper to simplify getting the selected row in a list/tree/combo
|
||||
+ Helper to simplify getting the selected row and value in a list/tree/combo
|
||||
+
|
||||
+ If rowindex is None, return the whole row.
|
||||
"""
|
||||
if check_visible and not widget.get_visible():
|
||||
return None
|
||||
@@ -145,7 +147,7 @@ def get_combo_entry(combo, rowidx=0):
|
||||
Helper to get the value specified in a combo box, with or
|
||||
without and entry
|
||||
"""
|
||||
- row = get_list_selection(combo)
|
||||
+ row = get_list_selection(combo, None)
|
||||
if row:
|
||||
return row[rowidx]
|
||||
if not combo.get_has_entry():
|
@ -1,44 +0,0 @@
|
||||
Subject: createpool: Clarify iscsi IQN fields (bz 1084011)
|
||||
From: Cole Robinson crobinso@redhat.com Thu Apr 3 11:19:03 2014 -0400
|
||||
Date: Thu Apr 3 11:19:03 2014 -0400:
|
||||
Git: 8fa2aad1d31f811bb09505595c6401bdf6b90d78
|
||||
|
||||
|
||||
Index: virt-manager-1.0.1/ui/createpool.ui
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/ui/createpool.ui
|
||||
+++ virt-manager-1.0.1/ui/createpool.ui
|
||||
@@ -315,7 +315,7 @@
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">1</property>
|
||||
- <property name="label" translatable="yes">_Source Path:</property>
|
||||
+ <property name="label" translatable="yes">sourcep:</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
@@ -330,7 +330,7 @@
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">1</property>
|
||||
- <property name="label" translatable="yes">_IQN:</property>
|
||||
+ <property name="label" translatable="yes">Initiator _IQN:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">pool-iqn-chk</property>
|
||||
</object>
|
||||
Index: virt-manager-1.0.1/virtManager/createpool.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/createpool.py
|
||||
+++ virt-manager-1.0.1/virtManager/createpool.py
|
||||
@@ -277,6 +277,11 @@ class vmmCreatePool(vmmGObjectUI):
|
||||
show_row("pool-iqn", iqn)
|
||||
show_row("pool-source-name", src_name)
|
||||
|
||||
+ if iqn:
|
||||
+ self.widget("pool-source-label").set_label(_("_Source IQN:"))
|
||||
+ else:
|
||||
+ self.widget("pool-source-label").set_label(_("_Source Path:"))
|
||||
+
|
||||
if tgt:
|
||||
self.widget("pool-target-path").get_child().set_text(
|
||||
self._pool.target_path)
|
@ -1,24 +0,0 @@
|
||||
Subject: addstorage: removing whitespace for storage path
|
||||
From: Chen Hanxiao chenhanxiao@cn.fujitsu.com Wed Apr 9 23:33:00 2014 +0800
|
||||
Date: Wed Apr 9 23:33:00 2014 +0800:
|
||||
Git: e0215dec6104bd9899d7f59677a45af498c0fd65
|
||||
|
||||
virtinst util validate_name can't accept name
|
||||
with whitespaces aroud it.
|
||||
Remove it when getting text from UI.
|
||||
|
||||
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/addstorage.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/addstorage.py
|
||||
+++ virt-manager-1.0.1/virtManager/addstorage.py
|
||||
@@ -320,7 +320,7 @@ class vmmAddStorage(vmmGObjectUI):
|
||||
if is_default:
|
||||
path = self.get_default_path(vmname, collidelist)
|
||||
else:
|
||||
- path = self.widget("config-storage-entry").get_text()
|
||||
+ path = self.widget("config-storage-entry").get_text().strip()
|
||||
|
||||
if is_default:
|
||||
path = self._check_ideal_path(path, vmname, collidelist)
|
@ -1,25 +0,0 @@
|
||||
Subject: details: use uniformed expression of "Default"
|
||||
From: Chen Hanxiao chenhanxiao@cn.fujitsu.com Mon Apr 14 20:08:00 2014 +0800
|
||||
Date: Mon Apr 14 20:08:00 2014 +0800:
|
||||
Git: 4ccb1d862b5499b7488a0587735a1941aa1f1a07
|
||||
|
||||
We use both "Default" and "default" for controllers
|
||||
if no controller model needed.
|
||||
They should be the same expression and "Default"
|
||||
is a better choice.
|
||||
|
||||
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/details.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/details.py
|
||||
+++ virt-manager-1.0.1/virtManager/details.py
|
||||
@@ -3048,7 +3048,7 @@ class vmmDetails(vmmGObjectUI):
|
||||
self.widget("config-remove").set_sensitive(True)
|
||||
|
||||
uiutil.set_combo_entry(self.widget("controller-model"),
|
||||
- dev.model or "default")
|
||||
+ dev.model or "Default")
|
||||
|
||||
def refresh_filesystem_page(self):
|
||||
dev = self.get_hw_selection(HW_LIST_COL_DEVICE)
|
@ -1,55 +0,0 @@
|
||||
Subject: virtinst: early detect ftp connection errors
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Mon Apr 14 14:49:21 2014 +0200
|
||||
Date: Mon Apr 14 15:20:18 2014 +0200:
|
||||
Git: 1d312a520e92e89da1b4d958b9de0270eecc6b4b
|
||||
|
||||
It fixes two problems:
|
||||
|
||||
i) "ftp://" was accepted as valid URL but then it causes this
|
||||
exception:
|
||||
|
||||
Traceback (most recent call last):
|
||||
File "<stdin>", line 1, in <module>
|
||||
File "/usr/lib64/python2.7/ftplib.py", line 387, in login
|
||||
resp = self.sendcmd('USER ' + user)
|
||||
File "/usr/lib64/python2.7/ftplib.py", line 243, in sendcmd
|
||||
self.putcmd(cmd)
|
||||
File "/usr/lib64/python2.7/ftplib.py", line 178, in putcmd
|
||||
self.putline(line)
|
||||
File "/usr/lib64/python2.7/ftplib.py", line 173, in putline
|
||||
self.sock.sendall(line)
|
||||
AttributeError: 'NoneType' object has no attribute 'sendall'
|
||||
|
||||
ii) only a cryptic error message "Unable to complete install: '[Errno
|
||||
-2] Name or service not known'" was showed to users when the DNS
|
||||
lookup failed. The exception is now intercepted and decorated with
|
||||
more information.
|
||||
|
||||
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1086554
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
diff --git a/virtinst/urlfetcher.py b/virtinst/urlfetcher.py
|
||||
index 7075929..3f2744b 100644
|
||||
--- a/virtinst/urlfetcher.py
|
||||
+++ b/virtinst/urlfetcher.py
|
||||
@@ -151,9 +151,16 @@ class _FTPImageFetcher(_URIImageFetcher):
|
||||
self.ftp = None
|
||||
|
||||
def prepareLocation(self):
|
||||
- url = urlparse.urlparse(self._make_path(""))
|
||||
- self.ftp = ftplib.FTP(url[1])
|
||||
- self.ftp.login()
|
||||
+ try:
|
||||
+ url = urlparse.urlparse(self._make_path(""))
|
||||
+ if not url[1]:
|
||||
+ raise ValueError(_("Invalid install location"))
|
||||
+ self.ftp = ftplib.FTP(url[1])
|
||||
+ self.ftp.login()
|
||||
+ except Exception, e:
|
||||
+ raise ValueError(_("Opening URL %s failed: %s.") %
|
||||
+ (self.location, str(e)))
|
||||
+
|
||||
|
||||
def hasFile(self, filename):
|
||||
path = self._make_path(filename)
|
@ -1,24 +0,0 @@
|
||||
Subject: details: hiding removebutton for USB controller
|
||||
From: Chen Hanxiao chenhanxiao@cn.fujitsu.com Tue Apr 15 22:44:43 2014 +0800
|
||||
Date: Tue Apr 15 22:44:43 2014 +0800:
|
||||
Git: 86fc54be8e1ab40dd3fc7533dd23fe4787f8c5c8
|
||||
|
||||
commit 4c53debd8a8e4c193e211cfa5128c9e88392c0a1
|
||||
break hiding "config-remove" for USB controller.
|
||||
This patch will fix this issue.
|
||||
|
||||
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/details.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/details.py
|
||||
+++ virt-manager-1.0.1/virtManager/details.py
|
||||
@@ -3041,7 +3041,7 @@ class vmmDetails(vmmGObjectUI):
|
||||
model.append(["ich9-ehci1", "USB 2"])
|
||||
model.append(["nec-xhci", "USB 3"])
|
||||
self.widget("config-remove").set_sensitive(False)
|
||||
- if dev.type == virtinst.VirtualController.TYPE_SCSI:
|
||||
+ elif dev.type == virtinst.VirtualController.TYPE_SCSI:
|
||||
model.append(["default", "Default"])
|
||||
model.append(["virtio-scsi", "VirtIO SCSI"])
|
||||
else:
|
@ -1,27 +0,0 @@
|
||||
Subject: virtinst: display the domain for PCI devices
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Tue Apr 15 16:22:33 2014 +0200
|
||||
Date: Tue Apr 15 18:53:26 2014 +0200:
|
||||
Git: e980d9c737284a5e098a35ea6d8a17155aaf5ce9
|
||||
|
||||
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1085499
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
diff --git a/virtinst/nodedev.py b/virtinst/nodedev.py
|
||||
index af6dbf7..17524dc 100644
|
||||
--- a/virtinst/nodedev.py
|
||||
+++ b/virtinst/nodedev.py
|
||||
@@ -169,9 +169,10 @@ class PCIDevice(NodeDevice):
|
||||
iommu_group = XMLProperty("./capability/iommuGroup/@number", is_int=True)
|
||||
|
||||
def pretty_name(self):
|
||||
- devstr = "%.2X:%.2X:%X" % (int(self.bus),
|
||||
- int(self.slot),
|
||||
- int(self.function))
|
||||
+ devstr = "%.4X:%.2X:%.2X:%X" % (int(self.domain),
|
||||
+ int(self.bus),
|
||||
+ int(self.slot),
|
||||
+ int(self.function))
|
||||
|
||||
return "%s %s %s" % (devstr, self.vendor_name, self.product_name)
|
||||
|
@ -1,34 +0,0 @@
|
||||
Subject: connection: Avoid some useless errors when connection closes
|
||||
From: Cole Robinson crobinso@redhat.com Wed Apr 16 12:23:57 2014 -0400
|
||||
Date: Wed Apr 16 12:29:24 2014 -0400:
|
||||
Git: 873c22d19a23f1cc51845c82eb9dfe8b4d60b2d6
|
||||
|
||||
- Run the connection
|
||||
- Restart libvirtd, connection is auto closed
|
||||
- Re-run the connection
|
||||
- Manually stop it, see errors in the logs about unknown event IDs
|
||||
|
||||
We need to unconditionally clear our event ID list
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/connection.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/connection.py
|
||||
+++ virt-manager-1.0.1/virtManager/connection.py
|
||||
@@ -970,14 +970,14 @@ class vmmConnection(vmmGObject):
|
||||
if not self._backend.is_closed():
|
||||
for eid in self._domain_cb_ids:
|
||||
self._backend.domainEventDeregisterAny(eid)
|
||||
- self._domain_cb_ids = []
|
||||
-
|
||||
for eid in self._network_cb_ids:
|
||||
self._backend.networkEventDeregisterAny(eid)
|
||||
- self._network_cb_ids = []
|
||||
except:
|
||||
logging.debug("Failed to deregister events in conn cleanup",
|
||||
exc_info=True)
|
||||
+ finally:
|
||||
+ self._domain_cb_ids = []
|
||||
+ self._network_cb_ids = []
|
||||
|
||||
self._backend.close()
|
||||
self.record = []
|
@ -1,23 +0,0 @@
|
||||
Subject: virt-manager: display error on an empty installation URL
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Thu Apr 17 12:00:09 2014 +0200
|
||||
Date: Fri Apr 18 09:52:44 2014 +0200:
|
||||
Git: b20462d86101c17bee5abf6ef55ec633622054c2
|
||||
|
||||
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1086529
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.0.1/virtManager/create.py
|
||||
@@ -1308,7 +1308,8 @@ class vmmCreate(vmmGObjectUI):
|
||||
if self.have_startup_error:
|
||||
return
|
||||
|
||||
- if curpage == PAGE_INSTALL and self.should_detect_media():
|
||||
+ if (curpage == PAGE_INSTALL and self.should_detect_media()
|
||||
+ and self.get_config_detectable_media()):
|
||||
# Make sure we have detected the OS before validating the page
|
||||
self.detect_media_os(forward=True)
|
||||
return
|
@ -1,20 +0,0 @@
|
||||
Subject: filesystem: Fix target validation when editing device (bz 1089422)
|
||||
From: Cole Robinson crobinso@redhat.com Mon Apr 21 16:51:23 2014 -0400
|
||||
Date: Mon Apr 21 16:51:57 2014 -0400:
|
||||
Git: e6a67fc7099ac39257108080c8cbcfcdc6371e56
|
||||
|
||||
|
||||
diff --git a/virtinst/devicefilesystem.py b/virtinst/devicefilesystem.py
|
||||
index f516fed..28eda74 100644
|
||||
--- a/virtinst/devicefilesystem.py
|
||||
+++ b/virtinst/devicefilesystem.py
|
||||
@@ -100,7 +100,8 @@ class VirtualFilesystem(VirtualDevice):
|
||||
# actually a directory, it is merely a arbitrary string tag
|
||||
# that is exported to the guest as a hint for where to mount
|
||||
if (self.conn.is_qemu() and
|
||||
- (self.type == self.TYPE_DEFAULT or
|
||||
+ (self.type is None or
|
||||
+ self.type == self.TYPE_DEFAULT or
|
||||
self.type == self.TYPE_MOUNT)):
|
||||
pass
|
||||
elif not os.path.isabs(val):
|
@ -1,25 +0,0 @@
|
||||
Subject: serialcon: Hide scrollbar until there's something to scroll
|
||||
From: Cole Robinson crobinso@redhat.com Fri Apr 25 19:13:44 2014 -0400
|
||||
Date: Tue Apr 29 10:28:06 2014 -0400:
|
||||
Git: 02f49be9e2f58032a7c124ea77d7983834dc80b6
|
||||
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/serialcon.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/serialcon.py
|
||||
+++ virt-manager-1.0.1/virtManager/serialcon.py
|
||||
@@ -378,6 +378,14 @@ class vmmSerialConsole(vmmGObject):
|
||||
self.box.append_page(self.error_label, Gtk.Label(""))
|
||||
self.box.show_all()
|
||||
|
||||
+ scrollbar.hide()
|
||||
+ scrollbar.get_adjustment().connect(
|
||||
+ "changed", self._scrollbar_adjustment_changed, scrollbar)
|
||||
+
|
||||
+ def _scrollbar_adjustment_changed(self, adjustment, scrollbar):
|
||||
+ scrollbar.set_visible(
|
||||
+ adjustment.get_upper() > adjustment.get_page_size())
|
||||
+
|
||||
def _cleanup(self):
|
||||
self.console.cleanup()
|
||||
self.console = None
|
@ -1,22 +0,0 @@
|
||||
Subject: snapshots: Fix screenshot with qxl+spice (bz 1089780)
|
||||
From: Cole Robinson crobinso@redhat.com Tue Apr 29 13:26:26 2014 -0400
|
||||
Date: Tue Apr 29 13:26:26 2014 -0400:
|
||||
Git: 2272166844f84943342fc097af927a09737ee57f
|
||||
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/snapshots.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/snapshots.py
|
||||
+++ virt-manager-1.0.1/virtManager/snapshots.py
|
||||
@@ -379,6 +379,11 @@ class vmmSnapshotPage(vmmGObjectUI):
|
||||
return
|
||||
|
||||
try:
|
||||
+ # Perform two screenshots, because qemu + qxl has a bug where
|
||||
+ # screenshot generally only shows the data from the previous
|
||||
+ # screenshot request:
|
||||
+ # https://bugs.launchpad.net/qemu/+bug/1314293
|
||||
+ self._take_screenshot()
|
||||
mime, sdata = self._take_screenshot()
|
||||
except:
|
||||
logging.exception("Error taking screenshot")
|
@ -1,29 +0,0 @@
|
||||
Subject: Fix using storage when the directory name contains whitespace (bz 1091384)
|
||||
From: Cole Robinson crobinso@redhat.com Tue Apr 29 14:09:14 2014 -0400
|
||||
Date: Tue Apr 29 14:09:14 2014 -0400:
|
||||
Git: feadd98fed045ec40d5d5cf8250c7b05517eb9c9
|
||||
|
||||
|
||||
diff --git a/virtinst/diskbackend.py b/virtinst/diskbackend.py
|
||||
index 370996c..3d5aed8 100644
|
||||
--- a/virtinst/diskbackend.py
|
||||
+++ b/virtinst/diskbackend.py
|
||||
@@ -137,13 +137,14 @@ def manage_path(conn, path):
|
||||
return vol, pool, path_is_pool
|
||||
|
||||
dirname = os.path.dirname(path)
|
||||
- poolname = StoragePool.find_free_name(
|
||||
- conn, os.path.basename(dirname) or "pool")
|
||||
+ poolname = os.path.basename(dirname).replace(" ", "_")
|
||||
+ if not poolname:
|
||||
+ poolname = "dirpool"
|
||||
+ poolname = StoragePool.find_free_name(conn, poolname)
|
||||
logging.debug("Attempting to build pool=%s target=%s", poolname, dirname)
|
||||
|
||||
poolxml = StoragePool(conn)
|
||||
- poolxml.name = poolxml.find_free_name(
|
||||
- conn, os.path.basename(dirname) or "dirpool")
|
||||
+ poolxml.name = poolname
|
||||
poolxml.type = poolxml.TYPE_DIR
|
||||
poolxml.target_path = dirname
|
||||
pool = poolxml.install(build=False, create=True, autostart=True)
|
@ -1,41 +0,0 @@
|
||||
Subject: packageutils: Fix install when one package is already installed (bz 1090181)
|
||||
From: Cole Robinson crobinso@redhat.com Tue Apr 29 14:34:31 2014 -0400
|
||||
Date: Tue Apr 29 14:34:31 2014 -0400:
|
||||
Git: 15449eb12601ec1b88aa6d8ee52986ef5ab41ae2
|
||||
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/packageutils.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/packageutils.py
|
||||
+++ virt-manager-1.0.1/virtManager/packageutils.py
|
||||
@@ -53,7 +53,12 @@ def check_packagekit(parent, errbox, pac
|
||||
return
|
||||
|
||||
try:
|
||||
- packagekit_install(parent, packages)
|
||||
+ for package in packages[:]:
|
||||
+ if packagekit_isinstalled(package):
|
||||
+ packages.remove(package)
|
||||
+
|
||||
+ if packages:
|
||||
+ packagekit_install(parent, packages)
|
||||
except Exception, e:
|
||||
# PackageKit frontend should report an error for us, so just log
|
||||
# the actual error
|
||||
@@ -63,6 +68,16 @@ def check_packagekit(parent, errbox, pac
|
||||
return True
|
||||
|
||||
|
||||
+def packagekit_isinstalled(package):
|
||||
+ bus = Gio.bus_get_sync(Gio.BusType.SESSION, None)
|
||||
+ pk_control = Gio.DBusProxy.new_sync(bus, 0, None,
|
||||
+ "org.freedesktop.PackageKit",
|
||||
+ "/org/freedesktop/PackageKit",
|
||||
+ "org.freedesktop.PackageKit.Query", None)
|
||||
+
|
||||
+ return pk_control.IsInstalled("(ss)", package, "")
|
||||
+
|
||||
+
|
||||
def packagekit_install(parent, package_list):
|
||||
bus = Gio.bus_get_sync(Gio.BusType.SESSION, None)
|
||||
pk_control = Gio.DBusProxy.new_sync(bus, 0, None,
|
@ -1,29 +0,0 @@
|
||||
Subject: create: Fix error when detecting OS in 'show all' list
|
||||
From: Cole Robinson crobinso@redhat.com Wed Apr 30 15:46:06 2014 -0400
|
||||
Date: Wed Apr 30 15:46:06 2014 -0400:
|
||||
Git: 3d49bbe6494ac1fa9305c019df1db81371a89385
|
||||
|
||||
The will be free'd when the widget is repopulated, so don't access
|
||||
stale data.
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.0.1/virtManager/create.py
|
||||
@@ -1181,6 +1181,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
type_row = self._selected_os_row()
|
||||
if not type_row:
|
||||
return
|
||||
+ old_type = type_row[0]
|
||||
|
||||
self.show_all_os = True
|
||||
self.populate_os_type_model()
|
||||
@@ -1188,7 +1189,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
os_type_list = self.widget("install-os-type")
|
||||
os_type_model = os_type_list.get_model()
|
||||
for idx in range(len(os_type_model)):
|
||||
- if os_type_model[idx][0] == type_row[0]:
|
||||
+ if os_type_model[idx][0] == old_type:
|
||||
os_type_list.set_active(idx)
|
||||
break
|
||||
|
@ -1,23 +0,0 @@
|
||||
Subject: engine: Show error if launching delete dialog fails
|
||||
From: Cole Robinson crobinso@redhat.com Wed Apr 30 15:54:00 2014 -0400
|
||||
Date: Wed Apr 30 15:54:00 2014 -0400:
|
||||
Git: f35438a01bbf3ba54b4e448d14e7981110a74f08
|
||||
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/engine.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.0.1/virtManager/engine.py
|
||||
@@ -1176,6 +1176,9 @@ class vmmEngine(vmmGObject):
|
||||
conn = self._lookup_conn(uri)
|
||||
vm = conn.get_vm(uuid)
|
||||
|
||||
- if not self.delete_dialog:
|
||||
- self.delete_dialog = vmmDeleteDialog()
|
||||
- self.delete_dialog.show(vm, src.topwin)
|
||||
+ try:
|
||||
+ if not self.delete_dialog:
|
||||
+ self.delete_dialog = vmmDeleteDialog()
|
||||
+ self.delete_dialog.show(vm, src.topwin)
|
||||
+ except Exception, e:
|
||||
+ src.err.show_err(_("Error launching delete dialog: %s") % str(e))
|
@ -1,24 +0,0 @@
|
||||
Subject: connection: Call path_exists before getting storage volume (bz 1092739)
|
||||
From: Cole Robinson crobinso@redhat.com Wed Apr 30 16:00:34 2014 -0400
|
||||
Date: Wed Apr 30 16:00:34 2014 -0400:
|
||||
Git: 5c28a00d3e28ba7446f323a31ac47a194eb200b1
|
||||
|
||||
path_exists will check to ensure the volume actually survives a pool
|
||||
refresh, incase it was deleted behind libvirt's back. This makes the
|
||||
delete dialog happier at least.
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/connection.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/connection.py
|
||||
+++ virt-manager-1.0.1/virtManager/connection.py
|
||||
@@ -751,6 +751,10 @@ class vmmConnection(vmmGObject):
|
||||
return self.get_pool_by_name("default")
|
||||
|
||||
def get_vol_by_path(self, path):
|
||||
+ # path_exists will handle stuff like refreshing a busted pool
|
||||
+ if not virtinst.VirtualDisk.path_exists(self.get_backend(), path):
|
||||
+ return None
|
||||
+
|
||||
for pool in self.pools.values():
|
||||
for vol in pool.get_volumes().values():
|
||||
if vol.get_target_path() == path:
|
@ -1,121 +0,0 @@
|
||||
Subject: details: Better handling for <input type=keyboard>
|
||||
From: Cole Robinson crobinso@redhat.com Sun May 4 13:23:54 2014 -0400
|
||||
Date: Sun May 4 13:23:54 2014 -0400:
|
||||
Git: 9fd0ef5c8876ded12d9356cb38db29dace261084
|
||||
|
||||
|
||||
Index: virt-manager-1.0.1/ui/details.ui
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/ui/details.ui
|
||||
+++ virt-manager-1.0.1/ui/details.ui
|
||||
@@ -4208,14 +4208,12 @@
|
||||
<property name="top_padding">3</property>
|
||||
<property name="left_padding">12</property>
|
||||
<child>
|
||||
- <object class="GtkTable" id="table33">
|
||||
+ <object class="GtkGrid" id="table33">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">3</property>
|
||||
- <property name="n_rows">2</property>
|
||||
- <property name="n_columns">2</property>
|
||||
- <property name="column_spacing">8</property>
|
||||
<property name="row_spacing">4</property>
|
||||
+ <property name="column_spacing">8</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label402">
|
||||
<property name="visible">True</property>
|
||||
@@ -4225,8 +4223,10 @@
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
- <property name="x_options">GTK_FILL</property>
|
||||
- <property name="y_options"/>
|
||||
+ <property name="left_attach">0</property>
|
||||
+ <property name="top_attach">0</property>
|
||||
+ <property name="width">1</property>
|
||||
+ <property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -4237,10 +4237,10 @@
|
||||
<property name="label" translatable="yes">Mode:</property>
|
||||
</object>
|
||||
<packing>
|
||||
+ <property name="left_attach">0</property>
|
||||
<property name="top_attach">1</property>
|
||||
- <property name="bottom_attach">2</property>
|
||||
- <property name="x_options">GTK_FILL</property>
|
||||
- <property name="y_options"/>
|
||||
+ <property name="width">1</property>
|
||||
+ <property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -4253,11 +4253,9 @@
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
- <property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
- <property name="bottom_attach">2</property>
|
||||
- <property name="x_options">GTK_FILL</property>
|
||||
- <property name="y_options"/>
|
||||
+ <property name="width">1</property>
|
||||
+ <property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -4270,8 +4268,9 @@
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
- <property name="right_attach">2</property>
|
||||
- <property name="y_options"/>
|
||||
+ <property name="top_attach">0</property>
|
||||
+ <property name="width">1</property>
|
||||
+ <property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
Index: virt-manager-1.0.1/virtManager/details.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/details.py
|
||||
+++ virt-manager-1.0.1/virtManager/details.py
|
||||
@@ -349,6 +349,8 @@ def _label_for_device(dev):
|
||||
return _("Tablet")
|
||||
elif dev.type == "mouse":
|
||||
return _("Mouse")
|
||||
+ elif dev.type == "keyboard":
|
||||
+ return _("Keyboard")
|
||||
return _("Input")
|
||||
|
||||
if devtype in ["serial", "parallel", "console"]:
|
||||
@@ -2746,19 +2748,24 @@ class vmmDetails(vmmGObjectUI):
|
||||
dev = _("Xen Mouse")
|
||||
elif ident == "mouse:ps2":
|
||||
dev = _("PS/2 Mouse")
|
||||
+ elif ident == "keyboard:ps2":
|
||||
+ dev = _("PS/2 Keyboard")
|
||||
else:
|
||||
dev = inp.bus + " " + inp.type
|
||||
|
||||
+ mode = None
|
||||
if inp.type == "tablet":
|
||||
mode = _("Absolute Movement")
|
||||
- else:
|
||||
+ elif inp.type == "mouse":
|
||||
mode = _("Relative Movement")
|
||||
|
||||
self.widget("input-dev-type").set_text(dev)
|
||||
- self.widget("input-dev-mode").set_text(mode)
|
||||
+ self.widget("input-dev-mode").set_text(mode or "")
|
||||
+ uiutil.set_grid_row_visible(self.widget("input-dev-mode"), bool(mode))
|
||||
|
||||
# Can't remove primary Xen or PS/2 mice
|
||||
- if inp.type == "mouse" and inp.bus in ("xen", "ps2"):
|
||||
+ if ((inp.type == "mouse" and inp.bus in ("xen", "ps2")) or
|
||||
+ (inp.type == "keyboard" and inp.bus == "ps2")):
|
||||
self.widget("config-remove").set_sensitive(False)
|
||||
else:
|
||||
self.widget("config-remove").set_sensitive(True)
|
@ -1,25 +0,0 @@
|
||||
From a56edc5b454f5ac428e5a9380665001889cb017c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cbosdonnat@suse.com>
|
||||
Date: Tue, 27 May 2014 10:52:35 +0200
|
||||
Subject: [PATCH] Don't create a qemu disk image when creating containers
|
||||
|
||||
Make sure we don't create a default disk image if the option is checked
|
||||
but not visible as this is the case for containers
|
||||
---
|
||||
virtManager/addstorage.py | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/addstorage.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/addstorage.py
|
||||
+++ virt-manager-1.0.1/virtManager/addstorage.py
|
||||
@@ -258,7 +258,8 @@ class vmmAddStorage(vmmGObjectUI):
|
||||
return path
|
||||
|
||||
def is_default_storage(self):
|
||||
- return self.widget("config-storage-create").get_active()
|
||||
+ return self.widget("config-storage-create").is_visible() and \
|
||||
+ self.widget("config-storage-create").get_active()
|
||||
|
||||
def _check_ideal_path(self, path, vmname, collidelist):
|
||||
# See if the ideal disk path (/default/pool/vmname.img)
|
@ -1,94 +0,0 @@
|
||||
Subject: virt-install: add --events support
|
||||
From: Chen Hanxiao chenhanxiao@cn.fujitsu.com Thu May 29 09:46:24 2014 +0800
|
||||
Date: Thu May 29 09:46:24 2014 +0800:
|
||||
Git: 3c45262526ccf9115713917a7d9b771bf36127a3
|
||||
|
||||
This patch will enable setting event configuration:
|
||||
on_poweroff, on_reboot and on_crash.
|
||||
|
||||
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
|
||||
|
||||
Index: virt-manager-1.0.1/man/virt-install.pod
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/man/virt-install.pod
|
||||
+++ virt-manager-1.0.1/man/virt-install.pod
|
||||
@@ -123,6 +123,12 @@ Specify metadata values for the guest. P
|
||||
|
||||
Use --metadata=? to see a list of all available sub options. Complete details at L<http://libvirt.org/formatdomain.html#elementsMetadata>
|
||||
|
||||
+=item --events OPT=VAL,[...]
|
||||
+
|
||||
+Specify events values for the guest. Possible options include on_poweroff, on_reboot, and on_crash.
|
||||
+
|
||||
+Use --events=? to see a list of all available sub options. Complete details at L<http://libvirt.org/formatdomain.html#elementsEvents>
|
||||
+
|
||||
=item --vcpus=VCPUS[,maxvcpus=MAX][,sockets=#][,cores=#][,threads=#][,cpuset=CPUSET]
|
||||
|
||||
Number of virtual cpus to configure for the guest. If 'maxvcpus' is specified,
|
||||
Index: virt-manager-1.0.1/tests/cli-test-xml/compare/virt-xml-edit-simple-events.xml
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ virt-manager-1.0.1/tests/cli-test-xml/compare/virt-xml-edit-simple-events.xml
|
||||
@@ -0,0 +1,11 @@
|
||||
+ </clock>
|
||||
+ <on_poweroff>destroy</on_poweroff>
|
||||
+ <on_reboot>restart</on_reboot>
|
||||
+- <on_crash>restart</on_crash>
|
||||
++ <on_crash>preserve</on_crash>
|
||||
+ <pm>
|
||||
+ <suspend-to-mem enabled="no"/>
|
||||
+ </pm>
|
||||
+
|
||||
+Domain 'test-many-devices' defined successfully.
|
||||
+Changes will take effect after the next domain shutdown.
|
||||
\ No newline at end of file
|
||||
Index: virt-manager-1.0.1/tests/clitest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/tests/clitest.py
|
||||
+++ virt-manager-1.0.1/tests/clitest.py
|
||||
@@ -805,6 +805,7 @@ c = vixml.add_category("simple edit diff
|
||||
c.add_compare("""--metadata name=foo-my-new-name,uuid=12345678-12F4-1234-1234-123456789AFA,description="hey this is my
|
||||
new
|
||||
very,very=new desc\\\'",title="This is my,funky=new title" """, "edit-simple-metadata")
|
||||
+c.add_compare("--events on_poweroff=destroy,on_reboot=restart,on_crash=preserve", "edit-simple-events")
|
||||
c.add_compare("--memory 500,maxmemory=1000,hugepages=off", "edit-simple-memory")
|
||||
c.add_compare("--vcpus 10,maxvcpus=20,cores=5,sockets=4,threads=1", "edit-simple-vcpus")
|
||||
c.add_compare("--cpu model=pentium2,+x2apic,forbid=pbe", "edit-simple-cpu")
|
||||
Index: virt-manager-1.0.1/virtinst/cli.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/cli.py
|
||||
+++ virt-manager-1.0.1/virtinst/cli.py
|
||||
@@ -797,6 +797,7 @@ def add_guest_xml_options(geng):
|
||||
help=_("Set domain <clock> XML. Ex:\n"
|
||||
"--clock offset=localtime,rtc_tickpolicy=catchup"))
|
||||
geng.add_argument("--pm", help=_("Config power management features"))
|
||||
+ geng.add_argument("--events", help=_("Config OS lifecycle operation management features"))
|
||||
|
||||
|
||||
def add_boot_options(insg):
|
||||
@@ -1225,6 +1226,17 @@ class ParserMetadata(VirtCLIParser):
|
||||
|
||||
|
||||
######################
|
||||
+# --events parsing #
|
||||
+######################
|
||||
+
|
||||
+class ParserEvents(VirtCLIParser):
|
||||
+ def _init_params(self):
|
||||
+ self.set_param("on_poweroff", "on_poweroff")
|
||||
+ self.set_param("on_reboot", "on_reboot")
|
||||
+ self.set_param("on_crash", "on_crash")
|
||||
+
|
||||
+
|
||||
+######################
|
||||
# --numatune parsing #
|
||||
######################
|
||||
|
||||
@@ -2210,6 +2222,7 @@ def build_parser_map(options, skip=None,
|
||||
parsermap[parserobj.option_variable_name] = parserobj
|
||||
|
||||
register_parser("metadata", ParserMetadata)
|
||||
+ register_parser("events", ParserEvents)
|
||||
register_parser("memory", ParserMemory)
|
||||
register_parser("memtune", ParserMemorytune)
|
||||
register_parser("vcpus", ParserVCPU)
|
@ -1,43 +0,0 @@
|
||||
Subject: create: Raise error if populating summary page fails
|
||||
From: Cole Robinson crobinso@redhat.com Sat May 31 13:31:08 2014 -0400
|
||||
Date: Sat May 31 13:31:08 2014 -0400:
|
||||
Git: 3654d56aa6a7f6749f74924a33a35ebdebdb8b8d
|
||||
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.0.1/virtManager/create.py
|
||||
@@ -1340,20 +1340,24 @@ class vmmCreate(vmmGObjectUI):
|
||||
self.widget("header-pagenum").set_markup(page_lbl)
|
||||
|
||||
def page_changed(self, ignore1, ignore2, pagenum):
|
||||
- # Update page number
|
||||
- self.set_page_num_text(pagenum)
|
||||
-
|
||||
- self.widget("create-back").set_sensitive(pagenum != PAGE_NAME)
|
||||
- self.widget("create-forward").set_visible(pagenum != PAGE_FINISH)
|
||||
- self.widget("create-finish").set_visible(pagenum == PAGE_FINISH)
|
||||
-
|
||||
if pagenum == PAGE_INSTALL:
|
||||
self.detect_media_os()
|
||||
self.widget("install-os-distro-box").set_visible(
|
||||
not self.container_install())
|
||||
elif pagenum == PAGE_FINISH:
|
||||
+ try:
|
||||
+ self.populate_summary()
|
||||
+ except Exception, e:
|
||||
+ self.err.show_err(_("Error populating summary page: %s") %
|
||||
+ str(e))
|
||||
+ return
|
||||
+
|
||||
self.widget("create-finish").grab_focus()
|
||||
- self.populate_summary()
|
||||
+
|
||||
+ self.set_page_num_text(pagenum)
|
||||
+ self.widget("create-back").set_sensitive(pagenum != PAGE_NAME)
|
||||
+ self.widget("create-forward").set_visible(pagenum != PAGE_FINISH)
|
||||
+ self.widget("create-finish").set_visible(pagenum == PAGE_FINISH)
|
||||
|
||||
for nr in range(self.widget("create-pages").get_n_pages()):
|
||||
page = self.widget("create-pages").get_nth_page(nr)
|
@ -1,19 +0,0 @@
|
||||
Subject: virt-convert: Fix use of relative OVF file
|
||||
From: Cole Robinson crobinso@redhat.com Sat May 31 16:05:29 2014 -0400
|
||||
Date: Sat May 31 16:05:29 2014 -0400:
|
||||
Git: 876c721d8e3045d35c942d96caac28abff1b8219
|
||||
|
||||
|
||||
diff --git a/virtconv/formats.py b/virtconv/formats.py
|
||||
index 0663190..2af6b6b 100644
|
||||
--- a/virtconv/formats.py
|
||||
+++ b/virtconv/formats.py
|
||||
@@ -195,7 +195,7 @@ class VirtConverter(object):
|
||||
(self._input_file,
|
||||
self.parser,
|
||||
self._force_clean) = _find_input(input_file, parser, self.print_cb)
|
||||
- self._top_dir = os.path.dirname(self._input_file)
|
||||
+ self._top_dir = os.path.dirname(os.path.abspath(self._input_file))
|
||||
|
||||
logging.debug("converter not input_file=%s parser=%s",
|
||||
self._input_file, self.parser)
|
@ -1,24 +0,0 @@
|
||||
Subject: diskbackend: If pool not running, start it
|
||||
From: Cole Robinson crobinso@redhat.com Sat May 31 16:29:29 2014 -0400
|
||||
Date: Sat May 31 16:29:29 2014 -0400:
|
||||
Git: d6f063d0b888cabdf8a348bbd86e2f5353b040fd
|
||||
|
||||
Nowadays we depend on the pool existing and running, so better to get
|
||||
an error up front if pool startup will fail
|
||||
|
||||
diff --git a/virtinst/diskbackend.py b/virtinst/diskbackend.py
|
||||
index 3d5aed8..118f649 100644
|
||||
--- a/virtinst/diskbackend.py
|
||||
+++ b/virtinst/diskbackend.py
|
||||
@@ -86,9 +86,9 @@ def check_if_path_managed(conn, path):
|
||||
if not vol:
|
||||
pool = StoragePool.lookup_pool_by_path(conn, os.path.dirname(path))
|
||||
|
||||
- # Is pool running?
|
||||
+ # Ensure pool is running
|
||||
if pool and pool.info()[0] != libvirt.VIR_STORAGE_POOL_RUNNING:
|
||||
- pool = None
|
||||
+ pool.start()
|
||||
|
||||
# Attempt to lookup path as a storage volume
|
||||
if pool and not vol:
|
@ -1,19 +0,0 @@
|
||||
Subject: console: vnc: Don't force keyboard grab before widget is realized
|
||||
From: Cole Robinson crobinso@redhat.com Sat May 31 19:40:18 2014 -0400
|
||||
Date: Sat May 31 19:40:18 2014 -0400:
|
||||
Git: d17cf4a22352659bc22e012286380b6481faad89
|
||||
|
||||
Causes gtk warnings on the console, and the code was mistaken anyways
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/console.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/console.py
|
||||
+++ virt-manager-1.0.1/virtManager/console.py
|
||||
@@ -466,7 +466,6 @@ class VNCViewer(Viewer):
|
||||
|
||||
def set_grab_keyboard(self):
|
||||
self.display.set_keyboard_grab(self.config.get_grab_keyboard())
|
||||
- self.display.force_grab(self.config.get_grab_keyboard())
|
||||
|
||||
def _desktop_resize(self, src_ignore, w, h):
|
||||
self.desktop_resolution = (w, h)
|
@ -1,75 +0,0 @@
|
||||
Subject: pollhelpers: Use correct dictionary keys for old pool/net polling (bz 1099827)
|
||||
From: Cole Robinson crobinso@redhat.com Mon Jun 2 12:17:21 2014 -0400
|
||||
Date: Mon Jun 2 12:18:59 2014 -0400:
|
||||
Git: d3e9af832899088a17aeb44441e8316177f563ae
|
||||
|
||||
We were inadvertently using the object name rather than UUID when libvirt
|
||||
didn't support new style polling APIs.
|
||||
|
||||
Index: virt-manager-1.0.1/virtinst/pollhelpers.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/pollhelpers.py
|
||||
+++ virt-manager-1.0.1/virtinst/pollhelpers.py
|
||||
@@ -52,7 +52,8 @@ def _new_poll_helper(origmap, typename,
|
||||
|
||||
def _old_poll_helper(origmap, typename,
|
||||
active_list, inactive_list,
|
||||
- lookup_func, build_func):
|
||||
+ lookup_func, build_func,
|
||||
+ key_is_uuid=False):
|
||||
"""
|
||||
Helper routine for old style split API libvirt polling.
|
||||
@origmap: Pre-existing mapping of objects, with key->obj mapping.
|
||||
@@ -64,6 +65,8 @@ def _old_poll_helper(origmap, typename,
|
||||
@lookup_func: Function to get an object handle for the passed name
|
||||
@build_func: Function that builds a new object class. It is passed
|
||||
args of (raw libvirt object, key (usually UUID))
|
||||
+ @key_is_uuid: If True, we use the object UUID as the returned dictionary
|
||||
+ keys
|
||||
"""
|
||||
current = {}
|
||||
new = {}
|
||||
@@ -79,8 +82,10 @@ def _old_poll_helper(origmap, typename,
|
||||
except Exception, e:
|
||||
logging.debug("Unable to list inactive %ss: %s", typename, e)
|
||||
|
||||
- def check_obj(key):
|
||||
- if key not in origmap:
|
||||
+ def check_obj(name):
|
||||
+ obj = None
|
||||
+ key = name
|
||||
+ if key not in origmap or key_is_uuid:
|
||||
try:
|
||||
obj = lookup_func(key)
|
||||
except Exception, e:
|
||||
@@ -88,6 +93,10 @@ def _old_poll_helper(origmap, typename,
|
||||
typename, key, e)
|
||||
return
|
||||
|
||||
+ if key_is_uuid:
|
||||
+ key = obj.UUIDString()
|
||||
+
|
||||
+ if key not in origmap:
|
||||
# Object is brand new this period
|
||||
current[key] = build_func(obj, key)
|
||||
new[key] = current[key]
|
||||
@@ -120,7 +129,8 @@ def fetch_nets(backend, origmap, build_f
|
||||
|
||||
return _old_poll_helper(origmap, name,
|
||||
active_list, inactive_list,
|
||||
- lookup_func, build_func)
|
||||
+ lookup_func, build_func,
|
||||
+ key_is_uuid=True)
|
||||
|
||||
|
||||
def fetch_pools(backend, origmap, build_func):
|
||||
@@ -138,7 +148,8 @@ def fetch_pools(backend, origmap, build_
|
||||
|
||||
return _old_poll_helper(origmap, name,
|
||||
active_list, inactive_list,
|
||||
- lookup_func, build_func)
|
||||
+ lookup_func, build_func,
|
||||
+ key_is_uuid=True)
|
||||
|
||||
|
||||
def fetch_volumes(backend, pool, origmap, build_func):
|
@ -1,19 +0,0 @@
|
||||
Subject: details: xen keyboard can't be removed either
|
||||
From: Cole Robinson crobinso@redhat.com Mon Jun 2 18:54:28 2014 -0400
|
||||
Date: Mon Jun 2 18:54:28 2014 -0400:
|
||||
Git: 03670c38dc085ddf7b68edceda738ca6b506a2ba
|
||||
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/details.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/details.py
|
||||
+++ virt-manager-1.0.1/virtManager/details.py
|
||||
@@ -2765,7 +2765,7 @@ class vmmDetails(vmmGObjectUI):
|
||||
|
||||
# Can't remove primary Xen or PS/2 mice
|
||||
if ((inp.type == "mouse" and inp.bus in ("xen", "ps2")) or
|
||||
- (inp.type == "keyboard" and inp.bus == "ps2")):
|
||||
+ (inp.type == "keyboard" and inp.bus in ("xen", "ps2"))):
|
||||
self.widget("config-remove").set_sensitive(False)
|
||||
else:
|
||||
self.widget("config-remove").set_sensitive(True)
|
@ -1,19 +0,0 @@
|
||||
Subject: diskbackend: Fix pool 'create' call (bz 1103442)
|
||||
From: Cole Robinson crobinso@redhat.com Tue Jun 3 16:25:48 2014 -0400
|
||||
Date: Tue Jun 3 16:26:28 2014 -0400:
|
||||
Git: 809c5a81e5b92c335e586041af91618693724721
|
||||
|
||||
|
||||
diff --git a/virtinst/diskbackend.py b/virtinst/diskbackend.py
|
||||
index 118f649..5f72d00 100644
|
||||
--- a/virtinst/diskbackend.py
|
||||
+++ b/virtinst/diskbackend.py
|
||||
@@ -88,7 +88,7 @@ def check_if_path_managed(conn, path):
|
||||
|
||||
# Ensure pool is running
|
||||
if pool and pool.info()[0] != libvirt.VIR_STORAGE_POOL_RUNNING:
|
||||
- pool.start()
|
||||
+ pool.create(0)
|
||||
|
||||
# Attempt to lookup path as a storage volume
|
||||
if pool and not vol:
|
@ -1,22 +0,0 @@
|
||||
Subject: man: fix an incorrect description in virt-install man page
|
||||
From: Chen Hanxiao chenhanxiao@cn.fujitsu.com Wed Jun 4 16:38:29 2014 +0800
|
||||
Date: Wed Jun 4 16:39:23 2014 +0800:
|
||||
Git: 99df0057f50e55fccb42d50ca299399888e5f1f2
|
||||
|
||||
Actually --pm accepts suspend_to_mem rather than suspend_to_ram.
|
||||
|
||||
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
|
||||
|
||||
Index: virt-manager-1.0.1/man/virt-install.pod
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/man/virt-install.pod
|
||||
+++ virt-manager-1.0.1/man/virt-install.pod
|
||||
@@ -270,7 +270,7 @@ Use --clock=? to see a list of all avail
|
||||
|
||||
=item --pm=PMOPTS
|
||||
|
||||
-Configure guest power management features. Example suboptions include suspend_to_ram=on|off and suspend_to_disk=on|off
|
||||
+Configure guest power management features. Example suboptions include suspend_to_mem=on|off and suspend_to_disk=on|off
|
||||
|
||||
Use --pm=? to see a list of all available sub options. Complete details at L<http://libvirt.org/formatdomain.html#elementsPowerManagement>
|
||||
|
@ -1,34 +0,0 @@
|
||||
Subject: createnet: enable specify /29 subnet
|
||||
From: Chen Hanxiao chenhanxiao@cn.fujitsu.com Wed Jun 11 09:51:48 2014 +0800
|
||||
Date: Wed Jun 11 09:52:07 2014 +0800:
|
||||
Git: 17a11672b142028f6e15b80f3a30b3069792d37f
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1106913
|
||||
|
||||
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/createnet.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/createnet.py
|
||||
+++ virt-manager-1.0.1/virtManager/createnet.py
|
||||
@@ -268,9 +268,9 @@ class vmmCreateNetwork(vmmGObjectUI):
|
||||
return self.err.val_err(_("Invalid Network Address"),
|
||||
_("The network must be an IPv4 address"))
|
||||
|
||||
- if ip.numhosts < 16:
|
||||
+ if ip.numhosts < 8:
|
||||
return self.err.val_err(_("Invalid Network Address"),
|
||||
- _("The network must address at least 16 addresses."))
|
||||
+ _("The network must address at least 8 addresses."))
|
||||
|
||||
if not ip.is_private:
|
||||
res = self.err.yes_no(_("Check Network Address"),
|
||||
@@ -562,7 +562,7 @@ class vmmCreateNetwork(vmmGObjectUI):
|
||||
src.modify_bg(Gtk.StateType.NORMAL, _red)
|
||||
return
|
||||
|
||||
- valid_ip = (ip.numhosts >= 16 and ip.is_private)
|
||||
+ valid_ip = (ip.numhosts >= 8 and ip.is_private)
|
||||
gateway = (ip.prefixlen != 32 and str(ip.network + 1) or "")
|
||||
info = (ip.is_private and _("Private") or _("Other/Public"))
|
||||
start = int(ip.numhosts / 2)
|
@ -1,32 +0,0 @@
|
||||
Subject: createpool.py: fix creation of gluster pools
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Wed Jun 11 13:30:15 2014 +0200
|
||||
Date: Mon Jun 16 08:20:58 2014 +0200:
|
||||
Git: 5c2459e6e472dce777a04d3a82406c9df7b9c754
|
||||
|
||||
It fixes this exception:
|
||||
|
||||
Traceback (most recent call last):
|
||||
File "virt-manager/virtManager/createpool.py", line 454, in page_changed
|
||||
self.set_page(page_number)
|
||||
File "virt-manager/virtManager/createpool.py", line 451, in set_page
|
||||
self.show_options_by_pool()
|
||||
File "virt-manager/virtManager/createpool.py", line 292, in show_options_by_pool
|
||||
self.widget("pool-source-name").get_child().set_text(
|
||||
AttributeError: 'Entry' object has no attribute 'get_child'
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/createpool.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/createpool.py
|
||||
+++ virt-manager-1.0.1/virtManager/createpool.py
|
||||
@@ -291,8 +291,7 @@ class vmmCreatePool(vmmGObjectUI):
|
||||
self.widget("pool-build").set_active(builddef)
|
||||
|
||||
if src_name:
|
||||
- self.widget("pool-source-name").get_child().set_text(
|
||||
- self._pool.source_name)
|
||||
+ self.widget("pool-source-name").set_text(self._pool.source_name)
|
||||
|
||||
self.widget("pool-format").set_active(-1)
|
||||
if fmt:
|
@ -1,56 +0,0 @@
|
||||
Subject: virt-manager: split EDIT_VCPUS and EDIT_MAXVCPUS
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Tue Jun 17 14:13:30 2014 +0200
|
||||
Date: Tue Jun 17 17:27:47 2014 +0200:
|
||||
Git: 4ac49a1d66b12ae6f7d50ec4f368ff3d770e6b42
|
||||
|
||||
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1098040
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/details.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/details.py
|
||||
+++ virt-manager-1.0.1/virtManager/details.py
|
||||
@@ -54,6 +54,7 @@ EDIT_DESC,
|
||||
EDIT_IDMAP,
|
||||
|
||||
EDIT_VCPUS,
|
||||
+EDIT_MAXVCPUS,
|
||||
EDIT_CPUSET,
|
||||
EDIT_CPU,
|
||||
EDIT_TOPOLOGY,
|
||||
@@ -104,7 +105,7 @@ EDIT_FS,
|
||||
|
||||
EDIT_HOSTDEV_ROMBAR,
|
||||
|
||||
-) = range(1, 43)
|
||||
+) = range(1, 44)
|
||||
|
||||
|
||||
# Columns in hw list model
|
||||
@@ -1712,7 +1713,11 @@ class vmmDetails(vmmGObjectUI):
|
||||
def config_maxvcpus_changed(self, ignore):
|
||||
if self.widget("config-maxvcpus").get_sensitive():
|
||||
self.config_cpu_topology_changed()
|
||||
- self.enable_apply(EDIT_VCPUS)
|
||||
+
|
||||
+ # As this callback can be triggered by other events, set EDIT_MAXVCPUS
|
||||
+ # only when the value is changed.
|
||||
+ if self.config_get_maxvcpus() != self.vm.vcpu_max_count():
|
||||
+ self.enable_apply(EDIT_MAXVCPUS)
|
||||
|
||||
def on_cpu_copy_host_clicked(self, src):
|
||||
uiutil.set_grid_row_visible(
|
||||
@@ -2004,9 +2009,11 @@ class vmmDetails(vmmGObjectUI):
|
||||
|
||||
if self.edited(EDIT_VCPUS):
|
||||
kwargs["vcpus"] = self.config_get_vcpus()
|
||||
- kwargs["maxvcpus"] = self.config_get_maxvcpus()
|
||||
hotplug_args["vcpus"] = kwargs["vcpus"]
|
||||
|
||||
+ if self.edited(EDIT_MAXVCPUS):
|
||||
+ kwargs["maxvcpus"] = self.config_get_maxvcpus()
|
||||
+
|
||||
if self.edited(EDIT_CPUSET):
|
||||
kwargs["cpuset"] = self.get_text("config-vcpupin")
|
||||
|
@ -1,24 +0,0 @@
|
||||
Subject: details.py: fix typo
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Tue Jun 24 13:59:12 2014 +0200
|
||||
Date: Tue Jun 24 17:14:19 2014 +0200:
|
||||
Git: eb5b2613110dfaa23626a16704d18df0dbba5086
|
||||
|
||||
s|removeable|removable|
|
||||
|
||||
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1112629
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/details.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/details.py
|
||||
+++ virt-manager-1.0.1/virtManager/details.py
|
||||
@@ -2114,7 +2114,7 @@ class vmmDetails(vmmGObjectUI):
|
||||
kwargs["shareable"] = self.widget("disk-shareable").get_active()
|
||||
|
||||
if self.edited(EDIT_DISK_REMOVABLE):
|
||||
- kwargs["removeable"] = bool(
|
||||
+ kwargs["removable"] = bool(
|
||||
self.widget("disk-removable").get_active())
|
||||
|
||||
if self.edited(EDIT_DISK_CACHE):
|
@ -1,24 +0,0 @@
|
||||
Subject: createnet: validate last page before creating the network
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Wed Jun 25 12:35:46 2014 +0200
|
||||
Date: Thu Jun 26 15:26:37 2014 +0200:
|
||||
Git: f109b1ed6fc93c1c74675d047affc0fe57ae7243
|
||||
|
||||
On the last page in the createnet wizard the Next button is changed to
|
||||
Finish. Ensure the user input is validated also on this page.
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/createnet.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/createnet.py
|
||||
+++ virt-manager-1.0.1/virtManager/createnet.py
|
||||
@@ -746,6 +746,9 @@ class vmmCreateNetwork(vmmGObjectUI):
|
||||
net.install()
|
||||
|
||||
def finish(self, ignore):
|
||||
+ if not self.validate(PAGE_MAX):
|
||||
+ return
|
||||
+
|
||||
try:
|
||||
net = self._build_xmlobj()
|
||||
except Exception, e:
|
@ -1,22 +0,0 @@
|
||||
Subject: createnet: fix "show_err" typo
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Wed Jun 25 12:28:54 2014 +0200
|
||||
Date: Thu Jun 26 15:26:37 2014 +0200:
|
||||
Git: 81bd6bbffb3a06e179c3cbb6c56a9aced1e9be48
|
||||
|
||||
s|show_erro|show_err|
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/createnet.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/createnet.py
|
||||
+++ virt-manager-1.0.1/virtManager/createnet.py
|
||||
@@ -749,7 +749,7 @@ class vmmCreateNetwork(vmmGObjectUI):
|
||||
try:
|
||||
net = self._build_xmlobj()
|
||||
except Exception, e:
|
||||
- self.err.show_erro(_("Error generating network xml: %s" % str(e)))
|
||||
+ self.err.show_err(_("Error generating network xml: %s" % str(e)))
|
||||
return
|
||||
|
||||
self.topwin.set_sensitive(False)
|
@ -1,25 +0,0 @@
|
||||
Subject: createnet: fix a small pylint
|
||||
From: Chen Hanxiao chenhanxiao@cn.fujitsu.com Fri Jun 27 11:10:54 2014 +0800
|
||||
Date: Fri Jun 27 09:06:14 2014 +0200:
|
||||
Git: 658c9500a96a3d2ab862811f9827409c17c2232f
|
||||
|
||||
commit f109b1ed6fc93c1c74675d047affc0fe57ae7243
|
||||
used a undefined variable 'PAGE_MAX'.
|
||||
It looks like it should be in a developing series,
|
||||
but should be fixed in upstream.
|
||||
|
||||
Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/createnet.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/createnet.py
|
||||
+++ virt-manager-1.0.1/virtManager/createnet.py
|
||||
@@ -39,6 +39,8 @@ PAGE_IPV4,
|
||||
PAGE_IPV6,
|
||||
PAGE_MISC) = range(4)
|
||||
|
||||
+PAGE_MAX = PAGE_MISC
|
||||
+
|
||||
_green = Gdk.Color.parse("#c0ffc0")[1]
|
||||
_red = Gdk.Color.parse("#ffc0c0")[1]
|
||||
_black = Gdk.Color.parse("#000000")[1]
|
@ -1,48 +0,0 @@
|
||||
Subject: Don't create disk images world readable and executable
|
||||
From: Ron ron@debian.org Sun Jun 29 16:16:36 2014 +0930
|
||||
Date: Wed Jul 2 07:35:15 2014 +0200:
|
||||
Git: ea1d973957ce3662c7fb22046c34b62f72f0e624
|
||||
|
||||
Python's os.open() defaults to mode 0777 if not explicitly specified.
|
||||
Disk image files don't need to be executable, and having them world
|
||||
readable isn't an ideal situation either. Owner writable and group
|
||||
readable is probably more than sufficient when initially creating
|
||||
them.
|
||||
|
||||
Signed-off-by: Ron Lee <ron@debian.org>
|
||||
|
||||
diff --git a/virtinst/diskbackend.py b/virtinst/diskbackend.py
|
||||
index 5f72d00..2c74a11 100644
|
||||
--- a/virtinst/diskbackend.py
|
||||
+++ b/virtinst/diskbackend.py
|
||||
@@ -383,7 +383,7 @@ class StorageCreator(_StorageBase):
|
||||
sparse = True
|
||||
fd = None
|
||||
try:
|
||||
- fd = os.open(self._path, os.O_WRONLY | os.O_CREAT)
|
||||
+ fd = os.open(self._path, os.O_WRONLY | os.O_CREAT, 0640)
|
||||
os.ftruncate(fd, size_bytes)
|
||||
finally:
|
||||
if fd:
|
||||
@@ -401,7 +401,7 @@ class StorageCreator(_StorageBase):
|
||||
try:
|
||||
try:
|
||||
src_fd = os.open(self._clone_path, os.O_RDONLY)
|
||||
- dst_fd = os.open(self._path, os.O_WRONLY | os.O_CREAT)
|
||||
+ dst_fd = os.open(self._path, os.O_WRONLY | os.O_CREAT, 0640)
|
||||
|
||||
i = 0
|
||||
while 1:
|
||||
diff --git a/virtinst/urlfetcher.py b/virtinst/urlfetcher.py
|
||||
index fba70f9..b51e524 100644
|
||||
--- a/virtinst/urlfetcher.py
|
||||
+++ b/virtinst/urlfetcher.py
|
||||
@@ -67,7 +67,7 @@ class _ImageFetcher(object):
|
||||
prefix = "virtinst-" + prefix
|
||||
if "VIRTINST_TEST_SUITE" in os.environ:
|
||||
fn = os.path.join(".", prefix)
|
||||
- fd = os.open(fn, os.O_RDWR | os.O_CREAT)
|
||||
+ fd = os.open(fn, os.O_RDWR | os.O_CREAT, 0640)
|
||||
else:
|
||||
(fd, fn) = tempfile.mkstemp(prefix=prefix,
|
||||
dir=self.scratchdir)
|
@ -1,48 +0,0 @@
|
||||
Subject: virtinst: add method to set connection keep-alive
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Tue Jul 1 12:54:38 2014 +0200
|
||||
Date: Wed Jul 2 15:31:40 2014 +0200:
|
||||
Git: 3606bb573df4132a70b9e0fe82a59cd49a400fa0
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
Subject: virt-manager: check if still connected every 20 seconds
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Tue Jul 1 13:06:05 2014 +0200
|
||||
Date: Wed Jul 2 15:31:40 2014 +0200:
|
||||
Git: 538c68a41dd0538c36e442ad37690b1b9c3debee
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtinst/connection.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/connection.py
|
||||
+++ virt-manager-1.0.1/virtinst/connection.py
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
-# Copyright 2013 Red Hat, Inc.
|
||||
+# Copyright 2013, 2014 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -201,6 +201,10 @@ class VirtualConnection(object):
|
||||
self._fetch_cache[key] = ret
|
||||
return ret
|
||||
|
||||
+ def set_keep_alive(self, interval, count):
|
||||
+ if hasattr(self._libvirtconn, "setKeepAlive"):
|
||||
+ self._libvirtconn.setKeepAlive(interval, count)
|
||||
+
|
||||
def fetch_all_pools(self):
|
||||
"""
|
||||
Returns a list of StoragePool objects
|
||||
Index: virt-manager-1.0.1/virtManager/connection.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/connection.py
|
||||
+++ virt-manager-1.0.1/virtManager/connection.py
|
||||
@@ -1112,6 +1112,7 @@ class vmmConnection(vmmGObject):
|
||||
logging.debug("%s capabilities:\n%s",
|
||||
self.get_uri(), self.caps.xml)
|
||||
self._add_conn_events()
|
||||
+ self._backend.setKeepAlive(20, 1)
|
||||
self.schedule_priority_tick(stats_update=True,
|
||||
pollvm=True, pollnet=True,
|
||||
pollpool=True, polliface=True,
|
@ -1,50 +0,0 @@
|
||||
Subject: console: prevent access to deleted objects
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Tue Jul 1 15:01:58 2014 +0200
|
||||
Date: Wed Jul 2 15:31:41 2014 +0200:
|
||||
Git: f4365b669acc36bdc61c57d793894305dcb9059a
|
||||
|
||||
last commits revealed that some objects can still be accessed by
|
||||
registered callbacks after the console is closed. Unregister these
|
||||
callbacks.
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/console.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/console.py
|
||||
+++ virt-manager-1.0.1/virtManager/console.py
|
||||
@@ -572,6 +572,7 @@ class SpiceViewer(Viewer):
|
||||
self.display = None
|
||||
self.audio = None
|
||||
self.main_channel = None
|
||||
+ self._main_channel_hids = []
|
||||
self.display_channel = None
|
||||
self.usbdev_manager = None
|
||||
|
||||
@@ -636,6 +637,11 @@ class SpiceViewer(Viewer):
|
||||
self.display.destroy()
|
||||
self.display = None
|
||||
self.display_channel = None
|
||||
+
|
||||
+ for i in self._main_channel_hids:
|
||||
+ self.main_channel.handler_disconnect(i)
|
||||
+ self._main_channel_hids = []
|
||||
+
|
||||
self.main_channel = None
|
||||
self.usbdev_manager = None
|
||||
|
||||
@@ -682,10 +688,12 @@ class SpiceViewer(Viewer):
|
||||
if self.console.tunnels:
|
||||
self.console.tunnels.unlock()
|
||||
self.main_channel = channel
|
||||
- self.main_channel.connect_after("channel-event",
|
||||
+ hid = self.main_channel.connect_after("channel-event",
|
||||
self._main_channel_event_cb)
|
||||
- self.main_channel.connect_after("notify::agent-connected",
|
||||
+ self._main_channel_hids.append(hid)
|
||||
+ hid = self.main_channel.connect_after("notify::agent-connected",
|
||||
self._agent_connected_cb)
|
||||
+ self._main_channel_hids.append(hid)
|
||||
|
||||
elif (type(channel) == SpiceClientGLib.DisplayChannel and
|
||||
not self.display):
|
@ -1,28 +0,0 @@
|
||||
Subject: connection: Handle unsupport KeepAlive (like test URIs)
|
||||
From: Cole Robinson crobinso@redhat.com Fri Jul 4 17:43:24 2014 -0400
|
||||
Date: Fri Jul 4 18:20:54 2014 -0400:
|
||||
Git: aa823b5b58d689e2a69a9822fd462a1333d8d415
|
||||
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/connection.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/connection.py
|
||||
+++ virt-manager-1.0.1/virtManager/connection.py
|
||||
@@ -1112,7 +1112,16 @@ class vmmConnection(vmmGObject):
|
||||
logging.debug("%s capabilities:\n%s",
|
||||
self.get_uri(), self.caps.xml)
|
||||
self._add_conn_events()
|
||||
- self._backend.setKeepAlive(20, 1)
|
||||
+
|
||||
+ try:
|
||||
+ self._backend.setKeepAlive(20, 1)
|
||||
+ except Exception, e:
|
||||
+ if (type(e) is not AttributeError and
|
||||
+ not util.is_error_nosupport(e)):
|
||||
+ raise
|
||||
+ logging.debug("Connection doesn't support KeepAlive, "
|
||||
+ "skipping")
|
||||
+
|
||||
self.schedule_priority_tick(stats_update=True,
|
||||
pollvm=True, pollnet=True,
|
||||
pollpool=True, polliface=True,
|
@ -1,55 +0,0 @@
|
||||
Subject: connection: Report error if things fall over during connection bring up
|
||||
From: Cole Robinson crobinso@redhat.com Fri Jul 4 17:37:42 2014 -0400
|
||||
Date: Fri Jul 4 18:20:54 2014 -0400:
|
||||
Git: e12d7a6a8c21f0d8e0331fa06f53523258bdfaae
|
||||
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/connection.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/connection.py
|
||||
+++ virt-manager-1.0.1/virtManager/connection.py
|
||||
@@ -1101,23 +1101,27 @@ class vmmConnection(vmmGObject):
|
||||
def _open_notify(self):
|
||||
logging.debug("Notifying open result")
|
||||
|
||||
- self.idle_emit("state-changed")
|
||||
-
|
||||
- if self.state == self.STATE_ACTIVE:
|
||||
- logging.debug("libvirt version=%s",
|
||||
- self._backend.local_libvirt_version())
|
||||
- logging.debug("daemon version=%s",
|
||||
- self._backend.daemon_version())
|
||||
- logging.debug("conn version=%s", self._backend.conn_version())
|
||||
- logging.debug("%s capabilities:\n%s",
|
||||
- self.get_uri(), self.caps.xml)
|
||||
- self._add_conn_events()
|
||||
- self._backend.setKeepAlive(20, 1)
|
||||
- self.schedule_priority_tick(stats_update=True,
|
||||
- pollvm=True, pollnet=True,
|
||||
- pollpool=True, polliface=True,
|
||||
- pollnodedev=True, pollmedia=True,
|
||||
- force=True)
|
||||
+ try:
|
||||
+ self.idle_emit("state-changed")
|
||||
+ if self.state == self.STATE_ACTIVE:
|
||||
+ logging.debug("libvirt version=%s",
|
||||
+ self._backend.local_libvirt_version())
|
||||
+ logging.debug("daemon version=%s",
|
||||
+ self._backend.daemon_version())
|
||||
+ logging.debug("conn version=%s", self._backend.conn_version())
|
||||
+ logging.debug("%s capabilities:\n%s",
|
||||
+ self.get_uri(), self.caps.xml)
|
||||
+ self._add_conn_events()
|
||||
+ self._backend.setKeepAlive(20, 1)
|
||||
+ self.schedule_priority_tick(stats_update=True,
|
||||
+ pollvm=True, pollnet=True,
|
||||
+ pollpool=True, polliface=True,
|
||||
+ pollnodedev=True, pollmedia=True,
|
||||
+ force=True)
|
||||
+ except Exception, e:
|
||||
+ self.close()
|
||||
+ self.connectError = (str(e),
|
||||
+ "".join(traceback.format_exc()), False)
|
||||
|
||||
if self.state == self.STATE_DISCONNECTED:
|
||||
if self.connectError:
|
@ -1,23 +0,0 @@
|
||||
Subject: network: refresh the XML definition on state update
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Thu Jul 3 13:55:50 2014 +0200
|
||||
Date: Tue Jul 8 00:05:09 2014 +0200:
|
||||
Git: cbb18b0e9626faa08d8f017a9e02466e5ba7b767
|
||||
|
||||
The XML definition returned by libvirt can change on a state
|
||||
transition. vmmNetwork.force_update_status invalidates the old
|
||||
definition.
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/network.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/network.py
|
||||
+++ virt-manager-1.0.1/virtManager/network.py
|
||||
@@ -80,6 +80,7 @@ class vmmNetwork(vmmLibvirtObject):
|
||||
def _set_active(self, state):
|
||||
if state == self._active:
|
||||
return
|
||||
+ self.refresh_xml()
|
||||
self.idle_emit(state and "started" or "stopped")
|
||||
self._active = state
|
||||
|
@ -1,24 +0,0 @@
|
||||
Subject: virt-manager, create: honor untoggled "Set a fixed MAC address"
|
||||
From: Giuseppe Scrivano gscrivan@redhat.com Mon Jul 21 11:28:28 2014 +0200
|
||||
Date: Tue Jul 22 09:25:05 2014 +0200:
|
||||
Git: 312b349fceffec38dd04aa35d053b082fe698f3a
|
||||
|
||||
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1083461
|
||||
|
||||
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.0.1/virtManager/create.py
|
||||
@@ -1674,7 +1674,9 @@ class vmmCreate(vmmGObjectUI):
|
||||
if not self.validate_storage_page():
|
||||
return False
|
||||
|
||||
- macaddr = self.widget("config-macaddr").get_text().strip()
|
||||
+ macaddr = None
|
||||
+ if self.widget("config-macaddr").get_sensitive():
|
||||
+ macaddr = self.widget("config-macaddr").get_text().strip()
|
||||
nettype = self.netlist.get_network_selection()[0]
|
||||
|
||||
if nettype is None:
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:aff2bd548f2b474404a7fc6dbf76db2beb1014a06589c8a289949d0eb097a215
|
||||
size 1323967
|
3
virt-manager-1.1.0.tar.bz2
Normal file
3
virt-manager-1.1.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b9362178ca3c9be7687881e7995f69018cc97f1d56ee99451e0f1b5bd2d72c4c
|
||||
size 1343570
|
@ -1,26 +1,26 @@
|
||||
Index: virt-manager-1.0.1/virtManager/config.py
|
||||
Index: virt-manager-1.1.0/virtManager/config.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/config.py
|
||||
+++ virt-manager-1.0.1/virtManager/config.py
|
||||
@@ -21,8 +21,10 @@ import os
|
||||
--- 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
|
||||
|
||||
# pylint: disable=E0611
|
||||
+import gi
|
||||
from gi.repository import Gio
|
||||
from gi.repository import GLib
|
||||
+gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk
|
||||
# pylint: enable=E0611
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/console.py
|
||||
from virtinst import CPU
|
||||
Index: virt-manager-1.1.0/virtManager/console.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/console.py
|
||||
+++ virt-manager-1.0.1/virtManager/console.py
|
||||
@@ -21,10 +21,13 @@
|
||||
--- 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.
|
||||
#
|
||||
|
||||
# pylint: disable=E0611
|
||||
+import gi
|
||||
from gi.repository import GObject
|
||||
from gi.repository import Gtk
|
||||
@ -30,4 +30,4 @@ Index: virt-manager-1.0.1/virtManager/console.py
|
||||
+gi.require_version('SpiceClientGtk', '3.0')
|
||||
from gi.repository import SpiceClientGtk
|
||||
from gi.repository import SpiceClientGLib
|
||||
# pylint: enable=E0611
|
||||
|
||||
|
@ -1,3 +1,77 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 22 13:33:25 MDT 2014 - carnold@suse.com
|
||||
|
||||
- Update to virt-manager 1.1.0
|
||||
virt-manager-1.1.0.tar.bz2
|
||||
* Switch to libosinfo as OS metadata database (Giuseppe Scrivano)
|
||||
* Use libosinfo for OS detection from CDROM media labels (Giuseppe Scrivano)
|
||||
* Use libosinfo for improved OS defaults, like recommended disk size (Giuseppe Scrivano)
|
||||
* virt-image tool has been removed, as previously announced
|
||||
* Enable Hyper-V enlightenments for Windows VMs
|
||||
* Revert virtio-console default, back to plain serial console
|
||||
* Experimental q35 option in new VM ‘customize’ dialog
|
||||
* UI for virtual network QoS settings (Giuseppe Scrivano)
|
||||
* virt-install: –disk discard= support (Jim Minter)
|
||||
* addhardware: Add spiceport UI (Marc-André Lureau)
|
||||
* virt-install: –events on_poweroff etc. support (Chen Hanxiao)
|
||||
* cli –network portgroup= support and UI support
|
||||
* cli –boot initargs= and UI support
|
||||
* addhardware: allow setting controller model (Chen Hanxiao)
|
||||
* virt-install: support setting hugepage options (Chen Hanxiao)
|
||||
- Drop upstream patches and old tarball
|
||||
virt-manager-1.0.1.tar.bz2
|
||||
5332ee4d-enable-media-detection-for-ISO-images.patch
|
||||
53341e7e-hide-hardware-removal-for-non-devices.patch
|
||||
53342f31-set-right-ip-address-for-ipv6.patch
|
||||
53375bad-raise-value-error-when-no-ipaddr-set.patch
|
||||
53388de2-show-port-number-for-active-autoport-VM.patch
|
||||
53397ae0-check-ip-address-format.patch
|
||||
53399b45-hook-into-domain-balloon-event.patch
|
||||
533d708d-fix-showing-vcpus-values.patch
|
||||
533d7602-fix-changing-graphics-type.patch
|
||||
533d7be7-clarify-iscsi-IQN-fields.patch
|
||||
5345682c-addstorage-remove-whitespace-for-storage-path.patch
|
||||
534bcfa0-use-uniformed-expression-of-Default.patch
|
||||
534be092-early-detect-ftp-connection-errors.patch
|
||||
534d45db-hiding-removebutton-for-USB-controller.patch
|
||||
534d6406-display-the-domain-for-PCI-devices.patch
|
||||
534eafe4-avoid-useless-errors-when-connection-closes.patch
|
||||
5350d9cc-display-error-on-empty-installation-URL.patch
|
||||
535584ed-fix-target-validation-when-editing-device.patch
|
||||
535fb6f6-hide-scrollbar-until-something-scrollable.patch
|
||||
535fe0c2-fix-screenshot-with-qxl-spice.patch
|
||||
535feaca-fix-storage-when-directory-name-contains-whitespace.patch
|
||||
535ff0b7-fix-install-when-one-package-is-already-installed.patch
|
||||
536152fe-fix-error-detecting-OS-in-show-all-list.patch
|
||||
536154d8-show-error-if-launching-delete-dialog-fails.patch
|
||||
53615662-call-path_exists-before-getting-storage-volume.patch
|
||||
536677aa-better-handling-of-keyboard-input-type.patch
|
||||
5385d602-lxc-no-default-disk.patch
|
||||
53869170-virt-install-add-events-support.patch
|
||||
538a11dc-raise-error-if-populating-summary-page-fails.patch
|
||||
538a3609-virtconv-fix-use-of-relative-OVF-file.patch
|
||||
538a3ba9-diskbackend-start-pool-if-not-running.patch
|
||||
538a6862-vnc-dont-force-keyboard-grab-before-widget-is-realized.patch
|
||||
538ca3f3-use-correct-dictionary-keys-for-old-pool-net-polling.patch
|
||||
538d00a4-xen-keyboard-cant-be-removed.patch
|
||||
538e2f74-fix-pool-create-call.patch
|
||||
538edb3b-manpage-fix-incorrect-description.patch
|
||||
5397b647-createnet-enable-specifying-29-subnet.patch
|
||||
539e8cca-createpool-fix-creation-of-gluster-pools.patch
|
||||
53a05e73-fix-edit-maxvcpus.patch
|
||||
53a995cb-fix-usb-storage-removable-syntax.patch
|
||||
53ac1f8d-createnet-validate-last-page-before-creating-network.patch
|
||||
53ac1f8d-fix-show_err-typo.patch
|
||||
53ad17e6-createnet-fix-a-small-pylint.patch
|
||||
53b39a13-dont-create-disk-images-world-readable-executable.patch
|
||||
53b409bc-add-keep-alive-method-and-connection-check.patch
|
||||
53b409bd-console-prevent-access-to-deleted-objects.patch
|
||||
53b728c6-connection-handle-unsupported-KeepAlive.patch
|
||||
53b728c6-report-error-during-connection-bring-up.patch
|
||||
53bb1995-network-refresh-XML-definition-on-state-update.patch
|
||||
53ce11d1-honor-untoggled-set-fixed-MAC-address.patch
|
||||
- Dropped xend based virtman-autorestart.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 20 06:40:47 UTC 2014 - dimstar@opensuse.org
|
||||
|
||||
|
@ -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"
|
||||
@ -23,11 +22,11 @@
|
||||
%define libvirt_xen_packages ""
|
||||
%define preferred_distros "sles,opensuse"
|
||||
%define kvm_packages ""
|
||||
%define _version 1.0.1
|
||||
%define _version 1.1.0
|
||||
%define _release 1
|
||||
|
||||
Name: virt-manager
|
||||
Version: 1.0.1
|
||||
Version: 1.1.0
|
||||
Release: 0
|
||||
Summary: Virtual Machine Manager
|
||||
License: GPL-2.0+
|
||||
@ -36,63 +35,12 @@ Url: http://virt-manager.org/
|
||||
Source0: %{name}-%{version}.tar.bz2
|
||||
Source1: virt-install.rb
|
||||
Source2: virt-install.desktop
|
||||
Patch1: 5332ee4d-enable-media-detection-for-ISO-images.patch
|
||||
Patch2: 53341e7e-hide-hardware-removal-for-non-devices.patch
|
||||
Patch3: 53342f31-set-right-ip-address-for-ipv6.patch
|
||||
Patch4: 53375bad-raise-value-error-when-no-ipaddr-set.patch
|
||||
Patch5: 53388de2-show-port-number-for-active-autoport-VM.patch
|
||||
Patch6: 53397ae0-check-ip-address-format.patch
|
||||
Patch7: 53399b45-hook-into-domain-balloon-event.patch
|
||||
Patch8: 533d708d-fix-showing-vcpus-values.patch
|
||||
Patch9: 533d7602-fix-changing-graphics-type.patch
|
||||
Patch10: 533d7be7-clarify-iscsi-IQN-fields.patch
|
||||
Patch11: 5345682c-addstorage-remove-whitespace-for-storage-path.patch
|
||||
Patch12: 534bcfa0-use-uniformed-expression-of-Default.patch
|
||||
Patch13: 534be092-early-detect-ftp-connection-errors.patch
|
||||
Patch14: 534d45db-hiding-removebutton-for-USB-controller.patch
|
||||
Patch15: 534d6406-display-the-domain-for-PCI-devices.patch
|
||||
Patch16: 534eafe4-avoid-useless-errors-when-connection-closes.patch
|
||||
Patch17: 5350d9cc-display-error-on-empty-installation-URL.patch
|
||||
Patch18: 535584ed-fix-target-validation-when-editing-device.patch
|
||||
Patch19: 535fb6f6-hide-scrollbar-until-something-scrollable.patch
|
||||
Patch20: 535fe0c2-fix-screenshot-with-qxl-spice.patch
|
||||
Patch21: 535feaca-fix-storage-when-directory-name-contains-whitespace.patch
|
||||
Patch22: 535ff0b7-fix-install-when-one-package-is-already-installed.patch
|
||||
Patch23: 536152fe-fix-error-detecting-OS-in-show-all-list.patch
|
||||
Patch24: 536154d8-show-error-if-launching-delete-dialog-fails.patch
|
||||
Patch25: 53615662-call-path_exists-before-getting-storage-volume.patch
|
||||
Patch26: 536677aa-better-handling-of-keyboard-input-type.patch
|
||||
Patch27: 5385d602-lxc-no-default-disk.patch
|
||||
Patch28: 53869170-virt-install-add-events-support.patch
|
||||
Patch29: 538a11dc-raise-error-if-populating-summary-page-fails.patch
|
||||
Patch30: 538a3609-virtconv-fix-use-of-relative-OVF-file.patch
|
||||
Patch31: 538a3ba9-diskbackend-start-pool-if-not-running.patch
|
||||
Patch32: 538a6862-vnc-dont-force-keyboard-grab-before-widget-is-realized.patch
|
||||
Patch33: 538ca3f3-use-correct-dictionary-keys-for-old-pool-net-polling.patch
|
||||
Patch34: 538d00a4-xen-keyboard-cant-be-removed.patch
|
||||
Patch35: 538e2f74-fix-pool-create-call.patch
|
||||
Patch36: 538edb3b-manpage-fix-incorrect-description.patch
|
||||
Patch37: 5397b647-createnet-enable-specifying-29-subnet.patch
|
||||
Patch38: 539e8cca-createpool-fix-creation-of-gluster-pools.patch
|
||||
Patch39: 53a05e73-fix-edit-maxvcpus.patch
|
||||
Patch40: 53a995cb-fix-usb-storage-removable-syntax.patch
|
||||
Patch41: 53ac1f8d-fix-show_err-typo.patch
|
||||
Patch42: 53ac1f8d-createnet-validate-last-page-before-creating-network.patch
|
||||
Patch43: 53ad17e6-createnet-fix-a-small-pylint.patch
|
||||
Patch44: 53b39a13-dont-create-disk-images-world-readable-executable.patch
|
||||
Patch45: 53b409bc-add-keep-alive-method-and-connection-check.patch
|
||||
Patch46: 53b409bd-console-prevent-access-to-deleted-objects.patch
|
||||
Patch47: 53b728c6-report-error-during-connection-bring-up.patch
|
||||
Patch48: 53b728c6-connection-handle-unsupported-KeepAlive.patch
|
||||
Patch49: 53bb1995-network-refresh-XML-definition-on-state-update.patch
|
||||
Patch50: 53ce11d1-honor-untoggled-set-fixed-MAC-address.patch
|
||||
Patch70: virtman-desktop.patch
|
||||
Patch71: virtman-cdrom.patch
|
||||
Patch72: virtman-kvm.patch
|
||||
Patch73: virtman-keycombo.patch
|
||||
Patch74: virtman-eepro100.patch
|
||||
Patch75: virtman-supported-disk-formats.patch
|
||||
Patch76: virtman-autorestart.patch
|
||||
Patch80: virtman-default-guest-from-host-os.patch
|
||||
Patch81: virtman-default-to-xen-pv.patch
|
||||
Patch82: virtman-autoyast-support.patch
|
||||
@ -138,6 +86,7 @@ Requires: avahi
|
||||
Requires: dbus-1-x11
|
||||
Requires: dconf
|
||||
Requires: gtk3
|
||||
Requires: libosinfo >= 0.2.10
|
||||
Requires: python-gconf
|
||||
Requires: virt-manager-common = %{verrel}
|
||||
Requires: vm-install >= 0.5.6
|
||||
@ -196,7 +145,6 @@ Requires: virt-manager-common = %{verrel}
|
||||
Provides: python-virtinst
|
||||
Provides: virt-clone
|
||||
Provides: virt-convert
|
||||
Provides: virt-image
|
||||
Obsoletes: python-virtinst <= 0.600.4
|
||||
Supplements: virt-manager
|
||||
|
||||
@ -208,63 +156,12 @@ machine).
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
%patch20 -p1
|
||||
%patch21 -p1
|
||||
%patch22 -p1
|
||||
%patch23 -p1
|
||||
%patch24 -p1
|
||||
%patch25 -p1
|
||||
%patch26 -p1
|
||||
%patch27 -p1
|
||||
%patch28 -p1
|
||||
%patch29 -p1
|
||||
%patch30 -p1
|
||||
%patch31 -p1
|
||||
%patch32 -p1
|
||||
%patch33 -p1
|
||||
%patch34 -p1
|
||||
%patch35 -p1
|
||||
%patch36 -p1
|
||||
%patch37 -p1
|
||||
%patch38 -p1
|
||||
%patch39 -p1
|
||||
%patch40 -p1
|
||||
%patch41 -p1
|
||||
%patch42 -p1
|
||||
%patch43 -p1
|
||||
%patch44 -p1
|
||||
%patch45 -p1
|
||||
%patch46 -p1
|
||||
%patch47 -p1
|
||||
%patch48 -p1
|
||||
%patch49 -p1
|
||||
%patch50 -p1
|
||||
%patch70 -p1
|
||||
%patch71 -p1
|
||||
%patch72 -p1
|
||||
%patch73 -p1
|
||||
%patch74 -p1
|
||||
%patch75 -p1
|
||||
%patch76 -p1
|
||||
%patch80 -p1
|
||||
%patch81 -p1
|
||||
%patch82 -p1
|
||||
@ -402,23 +299,21 @@ fi
|
||||
%{_mandir}/man1/virt-install.1*
|
||||
%{_mandir}/man1/virt-clone.1*
|
||||
%{_mandir}/man1/virt-convert.1*
|
||||
%{_mandir}/man1/virt-image.1*
|
||||
%{_mandir}/man1/virt-xml.1*
|
||||
%{_mandir}/man5/virt-image.5*
|
||||
|
||||
%{_datadir}/%{name}/virt-install
|
||||
%{_datadir}/%{name}/virt-clone
|
||||
%{_datadir}/%{name}/virt-image
|
||||
%{_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}/appdata
|
||||
%{_datadir}/YaST2/clients/virt-install.rb
|
||||
%{_datadir}/applications/YaST2/virt-install.desktop
|
||||
|
||||
%{_bindir}/virt-install
|
||||
%{_bindir}/virt-clone
|
||||
%{_bindir}/virt-image
|
||||
%{_bindir}/virt-convert
|
||||
%{_bindir}/virt-xml
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
bnc#885308
|
||||
|
||||
Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
Index: virt-manager-1.1.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.0.1/virtinst/guest.py
|
||||
@@ -627,6 +627,15 @@ class Guest(XMLBuilder):
|
||||
--- virt-manager-1.1.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.1.0/virtinst/guest.py
|
||||
@@ -637,6 +637,15 @@ class Guest(XMLBuilder):
|
||||
return
|
||||
self.add_device(virtinst.VirtualGraphics(self.conn))
|
||||
|
||||
@ -20,7 +20,7 @@ Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
def add_default_devices(self):
|
||||
self.add_default_graphics()
|
||||
self.add_default_video_device()
|
||||
@@ -634,6 +643,7 @@ class Guest(XMLBuilder):
|
||||
@@ -644,6 +653,7 @@ class Guest(XMLBuilder):
|
||||
self.add_default_console_device()
|
||||
self.add_default_usb_controller()
|
||||
self.add_default_channels()
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
@@ -303,6 +303,88 @@ def _distroFromTreeinfo(fetcher, arch, v
|
||||
--- virt-manager-1.1.0.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
@@ -321,6 +321,88 @@ def _distroFromTreeinfo(fetcher, arch, v
|
||||
|
||||
return ob
|
||||
|
||||
@ -91,7 +91,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
|
||||
def getDistroStore(guest, fetcher):
|
||||
stores = []
|
||||
@@ -319,6 +401,10 @@ def getDistroStore(guest, fetcher):
|
||||
@@ -337,6 +419,10 @@ def getDistroStore(guest, fetcher):
|
||||
if dist:
|
||||
return dist
|
||||
|
||||
@ -99,10 +99,10 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
+ if dist:
|
||||
+ return dist
|
||||
+
|
||||
# FIXME: This 'distro ==' doesn't cut it. 'distro' is from our os
|
||||
# dictionary, so would look like 'fedora9' or 'rhel5', so this needs
|
||||
# to be a bit more intelligent
|
||||
@@ -815,12 +901,11 @@ class SLDistro(RHELDistro):
|
||||
stores = _allstores[:]
|
||||
|
||||
# If user manually specified an os_distro, bump it's URL class
|
||||
@@ -819,29 +905,59 @@ class SLDistro(RHELDistro):
|
||||
|
||||
class SuseDistro(Distro):
|
||||
name = "SUSE"
|
||||
@ -116,20 +116,20 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
Distro.__init__(self, *args, **kwargs)
|
||||
if re.match(r'i[4-9]86', self.arch):
|
||||
self.arch = 'i386'
|
||||
@@ -831,22 +916,44 @@ class SuseDistro(Distro):
|
||||
oldkern += "64"
|
||||
oldinit += "64"
|
||||
|
||||
- # Tested with Opensuse >= 10.2, 11, and sles 10
|
||||
- self._hvm_kernel_paths = [("boot/%s/loader/linux" % self.arch,
|
||||
- "boot/%s/loader/initrd" % self.arch)]
|
||||
- # Tested with Opensuse 10.0
|
||||
- self._hvm_kernel_paths.append(("boot/loader/%s" % oldkern,
|
||||
- "boot/loader/%s" % oldinit))
|
||||
-
|
||||
- # Matches Opensuse > 10.2 and sles 10
|
||||
- self._xen_kernel_paths = [("boot/%s/vmlinuz-xen" % self.arch,
|
||||
- "boot/%s/initrd-xen" % self.arch)]
|
||||
+ oldkern = "linux"
|
||||
+ oldinit = "initrd"
|
||||
+ if self.arch == "x86_64":
|
||||
+ oldkern += "64"
|
||||
+ oldinit += "64"
|
||||
+
|
||||
+ if self.arch == "s390x":
|
||||
+ self._hvm_kernel_paths = [ ("boot/%s/linux" % self.arch,
|
||||
+ "boot/%s/initrd" % self.arch) ]
|
||||
@ -171,8 +171,8 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
return True
|
||||
|
||||
def _get_method_arg(self):
|
||||
@@ -867,6 +974,27 @@ class SuseDistro(Distro):
|
||||
return name
|
||||
@@ -861,6 +977,27 @@ class SuseDistro(Distro):
|
||||
return osobj.name
|
||||
return self.os_variant
|
||||
|
||||
+class SLESDistro(SuseDistro):
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
@@ -386,6 +386,24 @@ def _distroFromContent(fetcher, arch, vm
|
||||
--- virt-manager-1.1.0.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
@@ -404,6 +404,24 @@ def _distroFromContent(fetcher, arch, vm
|
||||
|
||||
return ob
|
||||
|
||||
@ -27,7 +27,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
def getDistroStore(guest, fetcher):
|
||||
stores = []
|
||||
logging.debug("Finding distro store for location=%s", fetcher.location)
|
||||
@@ -405,6 +423,10 @@ def getDistroStore(guest, fetcher):
|
||||
@@ -423,6 +441,10 @@ def getDistroStore(guest, fetcher):
|
||||
if dist:
|
||||
return dist
|
||||
|
||||
@ -35,10 +35,10 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
+ if dist:
|
||||
+ return dist
|
||||
+
|
||||
# FIXME: This 'distro ==' doesn't cut it. 'distro' is from our os
|
||||
# dictionary, so would look like 'fedora9' or 'rhel5', so this needs
|
||||
# to be a bit more intelligent
|
||||
@@ -1151,6 +1173,13 @@ class ALTLinuxDistro(Distro):
|
||||
stores = _allstores[:]
|
||||
|
||||
# If user manually specified an os_distro, bump it's URL class
|
||||
@@ -1158,6 +1180,13 @@ class ALTLinuxDistro(Distro):
|
||||
logging.debug("Regex didn't match, not a %s distro", self.name)
|
||||
return False
|
||||
|
||||
@ -52,22 +52,20 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
|
||||
# Build list of all *Distro classes
|
||||
def _build_distro_list():
|
||||
Index: virt-manager-1.0.1/virtinst/osdict.py
|
||||
Index: virt-manager-1.1.0/virtinst/osdict.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/osdict.py
|
||||
+++ virt-manager-1.0.1/virtinst/osdict.py
|
||||
@@ -316,9 +316,12 @@ _add_var("win2k", "Microsoft Windows 200
|
||||
_add_var("winxp", "Microsoft Windows XP", sortby="mswin5", supported=True, xen_disable_acpi=True, parent="windows")
|
||||
_add_var("winxp64", "Microsoft Windows XP (x86_64)", supported=True, sortby="mswin564", parent="windows")
|
||||
_add_var("win2k3", "Microsoft Windows Server 2003", supported=True, sortby="mswinserv2003", parent="windows")
|
||||
-_add_var("win2k8", "Microsoft Windows Server 2008 (or later)", supported=True, sortby="mswinserv2008", parent="windows")
|
||||
--- 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("vista", "Microsoft Windows Vista", supported=True, sortby="mswin6", parent="windows")
|
||||
-_add_var("win7", "Microsoft Windows 7 (or later)", supported=True, sortby="mswin7", 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")
|
||||
+
|
||||
|
||||
|
||||
_add_type("solaris", "Solaris", clock="localtime")
|
||||
_os_data_loaded = False
|
||||
_os_loader = None
|
||||
|
@ -4,11 +4,11 @@ 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.0.1/virtinst/urlfetcher.py
|
||||
Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
@@ -140,8 +140,11 @@ class _HTTPImageFetcher(_URIImageFetcher
|
||||
--- 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:
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: virt-manager-1.0.1/virtManager/create.py
|
||||
Index: virt-manager-1.1.0/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.0.1/virtManager/create.py
|
||||
@@ -337,7 +337,18 @@ class vmmCreate(vmmGObjectUI):
|
||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
||||
+++ virt-manager-1.1.0/virtManager/create.py
|
||||
@@ -342,7 +342,18 @@ class vmmCreate(vmmGObjectUI):
|
||||
self.widget("method-local").set_active(True)
|
||||
self.widget("create-conn").set_active(-1)
|
||||
activeconn = self.populate_conn_list(urihint)
|
||||
@ -22,14 +22,14 @@ Index: virt-manager-1.0.1/virtManager/create.py
|
||||
|
||||
try:
|
||||
self.set_conn(activeconn, force_validate=True)
|
||||
Index: virt-manager-1.0.1/virtManager/netlist.py
|
||||
Index: virt-manager-1.1.0/virtManager/netlist.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/netlist.py
|
||||
+++ virt-manager-1.0.1/virtManager/netlist.py
|
||||
@@ -174,10 +174,20 @@ class vmmNetworkList(vmmGObjectUI):
|
||||
if nic.target_dev and nic.target_dev not in vnet_taps:
|
||||
vnet_taps.append(nic.target_dev)
|
||||
--- virt-manager-1.1.0.orig/virtManager/netlist.py
|
||||
+++ virt-manager-1.1.0/virtManager/netlist.py
|
||||
@@ -167,9 +167,19 @@ class vmmNetworkList(vmmGObjectUI):
|
||||
return rows, vnet_bridges, default_label
|
||||
|
||||
def _find_physical_devices(self, vnet_bridges):
|
||||
+ def check_for_inet(bname):
|
||||
+ if bname is not None:
|
||||
+ from subprocess import Popen, PIPE
|
||||
@ -39,33 +39,29 @@ Index: virt-manager-1.0.1/virtManager/netlist.py
|
||||
+ return True
|
||||
+ return False
|
||||
+
|
||||
bridge_dict = {}
|
||||
iface_dict = {}
|
||||
hasShared = False
|
||||
brIdxLabel = None
|
||||
+ brIdxLabel_with_inet = None
|
||||
rows = []
|
||||
can_default = False
|
||||
default_label = None
|
||||
+ default_label_with_inet = None
|
||||
skip_ifaces = ["lo"]
|
||||
|
||||
for name in self.conn.list_net_device_paths():
|
||||
@@ -218,6 +228,11 @@ class vmmNetworkList(vmmGObjectUI):
|
||||
if hasShared and not brIdxLabel:
|
||||
brIdxLabel = label
|
||||
vnet_taps = []
|
||||
@@ -228,10 +238,18 @@ class vmmNetworkList(vmmGObjectUI):
|
||||
if can_default and not default_label:
|
||||
default_label = label
|
||||
|
||||
+ # Default to a bridge that has an actual inet addr
|
||||
+ if brIdxLabel_with_inet is None:
|
||||
+ if check_for_inet(bridge_name):
|
||||
+ brIdxLabel_with_inet = label
|
||||
+ if default_label_with_inet is None:
|
||||
+ if check_for_inet(source_name):
|
||||
+ default_label_with_inet = label
|
||||
+
|
||||
row = self._build_source_row(
|
||||
nettype, bridge_name, label, sensitive, True,
|
||||
key=br.get_name())
|
||||
@@ -227,6 +242,9 @@ class vmmNetworkList(vmmGObjectUI):
|
||||
else:
|
||||
iface_dict[label] = row
|
||||
rows.append(self._build_source_row(
|
||||
nettype, source_name, label, sensitive, True,
|
||||
key=name))
|
||||
|
||||
+ if brIdxLabel and brIdxLabel_with_inet is not None:
|
||||
+ brIdxLabel = brIdxLabel_with_inet
|
||||
+ if default_label and default_label_with_inet is not None:
|
||||
+ default_label = default_label_with_inet
|
||||
+
|
||||
return bridge_dict, iface_dict, brIdxLabel
|
||||
return rows, default_label
|
||||
|
||||
def _populate_network_list(self):
|
||||
|
@ -1,10 +1,10 @@
|
||||
bnc#888251
|
||||
|
||||
Index: virt-manager-1.0.1/virtinst/util.py
|
||||
Index: virt-manager-1.1.0/virtinst/util.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/util.py
|
||||
+++ virt-manager-1.0.1/virtinst/util.py
|
||||
@@ -626,3 +626,22 @@ def getInstallRepos(enabled_sources_only
|
||||
--- 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
|
||||
zypper_output.insert(0, dom0_inst_source)
|
||||
return (index_dom0, zypper_output)
|
||||
|
||||
@ -27,11 +27,11 @@ Index: virt-manager-1.0.1/virtinst/util.py
|
||||
+
|
||||
+ return url
|
||||
+
|
||||
Index: virt-manager-1.0.1/virtinst/distroinstaller.py
|
||||
Index: virt-manager-1.1.0/virtinst/distroinstaller.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/distroinstaller.py
|
||||
+++ virt-manager-1.0.1/virtinst/distroinstaller.py
|
||||
@@ -50,6 +50,8 @@ def _sanitize_url(url):
|
||||
--- virt-manager-1.1.0.orig/virtinst/distroinstaller.py
|
||||
+++ virt-manager-1.1.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
|
||||
"""
|
||||
@ -40,10 +40,10 @@ Index: virt-manager-1.0.1/virtinst/distroinstaller.py
|
||||
if url.startswith("nfs://"):
|
||||
# Convert RFC compliant NFS nfs://server/path/to/distro
|
||||
# to what mount/anaconda expect nfs:server:/path/to/distro
|
||||
Index: virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
--- virt-manager-1.1.0.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
@@ -33,6 +33,7 @@ import urlparse
|
||||
import urlgrabber.grabber as grabber
|
||||
|
||||
@ -52,7 +52,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
|
||||
|
||||
#########################################################################
|
||||
@@ -210,7 +211,8 @@ class _MountedImageFetcher(_LocalImageFe
|
||||
@@ -223,7 +224,8 @@ class _MountedImageFetcher(_LocalImageFe
|
||||
|
||||
logging.debug("Preparing mount at " + self.srcdir)
|
||||
if self.location.startswith("nfs:"):
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
Index: virt-manager-1.1.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.0.1/virtinst/guest.py
|
||||
@@ -623,7 +623,7 @@ class Guest(XMLBuilder):
|
||||
--- virt-manager-1.1.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.1.0/virtinst/guest.py
|
||||
@@ -633,7 +633,7 @@ class Guest(XMLBuilder):
|
||||
return
|
||||
if self.os.is_container():
|
||||
return
|
||||
@ -11,7 +11,7 @@ Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
return
|
||||
self.add_device(virtinst.VirtualGraphics(self.conn))
|
||||
|
||||
@@ -752,6 +752,8 @@ class Guest(XMLBuilder):
|
||||
@@ -771,6 +771,8 @@ class Guest(XMLBuilder):
|
||||
if self.conn.is_qemu():
|
||||
if self.os.arch == "s390x":
|
||||
preferred_emulator = "/usr/bin/qemu-system-s390x"
|
||||
@ -20,7 +20,7 @@ Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
else:
|
||||
preferred_emulator = "/usr/bin/qemu-system-x86_64"
|
||||
else:
|
||||
@@ -847,7 +849,7 @@ class Guest(XMLBuilder):
|
||||
@@ -877,7 +879,7 @@ class Guest(XMLBuilder):
|
||||
if not self._lookup_osdict_key(key, False):
|
||||
return False
|
||||
|
||||
@ -29,7 +29,7 @@ Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
return True
|
||||
if (self.os.is_arm_vexpress() and
|
||||
self.os.dtb and
|
||||
@@ -898,6 +900,8 @@ class Guest(XMLBuilder):
|
||||
@@ -928,6 +930,8 @@ class Guest(XMLBuilder):
|
||||
net_model = None
|
||||
elif self._can_virtio("virtionet"):
|
||||
net_model = "virtio"
|
||||
@ -38,11 +38,11 @@ Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
else:
|
||||
net_model = self._lookup_osdict_key("netmodel", None)
|
||||
|
||||
Index: virt-manager-1.0.1/virtinst/osxml.py
|
||||
Index: virt-manager-1.1.0/virtinst/osxml.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/osxml.py
|
||||
+++ virt-manager-1.0.1/virtinst/osxml.py
|
||||
@@ -55,6 +55,8 @@ class OSXML(XMLBuilder):
|
||||
--- 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"
|
||||
@ -51,11 +51,11 @@ Index: virt-manager-1.0.1/virtinst/osxml.py
|
||||
|
||||
_XML_ROOT_NAME = "os"
|
||||
_XML_PROP_ORDER = ["arch", "os_type", "loader",
|
||||
Index: virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.0.1/virtinst/urlfetcher.py
|
||||
@@ -940,10 +940,11 @@ class SuseDistro(Distro):
|
||||
--- virt-manager-1.1.0.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.1.0/virtinst/urlfetcher.py
|
||||
@@ -944,10 +944,11 @@ class SuseDistro(Distro):
|
||||
oldkern += "64"
|
||||
oldinit += "64"
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
Index: virt-manager-1.1.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.0.1/virtinst/guest.py
|
||||
@@ -351,8 +351,18 @@ class Guest(XMLBuilder):
|
||||
--- virt-manager-1.1.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.1.0/virtinst/guest.py
|
||||
@@ -353,8 +353,18 @@ class Guest(XMLBuilder):
|
||||
if (not install and
|
||||
self.os.is_xenpv() and
|
||||
not self.os.kernel):
|
||||
@ -23,10 +23,10 @@ Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
|
||||
return self.get_xml_config()
|
||||
|
||||
Index: virt-manager-1.0.1/virtinst/installer.py
|
||||
Index: virt-manager-1.1.0/virtinst/installer.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/installer.py
|
||||
+++ virt-manager-1.0.1/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):
|
||||
dev.validate()
|
||||
return dev
|
||||
|
@ -12,14 +12,14 @@ status affects the hypervisor connection.
|
||||
|
||||
Signed-off-by: Chunyan Liu <cyliu@suse.com>
|
||||
|
||||
Index: virt-manager-1.0.1/virtinst/pollhelpers.py
|
||||
Index: virt-manager-1.1.0/virtinst/pollhelpers.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/pollhelpers.py
|
||||
+++ virt-manager-1.0.1/virtinst/pollhelpers.py
|
||||
@@ -138,6 +138,19 @@ def fetch_pools(backend, origmap, build_
|
||||
--- 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_
|
||||
|
||||
if backend.check_support(
|
||||
backend.SUPPORT_CONN_LISTALLSTORAGEPOOLS):
|
||||
backend.SUPPORT_CONN_LISTALLSTORAGEPOOLS) and not _force_old_poll:
|
||||
+
|
||||
+ # Refresh pools before poll_helper. For those
|
||||
+ # 'active' but target path not exist (or other reasons
|
||||
@ -34,5 +34,5 @@ Index: virt-manager-1.0.1/virtinst/pollhelpers.py
|
||||
+ pass
|
||||
+
|
||||
return _new_poll_helper(origmap, name,
|
||||
backend.listAllStoragePools,
|
||||
"UUIDString", build_func)
|
||||
backend.listAllStoragePools, build_func)
|
||||
else:
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
Index: virt-manager-1.1.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.0.1/virtinst/guest.py
|
||||
@@ -346,6 +346,12 @@ class Guest(XMLBuilder):
|
||||
--- virt-manager-1.1.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.1.0/virtinst/guest.py
|
||||
@@ -348,6 +348,12 @@ class Guest(XMLBuilder):
|
||||
self.on_reboot = action
|
||||
self.on_crash = action
|
||||
|
||||
@ -15,7 +15,7 @@ Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
self._set_defaults()
|
||||
|
||||
self.bootloader = None
|
||||
@@ -365,7 +371,10 @@ class Guest(XMLBuilder):
|
||||
@@ -367,7 +373,10 @@ class Guest(XMLBuilder):
|
||||
self.bootloader = "/usr/bin/pygrub"
|
||||
self.os.clear()
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
Index: virt-manager-1.1.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.0.1/virtinst/guest.py
|
||||
--- virt-manager-1.1.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.1.0/virtinst/guest.py
|
||||
@@ -19,6 +19,7 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
# MA 02110-1301 USA.
|
||||
@ -10,7 +10,7 @@ Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
import logging
|
||||
|
||||
import urlgrabber.progress as progress
|
||||
@@ -729,14 +730,22 @@ class Guest(XMLBuilder):
|
||||
@@ -748,14 +749,22 @@ class Guest(XMLBuilder):
|
||||
self.emulator = None
|
||||
return
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: virt-manager-1.0.0/virtinst/storage.py
|
||||
Index: virt-manager-1.1.0/virtinst/storage.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.0.orig/virtinst/storage.py
|
||||
+++ virt-manager-1.0.0/virtinst/storage.py
|
||||
@@ -403,7 +403,7 @@ class StoragePool(_StorageObject):
|
||||
--- virt-manager-1.1.0.orig/virtinst/storage.py
|
||||
+++ virt-manager-1.1.0/virtinst/storage.py
|
||||
@@ -405,7 +405,7 @@ class StoragePool(_StorageObject):
|
||||
def list_formats(self):
|
||||
if self.type == self.TYPE_FS:
|
||||
return ["auto", "ext2", "ext3", "ext4", "ufs", "iso9660", "udf",
|
||||
|
@ -1,39 +1,26 @@
|
||||
Index: virt-manager-1.0.1/virtinst/osdict.py
|
||||
Index: virt-manager-1.1.0/virtinst/osdict.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/osdict.py
|
||||
+++ virt-manager-1.0.1/virtinst/osdict.py
|
||||
@@ -259,11 +259,23 @@ _add_var("fedora18", "Fedora 18", suppor
|
||||
_add_var("fedora19", "Fedora 19", virtiommio=True, parent="fedora18")
|
||||
_add_var("fedora20", "Fedora 20 (or later)", parent="fedora19")
|
||||
--- 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="suse", supported=True, virtiodisk=True, virtionet=True, parent="linux")
|
||||
-_add_var("opensuse12", "openSuse 12 (or later)", parent="opensuse11")
|
||||
+_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("sles10", "Suse Linux Enterprise Server", urldistro="suse", supported=True, parent="linux")
|
||||
-_add_var("sles11", "Suse Linux Enterprise Server 11 (or later)", supported=True, virtiodisk=True, virtionet=True, parent="sles10")
|
||||
+_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("mandriva2009", "Mandriva Linux 2009 and earlier", urldistro="mandriva", parent="linux")
|
||||
_add_var("mandriva2010", "Mandriva Linux 2010 (or later)", virtiodisk=True, virtionet=True, parent="mandriva2009")
|
||||
@@ -333,5 +345,5 @@ _add_type("other", "Other")
|
||||
_add_var("msdos", "MS-DOS", acpi=False, apic=False, parent="other")
|
||||
_add_var("netware4", "Novell Netware 4", parent="other")
|
||||
_add_var("netware5", "Novell Netware 5", parent="other")
|
||||
-_add_var("netware6", "Novell Netware 6 (or later)", parent="other")
|
||||
+_add_var("netware6", "Novell Netware 6 (or later)", supported=True, parent="other")
|
||||
_add_var("generic", "Generic", supported=True, parent="other")
|
||||
+
|
||||
|
||||
_os_data_loaded = False
|
||||
_os_loader = None
|
||||
|
@ -15,28 +15,6 @@ Index: virt-manager-1.0.1/virtinst/devicedisk.py
|
||||
|
||||
CACHE_MODE_NONE = "none"
|
||||
CACHE_MODE_WRITETHROUGH = "writethrough"
|
||||
Index: virt-manager-1.0.1/virtinst/virtimage.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/virtimage.py
|
||||
+++ virt-manager-1.0.1/virtinst/virtimage.py
|
||||
@@ -209,6 +209,7 @@ class Disk(object):
|
||||
FORMAT_QCOW2 = "qcow2"
|
||||
FORMAT_VMDK = "vmdk"
|
||||
FORMAT_VDI = "vdi"
|
||||
+ FORMAT_QED = "qed"
|
||||
|
||||
USE_SYSTEM = "system"
|
||||
USE_USER = "user"
|
||||
@@ -240,7 +241,8 @@ class Disk(object):
|
||||
Disk.FORMAT_QCOW2,
|
||||
Disk.FORMAT_VMDK,
|
||||
Disk.FORMAT_ISO,
|
||||
- Disk.FORMAT_VDI]
|
||||
+ Disk.FORMAT_VDI,
|
||||
+ Disk.FORMAT_QED]
|
||||
validate(formats.count(self.format) > 0,
|
||||
_("The format for disk %s must be one of %s") %
|
||||
(self.file, ",".join(formats)))
|
||||
Index: virt-manager-1.0.1/virtinst/support.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/support.py
|
||||
|
@ -3,11 +3,11 @@ issue on btrfs.
|
||||
|
||||
Signed-off-by: Chunyan Liu <cyliu@suse.com>
|
||||
|
||||
Index: virt-manager-1.0.0/virtinst/storage.py
|
||||
Index: virt-manager-1.1.0/virtinst/storage.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.0.orig/virtinst/storage.py
|
||||
+++ virt-manager-1.0.0/virtinst/storage.py
|
||||
@@ -656,6 +656,11 @@ class StorageVolume(_StorageObject):
|
||||
--- virt-manager-1.1.0.orig/virtinst/storage.py
|
||||
+++ virt-manager-1.1.0/virtinst/storage.py
|
||||
@@ -658,6 +658,11 @@ class StorageVolume(_StorageObject):
|
||||
lazy_refcounts = XMLProperty("./target/features/lazy_refcounts",
|
||||
is_bool=True, default_cb=_lazy_refcounts_default_cb)
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
Reference: bnc#813082
|
||||
|
||||
Index: virt-manager-1.0.1/virtinst/devicedisk.py
|
||||
Index: virt-manager-1.1.0/virtinst/devicedisk.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.0.1/virtinst/devicedisk.py
|
||||
@@ -558,6 +558,12 @@ class VirtualDisk(VirtualDevice):
|
||||
--- virt-manager-1.1.0.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.1.0/virtinst/devicedisk.py
|
||||
@@ -562,6 +562,12 @@ class VirtualDisk(VirtualDevice):
|
||||
return None
|
||||
if self.conn.is_qemu():
|
||||
return self.DRIVER_QEMU
|
||||
@ -17,7 +17,7 @@ Index: virt-manager-1.0.1/virtinst/devicedisk.py
|
||||
return None
|
||||
|
||||
def _get_default_driver_type(self):
|
||||
@@ -571,6 +577,8 @@ class VirtualDisk(VirtualDevice):
|
||||
@@ -575,6 +581,8 @@ class VirtualDisk(VirtualDevice):
|
||||
http://lists.gnu.org/archive/html/qemu-devel/2008-04/msg00675.html
|
||||
"""
|
||||
if self.driver_name != self.DRIVER_QEMU:
|
||||
|
@ -1,10 +1,10 @@
|
||||
bnc#872789
|
||||
|
||||
Index: virt-manager-1.0.1/virtinst/devicedisk.py
|
||||
Index: virt-manager-1.1.0/virtinst/devicedisk.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.0.1/virtinst/devicedisk.py
|
||||
@@ -931,6 +931,17 @@ class VirtualDisk(VirtualDevice):
|
||||
--- virt-manager-1.1.0.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.1.0/virtinst/devicedisk.py
|
||||
@@ -936,6 +936,17 @@ class VirtualDisk(VirtualDevice):
|
||||
@rtype C{str}
|
||||
"""
|
||||
prefix, maxnode = self.get_target_prefix(skip_targets)
|
||||
@ -22,7 +22,7 @@ Index: virt-manager-1.0.1/virtinst/devicedisk.py
|
||||
skip_targets = [t for t in skip_targets if t and t.startswith(prefix)]
|
||||
skip_targets.sort()
|
||||
|
||||
@@ -944,7 +955,12 @@ class VirtualDisk(VirtualDevice):
|
||||
@@ -949,7 +960,12 @@ class VirtualDisk(VirtualDevice):
|
||||
ran = range(pref_ctrl * 7, (pref_ctrl + 1) * 7)
|
||||
|
||||
for i in ran:
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: virt-manager-1.0.1/virtManager/engine.py
|
||||
Index: virt-manager-1.1.0/virtManager/engine.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.0.1/virtManager/engine.py
|
||||
@@ -205,9 +205,6 @@ class vmmEngine(vmmGObject):
|
||||
--- virt-manager-1.1.0.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.1.0/virtManager/engine.py
|
||||
@@ -202,9 +202,6 @@ class vmmEngine(vmmGObject):
|
||||
except:
|
||||
logging.exception("Error talking to PackageKit")
|
||||
|
||||
@ -12,7 +12,7 @@ Index: virt-manager-1.0.1/virtManager/engine.py
|
||||
warnmsg = _("The 'libvirtd' service will need to be started.\n\n"
|
||||
"After that, virt-manager will connect to libvirt on\n"
|
||||
"the next application start up.")
|
||||
@@ -221,7 +218,11 @@ class vmmEngine(vmmGObject):
|
||||
@@ -218,7 +215,11 @@ class vmmEngine(vmmGObject):
|
||||
if not connected and do_start:
|
||||
manager.err.ok(_("Libvirt service must be started"), warnmsg)
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: virt-manager-1.0.1/virtManager/create.py
|
||||
Index: virt-manager-1.1.0/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.0.1/virtManager/create.py
|
||||
@@ -415,7 +415,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
||||
+++ virt-manager-1.1.0/virtManager/create.py
|
||||
@@ -428,7 +428,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
can_remote_url = self.conn.get_backend().support_remote_url_install()
|
||||
|
||||
installable_arch = (self.capsguest.arch in
|
||||
@ -11,7 +11,7 @@ Index: virt-manager-1.0.1/virtManager/create.py
|
||||
|
||||
# Install Options
|
||||
method_tree = self.widget("method-tree")
|
||||
@@ -677,7 +677,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
@@ -690,7 +690,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
archs.remove("i686")
|
||||
archs.sort()
|
||||
|
||||
@ -20,11 +20,11 @@ Index: virt-manager-1.0.1/virtManager/create.py
|
||||
if self.conn.caps.host.cpu.arch not in prios:
|
||||
prios = []
|
||||
else:
|
||||
Index: virt-manager-1.0.1/virtinst/osxml.py
|
||||
Index: virt-manager-1.1.0/virtinst/osxml.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/osxml.py
|
||||
+++ virt-manager-1.0.1/virtinst/osxml.py
|
||||
@@ -53,6 +53,8 @@ class OSXML(XMLBuilder):
|
||||
--- 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"
|
||||
def is_pseries(self):
|
||||
return self.is_ppc64 and self.machine == "pseries"
|
||||
@ -33,10 +33,10 @@ Index: virt-manager-1.0.1/virtinst/osxml.py
|
||||
|
||||
_XML_ROOT_NAME = "os"
|
||||
_XML_PROP_ORDER = ["arch", "os_type", "loader",
|
||||
Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
Index: virt-manager-1.1.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.0.1/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):
|
||||
self.skip_default_channel = False
|
||||
self.skip_default_sound = False
|
||||
@ -49,7 +49,7 @@ Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
self.x86_cpu_default = self.cpu.SPECIAL_MODE_HOST_MODEL_ONLY
|
||||
|
||||
self._os_variant = None
|
||||
@@ -549,11 +552,13 @@ class Guest(XMLBuilder):
|
||||
@@ -559,11 +562,13 @@ class Guest(XMLBuilder):
|
||||
self.conn.check_support(
|
||||
self.conn.SUPPORT_CONN_VIRTIO_CONSOLE)):
|
||||
dev.target_type = "virtio"
|
||||
@ -64,7 +64,7 @@ Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
return
|
||||
if self.get_devices("video"):
|
||||
return
|
||||
@@ -598,7 +603,7 @@ class Guest(XMLBuilder):
|
||||
@@ -608,7 +613,7 @@ class Guest(XMLBuilder):
|
||||
return
|
||||
if self.os.is_container():
|
||||
return
|
||||
@ -73,7 +73,7 @@ Index: virt-manager-1.0.1/virtinst/guest.py
|
||||
return
|
||||
self.add_device(virtinst.VirtualGraphics(self.conn))
|
||||
|
||||
@@ -804,7 +809,7 @@ class Guest(XMLBuilder):
|
||||
@@ -834,7 +839,7 @@ class Guest(XMLBuilder):
|
||||
if not self._lookup_osdict_key(key, False):
|
||||
return False
|
||||
|
||||
|
@ -1,7 +1,9 @@
|
||||
bnc#875111
|
||||
--- virt-manager-1.0.1/virtManager/manager.py.orig 2014-08-18 17:39:09.506148602 -0600
|
||||
+++ virt-manager-1.0.1/virtManager/manager.py 2014-08-18 17:39:12.440170326 -0600
|
||||
@@ -892,7 +892,7 @@ class vmmManager(vmmGObjectUI):
|
||||
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):
|
||||
show_pause = bool(vm and vm.is_unpauseable())
|
||||
else:
|
||||
show_pause = bool(vm and vm.is_pauseable())
|
||||
@ -10,17 +12,19 @@ bnc#875111
|
||||
|
||||
if vm and vm.managedsave_supported:
|
||||
self.change_run_text(vm.hasSavedImage())
|
||||
--- virt-manager-1.0.1/virtManager/vmmenu.py.orig 2014-08-18 17:39:04.166109065 -0600
|
||||
+++ virt-manager-1.0.1/virtManager/vmmenu.py 2014-08-18 17:39:15.265191243 -0600
|
||||
@@ -24,6 +24,7 @@ from gi.repository import Gtk
|
||||
Index: virt-manager-1.1.0/virtManager/vmmenu.py
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtManager/vmmenu.py
|
||||
+++ virt-manager-1.1.0/virtManager/vmmenu.py
|
||||
@@ -22,6 +22,7 @@ from gi.repository import Gtk
|
||||
from virtManager import config
|
||||
|
||||
import platform
|
||||
+import logging
|
||||
|
||||
####################################################################
|
||||
# Build toolbar new button menu (manager and details toolbar) #
|
||||
@@ -58,6 +59,7 @@ class _VMMenu(Gtk.Menu):
|
||||
# Build toolbar new button menu (manager and details toolbar) #
|
||||
@@ -53,6 +54,7 @@ class _VMMenu(Gtk.Menu):
|
||||
self._parent = src
|
||||
self._current_vm_cb = current_vm_cb
|
||||
self._show_open = show_open
|
||||
@ -28,7 +32,7 @@ bnc#875111
|
||||
|
||||
self._init_state()
|
||||
|
||||
@@ -122,6 +124,7 @@ class VMShutdownMenu(_VMMenu):
|
||||
@@ -114,6 +116,7 @@ class VMShutdownMenu(_VMMenu):
|
||||
name = getattr(child, "vmm_widget_name", None)
|
||||
if name in statemap:
|
||||
child.set_sensitive(statemap[name])
|
||||
@ -36,7 +40,7 @@ bnc#875111
|
||||
|
||||
|
||||
class VMActionMenu(_VMMenu):
|
||||
@@ -133,7 +136,8 @@ class VMActionMenu(_VMMenu):
|
||||
@@ -122,7 +125,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)
|
||||
@ -46,7 +50,7 @@ bnc#875111
|
||||
|
||||
self.add(Gtk.SeparatorMenuItem())
|
||||
self._add_action(_("Clone..."), "clone", None)
|
||||
@@ -149,7 +153,7 @@ class VMActionMenu(_VMMenu):
|
||||
@@ -138,7 +142,7 @@ class VMActionMenu(_VMMenu):
|
||||
def update_widget_states(self, vm):
|
||||
statemap = {
|
||||
"run": bool(vm and vm.is_runable()),
|
||||
@ -55,7 +59,7 @@ bnc#875111
|
||||
"suspend": bool(vm and vm.is_stoppable()),
|
||||
"resume": bool(vm and vm.is_paused()),
|
||||
"migrate": bool(vm and vm.is_stoppable()),
|
||||
@@ -166,6 +170,8 @@ class VMActionMenu(_VMMenu):
|
||||
@@ -155,6 +159,8 @@ class VMActionMenu(_VMMenu):
|
||||
child.update_widget_states(vm)
|
||||
if name in statemap:
|
||||
child.set_sensitive(statemap[name])
|
||||
|
@ -1,38 +0,0 @@
|
||||
Index: virt-manager-1.0.1/virtManager/details.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/details.py
|
||||
+++ virt-manager-1.0.1/virtManager/details.py
|
||||
@@ -2056,10 +2056,10 @@ class vmmDetails(vmmGObjectUI):
|
||||
return self._change_config_helper(self.vm.define_memory, kwargs,
|
||||
hotplug_args=hotplug_args)
|
||||
|
||||
- def config_boot_options_apply(self):
|
||||
- kwargs = {}
|
||||
-
|
||||
- if self.edited(EDIT_AUTOSTART):
|
||||
+ # Autostart - See bnc#624250 - L3: virt-manager doesn't update
|
||||
+ # "Autostart" setting in vm configuration correctly
|
||||
+ def update_on_xend_start(self):
|
||||
+ if self.edited(EDIT_AUTOSTART) or self.vm.conn.is_xen():
|
||||
auto = self.widget("config-autostart")
|
||||
try:
|
||||
self.vm.set_autostart(auto.get_active())
|
||||
@@ -2068,6 +2068,9 @@ class vmmDetails(vmmGObjectUI):
|
||||
(_("Error changing autostart value: %s") % str(e)))
|
||||
return False
|
||||
|
||||
+ def config_boot_options_apply(self):
|
||||
+ kwargs = {}
|
||||
+
|
||||
if self.edited(EDIT_BOOTORDER):
|
||||
kwargs["boot_order"] = self.get_config_boot_order()
|
||||
|
||||
@@ -2370,6 +2373,8 @@ class vmmDetails(vmmGObjectUI):
|
||||
buttons=Gtk.ButtonsType.OK,
|
||||
dialog_type=dtype)
|
||||
|
||||
+ self.update_on_xend_start()
|
||||
+
|
||||
return True
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
Index: virt-manager-1.0.1/virtManager/create.py
|
||||
Index: virt-manager-1.1.0/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.0.1/virtManager/create.py
|
||||
@@ -1230,11 +1230,34 @@ class vmmCreate(vmmGObjectUI):
|
||||
variant = self.widget("install-os-version")
|
||||
variant.set_active(0)
|
||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
||||
+++ virt-manager-1.1.0/virtManager/create.py
|
||||
@@ -1257,11 +1257,34 @@ class vmmCreate(vmmGObjectUI):
|
||||
if self.widget("install-os-version").get_visible():
|
||||
self.widget("install-os-version-entry").grab_focus()
|
||||
|
||||
+ def _update_kickstart_label(self):
|
||||
+ # Update label based on os version selected to either kickstart or autoyast
|
||||
@ -37,7 +37,7 @@ Index: virt-manager-1.0.1/virtManager/create.py
|
||||
# Get previous
|
||||
type_row = self._selected_os_row()
|
||||
if not type_row:
|
||||
@@ -1594,7 +1617,10 @@ class vmmCreate(vmmGObjectUI):
|
||||
@@ -1626,7 +1649,10 @@ class vmmCreate(vmmGObjectUI):
|
||||
if extra:
|
||||
extraargs += extra
|
||||
if ks:
|
||||
@ -49,7 +49,7 @@ Index: virt-manager-1.0.1/virtManager/create.py
|
||||
|
||||
if extraargs:
|
||||
self.guest.installer.extraargs = extraargs
|
||||
@@ -1992,6 +2018,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
@@ -2034,6 +2060,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)
|
||||
@ -57,11 +57,11 @@ Index: virt-manager-1.0.1/virtManager/create.py
|
||||
|
||||
def check_detection(self, idx, forward):
|
||||
results = None
|
||||
Index: virt-manager-1.0.1/ui/create.ui
|
||||
Index: virt-manager-1.1.0/ui/create.ui
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/ui/create.ui
|
||||
+++ virt-manager-1.0.1/ui/create.ui
|
||||
@@ -869,7 +869,7 @@ bar</property>
|
||||
--- virt-manager-1.1.0.orig/ui/create.ui
|
||||
+++ virt-manager-1.1.0/ui/create.ui
|
||||
@@ -841,7 +841,7 @@ bar</property>
|
||||
<property name="column_spacing">6</property>
|
||||
<property name="row_spacing">4</property>
|
||||
<child>
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: virt-manager-1.0.1/virtManager/addhardware.py
|
||||
Index: virt-manager-1.1.0/virtManager/addhardware.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/addhardware.py
|
||||
+++ virt-manager-1.0.1/virtManager/addhardware.py
|
||||
@@ -760,7 +760,7 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
--- virt-manager-1.1.0.orig/virtManager/addhardware.py
|
||||
+++ virt-manager-1.1.0/virtManager/addhardware.py
|
||||
@@ -800,7 +800,7 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
disk_buses = ["ide", "sata", "scsi", "sd",
|
||||
"usb", "virtio", "virtio-scsi", "xen"]
|
||||
floppy_buses = ["fdc"]
|
||||
|
@ -1,10 +1,10 @@
|
||||
bnc#885273
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/createnet.py
|
||||
Index: virt-manager-1.1.0/virtManager/createnet.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/createnet.py
|
||||
+++ virt-manager-1.0.1/virtManager/createnet.py
|
||||
@@ -253,6 +253,8 @@ class vmmCreateNetwork(vmmGObjectUI):
|
||||
--- 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()
|
||||
|
@ -1,7 +1,7 @@
|
||||
Index: virt-manager-1.0.1/virtManager/create.py
|
||||
Index: virt-manager-1.1.0/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.0.1/virtManager/create.py
|
||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
||||
+++ virt-manager-1.1.0/virtManager/create.py
|
||||
@@ -21,6 +21,8 @@
|
||||
import logging
|
||||
import threading
|
||||
@ -9,9 +9,9 @@ Index: virt-manager-1.0.1/virtManager/create.py
|
||||
+import sys
|
||||
+import os
|
||||
|
||||
# pylint: disable=E0611
|
||||
from gi.repository import GObject
|
||||
@@ -1142,6 +1144,55 @@ class vmmCreate(vmmGObjectUI):
|
||||
from gi.repository import Gtk
|
||||
@@ -1167,6 +1169,55 @@ class vmmCreate(vmmGObjectUI):
|
||||
return
|
||||
self.start_detection(forward=forward)
|
||||
|
||||
@ -67,8 +67,8 @@ Index: virt-manager-1.0.1/virtManager/create.py
|
||||
def toggle_detect_os(self, src):
|
||||
dodetect = src.get_active()
|
||||
|
||||
@@ -1153,6 +1204,8 @@ class vmmCreate(vmmGObjectUI):
|
||||
if dodetect:
|
||||
@@ -1179,6 +1230,8 @@ class vmmCreate(vmmGObjectUI):
|
||||
self.widget("install-os-version-entry").set_text("")
|
||||
self.mediaDetected = False
|
||||
self.detect_media_os()
|
||||
+ else:
|
||||
|
@ -10,11 +10,11 @@ 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.0.1/virtManager/connect.py
|
||||
Index: virt-manager-1.1.0/virtManager/connect.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/connect.py
|
||||
+++ virt-manager-1.0.1/virtManager/connect.py
|
||||
@@ -116,6 +116,10 @@ class vmmConnect(vmmGObjectUI):
|
||||
--- 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"
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: virt-manager-1.0.1/virtManager/create.py
|
||||
Index: virt-manager-1.1.0/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.0.1/virtManager/create.py
|
||||
@@ -862,7 +862,12 @@ class vmmCreate(vmmGObjectUI):
|
||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
||||
+++ virt-manager-1.1.0/virtManager/create.py
|
||||
@@ -876,7 +876,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,10 +1,10 @@
|
||||
bnc#885094
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/delete.py
|
||||
Index: virt-manager-1.1.0/virtManager/delete.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/delete.py
|
||||
+++ virt-manager-1.0.1/virtManager/delete.py
|
||||
@@ -242,7 +242,7 @@ def populate_storage_list(storage_list,
|
||||
--- 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,
|
||||
diskdata.append(("dtb", vm.get_xmlobj().os.dtb, True, False))
|
||||
|
||||
for target, path, ro, shared in diskdata:
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: virt-manager-1.0.1/virtManager/addhardware.py
|
||||
Index: virt-manager-1.1.0/virtManager/addhardware.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/addhardware.py
|
||||
+++ virt-manager-1.0.1/virtManager/addhardware.py
|
||||
@@ -555,6 +555,7 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
--- virt-manager-1.1.0.orig/virtManager/addhardware.py
|
||||
+++ virt-manager-1.1.0/virtManager/addhardware.py
|
||||
@@ -574,6 +574,7 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
if vm.is_hvm():
|
||||
mod_list = ["rtl8139", "ne2k_pci", "pcnet", "e1000"]
|
||||
if vm.get_hv_type() in ["kvm", "qemu", "test"]:
|
||||
|
@ -1,7 +1,9 @@
|
||||
bnc#892003
|
||||
--- virt-manager-1.0.1/virtManager/connection.py.orig 2014-08-18 13:45:50.843688551 -0600
|
||||
+++ virt-manager-1.0.1/virtManager/connection.py 2014-08-18 14:13:37.968606032 -0600
|
||||
@@ -1114,7 +1114,7 @@ class vmmConnection(vmmGObject):
|
||||
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()
|
||||
|
||||
try:
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: virt-manager-1.0.1/virtManager/console.py
|
||||
Index: virt-manager-1.1.0/virtManager/console.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/console.py
|
||||
+++ virt-manager-1.0.1/virtManager/console.py
|
||||
@@ -942,6 +942,16 @@ class vmmConsolePages(vmmGObjectUI):
|
||||
--- virt-manager-1.1.0.orig/virtManager/console.py
|
||||
+++ virt-manager-1.1.0/virtManager/console.py
|
||||
@@ -940,6 +940,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,8 +1,8 @@
|
||||
Index: virt-manager-1.0.1/virtManager/connect.py
|
||||
Index: virt-manager-1.1.0/virtManager/connect.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/connect.py
|
||||
+++ virt-manager-1.0.1/virtManager/connect.py
|
||||
@@ -110,7 +110,7 @@ class vmmConnect(vmmGObjectUI):
|
||||
--- virt-manager-1.1.0.orig/virtManager/connect.py
|
||||
+++ virt-manager-1.1.0/virtManager/connect.py
|
||||
@@ -109,7 +109,7 @@ class vmmConnect(vmmGObjectUI):
|
||||
|
||||
if (os.path.exists("/usr/bin/qemu") or
|
||||
os.path.exists("/usr/bin/qemu-kvm") or
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: virt-manager-1.0.1/virtManager/packageutils.py
|
||||
Index: virt-manager-1.1.0/virtManager/packageutils.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/packageutils.py
|
||||
+++ virt-manager-1.0.1/virtManager/packageutils.py
|
||||
@@ -151,8 +151,8 @@ def start_libvirtd():
|
||||
--- virt-manager-1.1.0.orig/virtManager/packageutils.py
|
||||
+++ virt-manager-1.1.0/virtManager/packageutils.py
|
||||
@@ -149,8 +149,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,6 +1,8 @@
|
||||
--- virt-manager-1.0.0/virtManager/engine.py.orig 2014-03-13 15:48:17.556984261 -0600
|
||||
+++ virt-manager-1.0.0/virtManager/engine.py 2014-03-13 15:48:22.909014154 -0600
|
||||
@@ -229,9 +229,22 @@ class vmmEngine(vmmGObject):
|
||||
Index: virt-manager-1.1.0/virtManager/engine.py
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.1.0/virtManager/engine.py
|
||||
@@ -226,9 +226,22 @@ class vmmEngine(vmmGObject):
|
||||
if not uris:
|
||||
return
|
||||
logging.debug("About to connect to uris %s", uris)
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: virt-manager-1.0.0/setup.py
|
||||
Index: virt-manager-1.1.0/setup.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.0.orig/setup.py
|
||||
+++ virt-manager-1.0.0/setup.py
|
||||
@@ -310,8 +310,11 @@ class configure(Command):
|
||||
--- 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"),
|
||||
("qemu-user=", None,
|
||||
"user libvirt uses to launch qemu processes (default=root)"),
|
||||
@ -16,7 +16,7 @@ Index: virt-manager-1.0.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 "
|
||||
@@ -335,7 +338,8 @@ class configure(Command):
|
||||
@@ -330,7 +333,8 @@ class configure(Command):
|
||||
self.prefix = sysprefix
|
||||
self.pkgversion = None
|
||||
self.qemu_user = None
|
||||
@ -26,7 +26,7 @@ Index: virt-manager-1.0.0/setup.py
|
||||
self.kvm_package_names = None
|
||||
self.askpass_package_names = None
|
||||
self.preferred_distros = None
|
||||
@@ -351,8 +355,10 @@ class configure(Command):
|
||||
@@ -347,8 +351,10 @@ class configure(Command):
|
||||
template += "pkgversion = %s\n" % self.pkgversion
|
||||
if self.qemu_user is not None:
|
||||
template += "default_qemu_user = %s\n" % self.qemu_user
|
||||
@ -39,11 +39,11 @@ Index: virt-manager-1.0.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.0.0/virtcli/cliconfig.py
|
||||
Index: virt-manager-1.1.0/virtcli/cliconfig.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.0.orig/virtcli/cliconfig.py
|
||||
+++ virt-manager-1.0.0/virtcli/cliconfig.py
|
||||
@@ -86,5 +86,6 @@ stable_defaults = bool(int(_get_param("s
|
||||
--- 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", ""))
|
||||
@ -51,11 +51,12 @@ Index: virt-manager-1.0.0/virtcli/cliconfig.py
|
||||
+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")
|
||||
Index: virt-manager-1.0.0/virtManager/config.py
|
||||
with_bhyve = bool(int(_get_param("with_bhyve", "0")))
|
||||
Index: virt-manager-1.1.0/virtManager/config.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.0.orig/virtManager/config.py
|
||||
+++ virt-manager-1.0.0/virtManager/config.py
|
||||
@@ -160,7 +160,8 @@ class vmmConfig(object):
|
||||
--- 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
|
||||
@ -64,12 +65,12 @@ Index: virt-manager-1.0.0/virtManager/config.py
|
||||
+ self.libvirt_xen_packages = cliconfig.libvirt_xen_packages
|
||||
self.askpass_package = cliconfig.askpass_package
|
||||
self.default_graphics_from_config = cliconfig.default_graphics
|
||||
self.cli_usbredir = None
|
||||
Index: virt-manager-1.0.0/virtManager/engine.py
|
||||
self.with_bhyve = cliconfig.with_bhyve
|
||||
Index: virt-manager-1.1.0/virtManager/engine.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.0.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.0.0/virtManager/engine.py
|
||||
@@ -196,21 +196,17 @@ class vmmEngine(vmmGObject):
|
||||
--- virt-manager-1.1.0.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.1.0/virtManager/engine.py
|
||||
@@ -193,21 +193,17 @@ class vmmEngine(vmmGObject):
|
||||
|
||||
ret = None
|
||||
try:
|
||||
|
@ -1,10 +1,10 @@
|
||||
bnc#874594 - virt-manager allows issuing of start for xen domain twice, resulting in failure
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/details.py
|
||||
Index: virt-manager-1.1.0/virtManager/details.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/details.py
|
||||
+++ virt-manager-1.0.1/virtManager/details.py
|
||||
@@ -1462,6 +1462,9 @@ class vmmDetails(vmmGObjectUI):
|
||||
--- virt-manager-1.1.0.orig/virtManager/details.py
|
||||
+++ virt-manager-1.1.0/virtManager/details.py
|
||||
@@ -1499,6 +1499,9 @@ class vmmDetails(vmmGObjectUI):
|
||||
self.widget("details-menu-usb-redirection").set_sensitive(can_usb)
|
||||
|
||||
def control_vm_run(self, src_ignore):
|
||||
@ -12,5 +12,5 @@ Index: virt-manager-1.0.1/virtManager/details.py
|
||||
+ # start the VM twice
|
||||
+ self.widget("control-run").set_sensitive(False)
|
||||
self.emit("action-run-domain",
|
||||
self.vm.conn.get_uri(), self.vm.get_uuid())
|
||||
self.vm.conn.get_uri(), self.vm.get_connkey())
|
||||
|
||||
|
@ -1,16 +1,16 @@
|
||||
Index: virt-manager-1.0.1/virtManager/engine.py
|
||||
Index: virt-manager-1.1.0/virtManager/engine.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.0.1/virtManager/engine.py
|
||||
@@ -30,6 +30,7 @@ import re
|
||||
--- virt-manager-1.1.0.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.1.0/virtManager/engine.py
|
||||
@@ -27,6 +27,7 @@ import re
|
||||
import Queue
|
||||
import threading
|
||||
import traceback
|
||||
+import platform
|
||||
import os
|
||||
from subprocess import *
|
||||
|
||||
import libvirt
|
||||
@@ -854,7 +855,7 @@ class vmmEngine(vmmGObject):
|
||||
@@ -805,7 +806,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 +19,7 @@ Index: virt-manager-1.0.1/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)
|
||||
@@ -900,7 +901,20 @@ class vmmEngine(vmmGObject):
|
||||
@@ -853,7 +854,20 @@ class vmmEngine(vmmGObject):
|
||||
self.windowCreate = None
|
||||
|
||||
def _do_show_create_vminstall(self, src, uri):
|
||||
@ -41,7 +41,7 @@ Index: virt-manager-1.0.1/virtManager/engine.py
|
||||
|
||||
def _do_show_create(self, src, uri, use_vminstall=False):
|
||||
if uri is None:
|
||||
@@ -984,7 +998,10 @@ class vmmEngine(vmmGObject):
|
||||
@@ -937,7 +951,10 @@ class vmmEngine(vmmGObject):
|
||||
|
||||
def show_domain_creator(self, uri):
|
||||
self.show_manager()
|
||||
@ -51,21 +51,21 @@ Index: virt-manager-1.0.1/virtManager/engine.py
|
||||
+ else:
|
||||
+ self._do_show_create(self.get_manager(), uri, False)
|
||||
|
||||
def show_domain_console(self, uri, uuid):
|
||||
self.idle_add(self._show_vm_helper, self.get_manager(), uri, uuid,
|
||||
Index: virt-manager-1.0.1/virtManager/vmmenu.py
|
||||
|
||||
def _find_vm_by_cli_str(self, uri, clistr):
|
||||
Index: virt-manager-1.1.0/virtManager/vmmenu.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/vmmenu.py
|
||||
+++ virt-manager-1.0.1/virtManager/vmmenu.py
|
||||
@@ -23,6 +23,7 @@ from gi.repository import Gtk
|
||||
# pylint: enable=E0611
|
||||
--- virt-manager-1.1.0.orig/virtManager/vmmenu.py
|
||||
+++ virt-manager-1.1.0/virtManager/vmmenu.py
|
||||
@@ -21,6 +21,7 @@
|
||||
from gi.repository import Gtk
|
||||
from virtManager import config
|
||||
|
||||
+import platform
|
||||
|
||||
####################################################################
|
||||
# Build toolbar new button menu (manager and details toolbar) #
|
||||
@@ -35,8 +36,10 @@ def build_new_button_menu(widget, vminst
|
||||
# Build toolbar new button menu (manager and details toolbar) #
|
||||
@@ -33,8 +34,10 @@ def build_new_button_menu(widget, vminst
|
||||
widget.set_menu(menu)
|
||||
|
||||
vminstallimg = Gtk.Image.new_from_icon_name(icon_name, Gtk.IconSize.MENU)
|
||||
|
@ -1,7 +1,7 @@
|
||||
Index: virt-manager-1.0.1/virtManager/create.py
|
||||
Index: virt-manager-1.1.0/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.0.1/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.
|
||||
#
|
||||
@ -10,7 +10,7 @@ Index: virt-manager-1.0.1/virtManager/create.py
|
||||
import logging
|
||||
import threading
|
||||
import time
|
||||
@@ -365,7 +366,13 @@ class vmmCreate(vmmGObjectUI):
|
||||
@@ -370,7 +371,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()
|
||||
@ -25,10 +25,10 @@ Index: virt-manager-1.0.1/virtManager/create.py
|
||||
self.populate_media_model(ksmodel, self.config.get_kickstart_urls())
|
||||
self.set_distro_labels("-", "-", force=True)
|
||||
|
||||
Index: virt-manager-1.0.1/virtinst/util.py
|
||||
Index: virt-manager-1.1.0/virtinst/util.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtinst/util.py
|
||||
+++ virt-manager-1.0.1/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
|
||||
import random
|
||||
import re
|
||||
@ -44,7 +44,7 @@ Index: virt-manager-1.0.1/virtinst/util.py
|
||||
|
||||
|
||||
def listify(l):
|
||||
@@ -531,3 +533,96 @@ def convert_units(value, old_unit, new_u
|
||||
@@ -517,3 +519,96 @@ def convert_units(value, old_unit, new_u
|
||||
power = get_power(new_unit)
|
||||
|
||||
return in_bytes / pow(factor, power)
|
||||
|
@ -1,6 +1,8 @@
|
||||
--- virt-manager-1.0.0/virtManager/create.py.orig 2014-03-21 10:30:13.000000000 -0600
|
||||
+++ virt-manager-1.0.0/virtManager/create.py 2014-03-21 10:56:45.000000000 -0600
|
||||
@@ -66,8 +66,9 @@ INSTALL_PAGE_CONTAINER_APP = 4
|
||||
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
|
||||
@@ -64,8 +64,9 @@ INSTALL_PAGE_CONTAINER_APP = 4
|
||||
INSTALL_PAGE_CONTAINER_OS = 5
|
||||
|
||||
STABLE_OS_SUPPORT = [
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: virt-manager-1.0.1/virtManager/addhardware.py
|
||||
Index: virt-manager-1.1.0/virtManager/addhardware.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/addhardware.py
|
||||
+++ virt-manager-1.0.1/virtManager/addhardware.py
|
||||
@@ -700,11 +700,14 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
--- virt-manager-1.1.0.orig/virtManager/addhardware.py
|
||||
+++ virt-manager-1.1.0/virtManager/addhardware.py
|
||||
@@ -719,11 +719,14 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
combo.set_model(model)
|
||||
uiutil.set_combo_text_column(combo, 0)
|
||||
|
||||
|
@ -3,15 +3,15 @@ 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.0.1/virtManager/connection.py
|
||||
Index: virt-manager-1.1.0/virtManager/connection.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/connection.py
|
||||
+++ virt-manager-1.0.1/virtManager/connection.py
|
||||
@@ -1291,6 +1291,9 @@ class vmmConnection(vmmGObject):
|
||||
--- 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):
|
||||
+ if len(self._vms) < len(vms):
|
||||
+ # Allow time for tick_send_signals to run
|
||||
+ time.sleep(.1)
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
Index: virt-manager-1.0.1/ui/manager.ui
|
||||
Index: virt-manager-1.1.0/ui/manager.ui
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/ui/manager.ui
|
||||
+++ virt-manager-1.0.1/ui/manager.ui
|
||||
--- virt-manager-1.1.0.orig/ui/manager.ui
|
||||
+++ virt-manager-1.1.0/ui/manager.ui
|
||||
@@ -277,7 +277,7 @@
|
||||
<property name="can_focus">False</property>
|
||||
<property name="show_arrow">False</property>
|
||||
@ -19,11 +19,11 @@ Index: virt-manager-1.0.1/ui/manager.ui
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
Index: virt-manager-1.0.1/virtManager/manager.py
|
||||
Index: virt-manager-1.1.0/virtManager/manager.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/manager.py
|
||||
+++ virt-manager-1.0.1/virtManager/manager.py
|
||||
@@ -95,6 +95,7 @@ class vmmManager(vmmGObjectUI):
|
||||
--- virt-manager-1.1.0.orig/virtManager/manager.py
|
||||
+++ virt-manager-1.1.0/virtManager/manager.py
|
||||
@@ -93,6 +93,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 +31,7 @@ Index: virt-manager-1.0.1/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]),
|
||||
@@ -298,7 +299,8 @@ class vmmManager(vmmGObjectUI):
|
||||
@@ -290,7 +291,8 @@ class vmmManager(vmmGObjectUI):
|
||||
|
||||
|
||||
def init_toolbar(self):
|
||||
@ -41,7 +41,7 @@ Index: virt-manager-1.0.1/virtManager/manager.py
|
||||
self.widget("vm-open").set_icon_name("icon_console")
|
||||
|
||||
menu = vmmenu.VMShutdownMenu(self, self.current_vm)
|
||||
@@ -489,6 +491,9 @@ class vmmManager(vmmGObjectUI):
|
||||
@@ -475,6 +477,9 @@ class vmmManager(vmmGObjectUI):
|
||||
def new_vm(self, src_ignore=None):
|
||||
self.emit("action-show-create", self.current_conn_uri())
|
||||
|
||||
@ -51,19 +51,19 @@ Index: virt-manager-1.0.1/virtManager/manager.py
|
||||
def show_about(self, src_ignore):
|
||||
self.emit("action-show-about")
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/vmmenu.py
|
||||
Index: virt-manager-1.1.0/virtManager/vmmenu.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/vmmenu.py
|
||||
+++ virt-manager-1.0.1/virtManager/vmmenu.py
|
||||
@@ -21,9 +21,28 @@
|
||||
# pylint: disable=E0611
|
||||
--- virt-manager-1.1.0.orig/virtManager/vmmenu.py
|
||||
+++ virt-manager-1.1.0/virtManager/vmmenu.py
|
||||
@@ -19,9 +19,28 @@
|
||||
#
|
||||
|
||||
from gi.repository import Gtk
|
||||
# pylint: enable=E0611
|
||||
+from virtManager import config
|
||||
|
||||
|
||||
####################################################################
|
||||
+# Build toolbar new button menu (manager and details toolbar) #
|
||||
+# Build toolbar new button menu (manager and details toolbar) #
|
||||
+####################################################################
|
||||
+
|
||||
+def build_new_button_menu(widget, vminstall_cb):
|
||||
@ -84,11 +84,11 @@ Index: virt-manager-1.0.1/virtManager/vmmenu.py
|
||||
# Build toolbar shutdown button menu (manager and details toolbar) #
|
||||
####################################################################
|
||||
|
||||
Index: virt-manager-1.0.1/virtManager/config.py
|
||||
Index: virt-manager-1.1.0/virtManager/config.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/config.py
|
||||
+++ virt-manager-1.0.1/virtManager/config.py
|
||||
@@ -191,6 +191,13 @@ class vmmConfig(object):
|
||||
--- virt-manager-1.1.0.orig/virtManager/config.py
|
||||
+++ virt-manager-1.1.0/virtManager/config.py
|
||||
@@ -190,6 +190,13 @@ class vmmConfig(object):
|
||||
|
||||
# General app wide helpers (gconf agnostic)
|
||||
|
||||
@ -102,24 +102,20 @@ Index: virt-manager-1.0.1/virtManager/config.py
|
||||
def get_appname(self):
|
||||
return self.appname
|
||||
def get_appversion(self):
|
||||
Index: virt-manager-1.0.1/virtManager/engine.py
|
||||
Index: virt-manager-1.1.0/virtManager/engine.py
|
||||
===================================================================
|
||||
--- virt-manager-1.0.1.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.0.1/virtManager/engine.py
|
||||
@@ -25,9 +25,12 @@ from gi.repository import Gtk
|
||||
# pylint: enable=E0611
|
||||
|
||||
import logging
|
||||
+import os
|
||||
import re
|
||||
--- virt-manager-1.1.0.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.1.0/virtManager/engine.py
|
||||
@@ -27,6 +27,8 @@ import re
|
||||
import Queue
|
||||
import threading
|
||||
+import traceback
|
||||
import traceback
|
||||
+import os
|
||||
+from subprocess import *
|
||||
|
||||
import libvirt
|
||||
from virtinst import util
|
||||
@@ -76,6 +79,7 @@ class vmmEngine(vmmGObject):
|
||||
|
||||
@@ -74,6 +76,7 @@ class vmmEngine(vmmGObject):
|
||||
self.windowCreate = None
|
||||
self.windowManager = None
|
||||
self.windowMigrate = None
|
||||
@ -127,7 +123,7 @@ Index: virt-manager-1.0.1/virtManager/engine.py
|
||||
|
||||
self.conns = {}
|
||||
self.err = vmmErrorDialog()
|
||||
@@ -841,6 +845,7 @@ class vmmEngine(vmmGObject):
|
||||
@@ -793,6 +796,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)
|
||||
@ -135,7 +131,7 @@ Index: virt-manager-1.0.1/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)
|
||||
@@ -881,11 +886,52 @@ class vmmEngine(vmmGObject):
|
||||
@@ -835,11 +839,52 @@ class vmmEngine(vmmGObject):
|
||||
self.windowCreate = obj
|
||||
return self.windowCreate
|
||||
|
||||
@ -191,5 +187,5 @@ Index: virt-manager-1.0.1/virtManager/engine.py
|
||||
+ message_box.run()
|
||||
+ message_box.destroy()
|
||||
|
||||
def _do_show_migrate(self, src, uri, uuid):
|
||||
def _do_show_migrate(self, src, uri, connkey):
|
||||
try:
|
||||
|
Loading…
Reference in New Issue
Block a user