Accepting request 237023 from Virtualization

Bug fixes for os13.2

OBS-URL: https://build.opensuse.org/request/show/237023
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/virt-manager?expand=0&rev=103
This commit is contained in:
Stephan Kulow 2014-06-16 19:36:29 +00:00 committed by Git OBS Bridge
commit 65da37429c
21 changed files with 548 additions and 171 deletions

View File

@ -1,139 +0,0 @@
Note: This is a reverse patch of the original commit
See bnc#877907 - when starting guest in virt--manager with details
pane open, keyboard is grabbed erroneously
Subject: Add a gsetting key to disable keyboard grabbing
From: Kjö Hansi Glaz kjo@a4nancy.net.eu.org Mon Mar 10 18:07:15 2014 +0100
Date: Mon Mar 10 14:54:58 2014 -0400:
Git: 66d146aceec7d6b4301f1795d8bea25d2d8306b8
Add a gsetting key to disable keyboard grabbing that works the same way
as spicy when unchecking "Options" > "Grab keyboard when active and
focused".
diff --git b/data/org.virt-manager.virt-manager.gschema.xml a/data/org.virt-manager.virt-manager.gschema.xml
index 2fede6c..d755f6e 100644
--- b/data/org.virt-manager.virt-manager.gschema.xml
+++ a/data/org.virt-manager.virt-manager.gschema.xml
@@ -188,13 +188,6 @@
<description>Grab keyboard sequence for the graphical console</description>
</key>
- <!--This key is not intended to be exposed in the UI yet-->
- <key name="grab-keyboard" type="b">
- <default>true</default>
- <summary>Enable grab keyboard when active and focused</summary>
- <description>Enable grab keyboard when active and focused</description>
- </key>
-
<key name="auto-redirect" type="b">
<default>true</default>
<summary>Enable SPICE Auto USB redirection in console window</summary>
diff --git b/virtManager/config.py a/virtManager/config.py
index 5c9c127..dd624e9 100644
--- b/virtManager/config.py
+++ a/virtManager/config.py
@@ -286,14 +286,6 @@ class vmmConfig(object):
def on_keys_combination_changed(self, cb):
return self.conf.notify_add("/console/grab-keys", cb)
- # This key is not intended to be exposed in the UI yet
- def get_grab_keyboard(self):
- return self.conf.get("/console/grab-keyboard")
- def set_grab_keyboard(self, val):
- self.conf.set("/console/grab-keyboard", val)
- def on_grab_keyboard_changed(self, cb):
- return self.conf.notify_add("/console/grab-keyboard", cb)
-
# Confirmation preferences
def get_confirm_forcepoweroff(self):
return self.conf.get("/confirm/forcepoweroff")
diff --git b/virtManager/console.py a/virtManager/console.py
index ee12390..6513645 100644
--- b/virtManager/console.py
+++ a/virtManager/console.py
@@ -360,9 +360,6 @@ class Viewer(vmmGObject):
def send_keys(self, keys):
raise NotImplementedError()
- def set_grab_keyboard(self):
- raise NotImplementedError()
-
def open_host(self, ginfo):
raise NotImplementedError()
@@ -397,7 +394,6 @@ class VNCViewer(Viewer):
def init_widget(self):
self.set_grab_keys()
- self.set_grab_keyboard()
self.display.realize()
@@ -407,6 +403,7 @@ class VNCViewer(Viewer):
self.console.sync_scaling_with_display()
self.console.refresh_resizeguest_from_settings()
+ self.display.set_keyboard_grab(True)
self.display.set_pointer_grab(True)
self.display.connect("size-allocate",
@@ -464,10 +461,6 @@ class VNCViewer(Viewer):
def send_keys(self, keys):
return self.display.send_keys([Gdk.keyval_from_name(k) for k in keys])
- 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)
self.console.widget("console-gfx-scroll").queue_resize()
@@ -578,7 +571,6 @@ class SpiceViewer(Viewer):
def _init_widget(self):
self.set_grab_keys()
- self.set_grab_keyboard()
self.console.sync_scaling_with_display()
self.console.refresh_resizeguest_from_settings()
@@ -625,9 +617,6 @@ class SpiceViewer(Viewer):
return self.display.send_keys([Gdk.keyval_from_name(k) for k in keys],
SpiceClientGtk.DisplayKeyEvent.CLICK)
- def set_grab_keyboard(self):
- self.display.set_property("grab-keyboard", self.config.get_grab_keyboard())
-
def close(self):
if self.spice_session is not None:
self.spice_session.disconnect()
@@ -886,8 +875,6 @@ class vmmConsolePages(vmmGObjectUI):
self.config.on_console_accels_changed(self.set_enable_accel))
self.add_gconf_handle(
self.config.on_keys_combination_changed(self.grab_keys_changed))
- self.add_gconf_handle(
- self.config.on_grab_keyboard_changed(self.grab_keyboard_changed))
self.page_changed()
@@ -1040,9 +1027,6 @@ class vmmConsolePages(vmmGObjectUI):
def pointer_grabbed(self, src_ignore):
self.pointer_is_grabbed = True
self.change_title()
- if not self.config.get_grab_keyboard():
- self.viewer.display.force_grab(False)
- self.viewer.display.set_keyboard_grab(self.config.get_grab_keyboard())
def pointer_ungrabbed(self, src_ignore):
self.pointer_is_grabbed = False
@@ -1083,10 +1067,6 @@ class vmmConsolePages(vmmGObjectUI):
if self.viewer:
self.viewer.set_grab_keys()
- def grab_keyboard_changed(self):
- if self.viewer:
- self.viewer.set_grab_keyboard()
-
def set_enable_accel(self):
# Make sure modifiers are up to date
self.viewer_focus_changed()

View File

@ -0,0 +1,121 @@
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)

View File

@ -9,11 +9,11 @@ but not visible as this is the case for containers
virtManager/addstorage.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/virtManager/addstorage.py b/virtManager/addstorage.py
index b481fcb..654b620 100644
--- a/virtManager/addstorage.py
+++ b/virtManager/addstorage.py
@@ -256,7 +256,8 @@ class vmmAddStorage(vmmGObjectUI):
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):
@ -23,6 +23,3 @@ index b481fcb..654b620 100644
def _check_ideal_path(self, path, vmname, collidelist):
# See if the ideal disk path (/default/pool/vmname.img)
--
1.8.4.5

View File

@ -0,0 +1,94 @@
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)

View File

@ -0,0 +1,43 @@
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)

View File

@ -0,0 +1,19 @@
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)

View File

@ -0,0 +1,24 @@
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:

View File

@ -0,0 +1,19 @@
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)

View File

@ -0,0 +1,75 @@
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):

View File

@ -0,0 +1,19 @@
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)

View File

@ -0,0 +1,19 @@
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:

View File

@ -0,0 +1,22 @@
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>

View File

@ -1,3 +1,40 @@
-------------------------------------------------------------------
Wed Jun 6 10:15:34 MDT 2014 - carnold@suse.com
- bnc#881551 - virt-manage: default storage image called
opensuse13.img for SLE-Server
virtinst-detect-suse-distros.patch
-------------------------------------------------------------------
Wed Jun 5 09:58:34 MDT 2014 - carnold@suse.com
- bnc#881549 - virt-manager/xen: Error changing VM configuration:
'NoneType' object has no attribute 'split'
virtinst-xenbus-disk-index-fix.patch
-------------------------------------------------------------------
Wed Jun 4 09:11:03 MDT 2014 - carnold@suse.com
- Upstream bug fix
538edb3b-manpage-fix-incorrect-description.patch
-------------------------------------------------------------------
Tue Jun 3 14:50:49 MDT 2014 - carnold@suse.com
- Upstream bug fixes
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
538ca3f3-use-correct-dictionary-keys-for-old-pool-net-polling.patch
538d00a4-xen-keyboard-cant-be-removed.patch
538e2f74-fix-pool-create-call.patch
- Dropped 531e0a82-reverse-keyboard-grab-commit.patch. Fixed instead
with this patch.
538a6862-vnc-dont-force-keyboard-grab-before-widget-is-realized.patch
-------------------------------------------------------------------
Thu May 29 10:30:15 MDT 2014 - carnold@suse.com

View File

@ -28,7 +28,7 @@
Name: virt-manager
Version: 1.0.1
Release: 0
Release: 8.2
Summary: Virtual Machine Manager
License: GPL-2.0+
Group: System/Monitoring
@ -61,8 +61,17 @@ 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: 5385d602-lxc-no-default-disk.patch
Patch45: 531e0a82-reverse-keyboard-grab-commit.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
Patch50: virtman-desktop.patch
Patch51: virtman-cdrom.patch
Patch52: virtman-kvm.patch
@ -210,7 +219,16 @@ machine).
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch45 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch30 -p1
%patch31 -p1
%patch32 -p1
%patch33 -p1
%patch34 -p1
%patch35 -p1
%patch36 -p1
%patch50 -p1
%patch51 -p1
%patch52 -p1
@ -240,7 +258,7 @@ machine).
%patch156 -p1
%patch157 -p1
%patch158 -p1
###%patch159 -p1 nocow flag
%patch159 -p1
%patch160 -p1
%patch161 -p1
%patch162 -p1

View File

@ -2,7 +2,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
===================================================================
--- virt-manager-1.0.1.orig/virtinst/urlfetcher.py
+++ virt-manager-1.0.1/virtinst/urlfetcher.py
@@ -303,6 +303,85 @@ def _distroFromTreeinfo(fetcher, arch, v
@@ -303,6 +303,88 @@ def _distroFromTreeinfo(fetcher, arch, v
return ob
@ -77,6 +77,9 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
+ if distro_version is None:
+ distro_version = ['VERSION', '13.1']
+
+ if distro_version is None:
+ return None
+
+ ob = dclass(fetcher, arch, vmtype)
+ if dclass != GenericDistro:
+ ob.content = distro_version
@ -88,7 +91,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
def getDistroStore(guest, fetcher):
stores = []
@@ -319,6 +398,10 @@ def getDistroStore(guest, fetcher):
@@ -319,6 +401,10 @@ def getDistroStore(guest, fetcher):
if dist:
return dist
@ -99,7 +102,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
# 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 +898,11 @@ class SLDistro(RHELDistro):
@@ -815,12 +901,11 @@ class SLDistro(RHELDistro):
class SuseDistro(Distro):
name = "SUSE"
@ -113,7 +116,7 @@ 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 +913,44 @@ class SuseDistro(Distro):
@@ -831,22 +916,44 @@ class SuseDistro(Distro):
oldkern += "64"
oldinit += "64"
@ -168,7 +171,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py
return True
def _get_method_arg(self):
@@ -867,6 +971,27 @@ class SuseDistro(Distro):
@@ -867,6 +974,27 @@ class SuseDistro(Distro):
return name
return self.os_variant

View File

@ -1,8 +1,10 @@
bnc#872789
--- virt-manager-1.0.1/virtinst/devicedisk.py.orig 2014-04-14 11:41:36.904354483 -0600
+++ virt-manager-1.0.1/virtinst/devicedisk.py 2014-04-14 11:45:39.565744657 -0600
@@ -931,6 +931,15 @@ class VirtualDisk(VirtualDevice):
Index: virt-manager-1.0.1/virtinst/devicedisk.py
===================================================================
--- virt-manager-1.0.1.orig/virtinst/devicedisk.py
+++ virt-manager-1.0.1/virtinst/devicedisk.py
@@ -931,6 +931,17 @@ class VirtualDisk(VirtualDevice):
@rtype C{str}
"""
prefix, maxnode = self.get_target_prefix(skip_targets)
@ -10,6 +12,8 @@ bnc#872789
+ if self.conn.is_xen():
+ prefixes = [ "hd", "xvd", "vd", "sd", "fd" ]
+ for x in skip_targets:
+ if x is None:
+ continue
+ for p in prefixes:
+ found = x.split(p,1)
+ if found and len(found) == 2:
@ -18,7 +22,7 @@ bnc#872789
skip_targets = [t for t in skip_targets if t and t.startswith(prefix)]
skip_targets.sort()
@@ -944,7 +953,12 @@ class VirtualDisk(VirtualDevice):
@@ -944,7 +955,12 @@ class VirtualDisk(VirtualDevice):
ran = range(pref_ctrl * 7, (pref_ctrl + 1) * 7)
for i in ran:

View File

@ -2,7 +2,7 @@ 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
@@ -2047,10 +2047,10 @@ class vmmDetails(vmmGObjectUI):
@@ -2049,10 +2049,10 @@ class vmmDetails(vmmGObjectUI):
return self._change_config_helper(self.vm.define_memory, kwargs,
hotplug_args=hotplug_args)
@ -17,7 +17,7 @@ Index: virt-manager-1.0.1/virtManager/details.py
auto = self.widget("config-autostart")
try:
self.vm.set_autostart(auto.get_active())
@@ -2059,6 +2059,9 @@ class vmmDetails(vmmGObjectUI):
@@ -2061,6 +2061,9 @@ class vmmDetails(vmmGObjectUI):
(_("Error changing autostart value: %s") % str(e)))
return False
@ -27,7 +27,7 @@ Index: virt-manager-1.0.1/virtManager/details.py
if self.edited(EDIT_BOOTORDER):
kwargs["boot_order"] = self.get_config_boot_order()
@@ -2372,6 +2375,8 @@ class vmmDetails(vmmGObjectUI):
@@ -2374,6 +2377,8 @@ class vmmDetails(vmmGObjectUI):
buttons=Gtk.ButtonsType.OK,
dialog_type=dtype)

View File

@ -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:
@@ -1590,7 +1613,10 @@ class vmmCreate(vmmGObjectUI):
@@ -1594,7 +1617,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
@@ -1986,6 +2012,7 @@ class vmmCreate(vmmGObjectUI):
@@ -1990,6 +2016,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)

View File

@ -25,7 +25,7 @@ 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
@@ -2281,6 +2281,17 @@ class vmmDetails(vmmGObjectUI):
@@ -2283,6 +2283,17 @@ class vmmDetails(vmmGObjectUI):
text1=(_("Are you sure you want to remove this device?"))):
return

View File

@ -2,7 +2,7 @@ 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
@@ -922,6 +922,16 @@ class vmmConsolePages(vmmGObjectUI):
@@ -934,6 +934,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())

View File

@ -1,8 +1,10 @@
bnc#874594 - virt-manager allows issuing of start for xen domain twice, resulting in failure
--- virt-manager-1.0.1/virtManager/details.py.orig 2014-05-15 17:04:23.580176420 -0600
+++ virt-manager-1.0.1/virtManager/details.py 2014-05-15 17:07:55.444521681 -0600
@@ -1459,6 +1459,9 @@ class vmmDetails(vmmGObjectUI):
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
@@ -1461,6 +1461,9 @@ class vmmDetails(vmmGObjectUI):
self.widget("details-menu-usb-redirection").set_sensitive(can_usb)
def control_vm_run(self, src_ignore):