Hello community, here is the log from the commit of package virt-manager for openSUSE:Factory checked in at 2013-06-07 10:12:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/virt-manager (Old) and /work/SRC/openSUSE:Factory/.virt-manager.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virt-manager" Changes: -------- --- /work/SRC/openSUSE:Factory/virt-manager/virt-manager.changes 2013-02-25 21:45:16.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.virt-manager.new/virt-manager.changes 2013-06-07 10:12:26.000000000 +0200 @@ -1,0 +2,23 @@ +Fri May 31 15:08:01 MDT 2013 - carn...@suse.com + +- Renamed all patches from '.diff' to '.patch'. + +------------------------------------------------------------------- +Fri May 31 14:20:00 MDT 2013 - carn...@suse.com + +- bnc#822531 - Virt-manager will reset the domu's 'Autostart' + option to unselected status as soon as changing the domu's any + virtual hardware through virt-manager (Xen only) + virtman-autorestart.diff + +------------------------------------------------------------------- +Tue Apr 2 15:04:34 MDT 2013 - carn...@suse.com + +- Update to virt-manager 0.9.5 + * Enable adding virtio-scsi disks (Chen Hanxiao) + * Support security auto-relabel setting (Martin Kletzander) + * Support disk iotune settings (David Shane Holden) + * Support 'reset' as a reboot option (John Doyle) + * Bug fixes and minor improvements + +------------------------------------------------------------------- Old: ---- virt-manager-0.9.4.tar.bz2 virtman-autoconnect.diff virtman-autorestart.diff virtman-cdrom.diff virtman-desktop.diff virtman-device-flags.diff virtman-eepro100.diff virtman-git-scsi-lun.diff virtman-git-scsi.diff virtman-keycombo.diff virtman-kvm-packages.diff virtman-kvm.diff virtman-qed.diff virtman-slow-mouse.diff virtman-storage-pool.diff virtman-update-backend.diff virtman-virtinstall.diff virtman-vminstall.diff New: ---- virt-manager-0.9.5.tar.bz2 virtman-autoconnect.patch virtman-autorestart.patch virtman-cdrom.patch virtman-desktop.patch virtman-device-flags.patch virtman-eepro100.patch virtman-keycombo.patch virtman-kvm.patch virtman-qed.patch virtman-slow-mouse.patch virtman-storage-pool.patch virtman-update-backend.patch virtman-virtinstall.patch virtman-vminstall.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ virt-manager.spec ++++++ --- /var/tmp/diff_new_pack.9iBOhU/_old 2013-06-07 10:12:27.000000000 +0200 +++ /var/tmp/diff_new_pack.9iBOhU/_new 2013-06-07 10:12:27.000000000 +0200 @@ -20,7 +20,7 @@ %define gconftool /usr/bin/gconftool-2 %define virtinst_maj 0 %define virtinst_min 600 -%define virtinst_rel 3 +%define virtinst_rel 4 %define virtinst_name virtinst-%{virtinst_maj}.%{virtinst_min}.%{virtinst_rel} %define pysite %(python -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib()") @@ -29,28 +29,25 @@ Summary: Virtual Machine Manager License: GPL-2.0+ Group: System/Monitoring -Version: 0.9.4 +Version: 0.9.5 Release: 0 Url: http://virt-manager.et.redhat.com Source0: virt-manager-%{version}.tar.bz2 -Patch0: virtman-git-scsi.diff -Patch1: virtman-git-scsi-lun.diff -Patch50: virtman-desktop.diff -Patch51: virtman-vminstall.diff -Patch52: virtman-cdrom.diff -Patch53: virtman-kvm.diff -Patch54: virtman-keycombo.diff -Patch55: virtman-autoconnect.diff -Patch60: virtman-device-flags.diff -Patch61: virtman-autorestart.diff -Patch62: virtman-storage-pool.diff -Patch63: virtman-eepro100.diff -Patch64: virtman-qed.diff -Patch65: virtman-update-backend.diff -Patch66: virtman-slow-mouse.diff -Patch67: virtman-virtinstall.diff +Patch50: virtman-desktop.patch +Patch51: virtman-vminstall.patch +Patch52: virtman-cdrom.patch +Patch53: virtman-kvm.patch +Patch54: virtman-keycombo.patch +Patch55: virtman-autoconnect.patch +Patch60: virtman-device-flags.patch +Patch61: virtman-autorestart.patch +Patch62: virtman-storage-pool.patch +Patch63: virtman-eepro100.patch +Patch64: virtman-qed.patch +Patch65: virtman-update-backend.patch +Patch66: virtman-slow-mouse.patch +Patch67: virtman-virtinstall.patch Patch68: virtman-reverse-serialcon.patch -Patch69: virtman-kvm-packages.diff ExclusiveArch: %{ix86} x86_64 s390x BuildRoot: %{_tmppath}/%{name}-%{version}-build %gconf_schemas_prereq @@ -102,8 +99,6 @@ %prep %setup -q -%patch0 -p1 -%patch1 -p1 %patch50 -p1 %patch51 -p1 %patch52 -p1 @@ -119,7 +114,6 @@ %patch66 -p1 %patch67 -p1 %patch68 -p1 -%patch69 -p1 %build # autoreconf -i ++++++ virt-manager-0.9.4.tar.bz2 -> virt-manager-0.9.5.tar.bz2 ++++++ ++++ 138353 lines of diff (skipped) ++++++ virtman-autoconnect.patch ++++++ Index: virt-manager-0.9.5/src/virtManager/engine.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/engine.py +++ virt-manager-0.9.5/src/virtManager/engine.py @@ -218,7 +218,7 @@ class vmmEngine(vmmGObject): conn = self.add_conn(uri) if autoconnect is not None: - conn.set_autoconnect(bool(autoconnect)) + self.connect_to_uri(uri) self.show_manager() if do_start: ++++++ virtman-autorestart.patch ++++++ Index: virt-manager-0.9.5/src/virtManager/details.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/details.py +++ virt-manager-0.9.5/src/virtManager/details.py @@ -2195,12 +2195,10 @@ class vmmDetails(vmmGObjectUI): return self._change_config_helper(df, da, hf, ha) - # Boot device / Autostart - def config_boot_options_apply(self): - df, da, add_define, hf, ha, add_hotplug = self.make_apply_data() - ignore = add_hotplug - - if self.editted(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.editted(EDIT_AUTOSTART) or self.vm.conn.is_xen(): auto = self.widget("config-autostart") try: self.vm.set_autostart(auto.get_active()) @@ -2209,6 +2207,11 @@ class vmmDetails(vmmGObjectUI): (_("Error changing autostart value: %s") % str(e))) return False + # Boot device + def config_boot_options_apply(self): + df, da, add_define, hf, ha, add_hotplug = self.make_apply_data() + ignore = add_hotplug + if self.editted(EDIT_BOOTORDER): bootdevs = self.get_config_boot_devs() add_define(self.vm.set_boot_device, bootdevs) @@ -2580,6 +2583,8 @@ class vmmDetails(vmmGObjectUI): buttons=gtk.BUTTONS_OK, dialog_type=dtype) + self.update_on_xend_start() + return True ######################## ++++++ virtman-cdrom.patch ++++++ Index: virt-manager-0.9.5/src/virtManager/addhardware.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/addhardware.py +++ virt-manager-0.9.5/src/virtManager/addhardware.py @@ -551,6 +551,8 @@ class vmmAddHardware(vmmGObjectUI): add_dev("virtio-scsi", virtinst.VirtualDisk.DEVICE_LUN, _("Virtio SCSI lun")) if self.conn.is_xen() or self.conn.is_test_conn(): + add_dev("xen", virtinst.VirtualDisk.DEVICE_CDROM, + _("Xen Virtual disk (read only)")) add_dev("xen", virtinst.VirtualDisk.DEVICE_DISK, _("Xen virtual disk")) ++++++ virtman-desktop.patch ++++++ Index: virt-manager-0.9.5/src/Makefile.am =================================================================== --- virt-manager-0.9.5.orig/src/Makefile.am +++ virt-manager-0.9.5/src/Makefile.am @@ -14,7 +14,7 @@ libexec_SCRIPTS = $(PACKAGE)-launch gladedir = $(pkgdatadir) glade_DATA = $(wildcard $(srcdir)/*.ui) -desktopdir = $(datadir)/applications +desktopdir = $(datadir)/applications/YaST2/ desktop_DATA_IN = $(PACKAGE).desktop.in.in desktop_DATA = $(PACKAGE).desktop Index: virt-manager-0.9.5/src/Makefile.in =================================================================== --- virt-manager-0.9.5.orig/src/Makefile.in +++ virt-manager-0.9.5/src/Makefile.in @@ -288,7 +288,7 @@ libexec_DATA_IN = $(PACKAGE)-launch.in libexec_SCRIPTS = $(PACKAGE)-launch gladedir = $(pkgdatadir) glade_DATA = $(wildcard $(srcdir)/*.ui) -desktopdir = $(datadir)/applications +desktopdir = $(datadir)/applications/YaST2/ desktop_DATA_IN = $(PACKAGE).desktop.in.in desktop_DATA = $(PACKAGE).desktop dbusdir = $(datadir)/dbus-1/services Index: virt-manager-0.9.5/src/virt-manager.desktop.in.in =================================================================== --- virt-manager-0.9.5.orig/src/virt-manager.desktop.in.in +++ virt-manager-0.9.5/src/virt-manager.desktop.in.in @@ -1,8 +1,19 @@ [Desktop Entry] _Name=Virtual Machine Manager -_Comment=Manage virtual machines -Icon=::PACKAGE:: -Exec=::PACKAGE:: +_Comment=Manage Virtual Machines for Xen and KVM +Version=1.0 +Icon=yast-vm-management +Exec=/usr/bin/virt-manager Type=Application Terminal=false -Categories=System; +Encoding=UTF-8 +Categories=Qt;X-SuSE-YaST; +X-KDE-ModuleType=Library +X-KDE-RootOnly=true +X-KDE-HasReadOnlyMode=false +X-SuSE-YaST-Call=/usr/bin/virt-manager +X-SuSE-YaST-Group=Virtualization +X-SuSE-YaST-Argument= +X-SuSE-YaST-RootOnly=true +X-SuSE-YaST-Geometry= +X-SuSE-YaST-SortKey= ++++++ virtman-device-flags.patch ++++++ Index: virt-manager-0.9.5/src/virtManager/addhardware.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/addhardware.py +++ virt-manager-0.9.5/src/virtManager/addhardware.py @@ -1167,6 +1167,19 @@ class vmmAddHardware(vmmGObjectUI): if controller is not None: logging.debug("Adding controller:\n%s", self._dev.vmm_controller.get_xml_config()) + + # If vm is active, Try to hotplug the device and modify persistent + # config in one go + if self.vm.is_active(): + try: + self.vm.attach_device_flags(self._dev, 3) + return (False, None) + except Exception, e: + logging.debug("Could not hotplug device and modify persistent " + "config at the same time: %s" % str(e)) + logging.debug("Trying the operations seperately ...") + + # Try hotplug then modify persistent config # Hotplug device attach_err = False try: Index: virt-manager-0.9.5/src/virtManager/details.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/details.py +++ virt-manager-0.9.5/src/virtManager/details.py @@ -2466,6 +2466,17 @@ class vmmDetails(vmmGObjectUI): text1=(_("Are you sure you want to remove this device?"))): return + # If vm is running, try to hot remove the device and modify + # persistent config in one go + if self.vm.is_active(): + try: + self.vm.detach_device_flags(dev_type, dev_id_info, 3) + return + except Exception, e: + logging.debug("Could not hot remove device and modify " + "persistent config at the same time: %s" % str(e)) + logging.debug("Trying the operations seperately ...") + # Define the change try: self.vm.remove_device(dev_id_info) Index: virt-manager-0.9.5/src/virtManager/domain.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/domain.py +++ virt-manager-0.9.5/src/virtManager/domain.py @@ -797,6 +797,10 @@ class vmmDomain(vmmLibvirtObject): devxml = devobj.get_xml_config() self._backend.attachDevice(devxml) + def attach_device_flags(self, devobj, flags): + xml = devobj.get_xml_config() + self._backend.attachDeviceFlags(xml, flags) + def detach_device(self, devobj): """ Hotunplug device from running guest @@ -815,6 +819,10 @@ class vmmDomain(vmmLibvirtObject): xml = devobj.get_xml_config() self._backend.updateDeviceFlags(xml, flags) + def detach_device_flags(self, devtype, dev_id_info, flags): + xml = self._get_device_xml(devtype, dev_id_info) + self._backend.detachDeviceFlags(xml, flags) + def hotplug_vcpus(self, vcpus): vcpus = int(vcpus) if vcpus != self.vcpu_count(): ++++++ virtman-eepro100.patch ++++++ Index: virt-manager-0.9.5/src/virtManager/uihelpers.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/uihelpers.py +++ virt-manager-0.9.5/src/virtManager/uihelpers.py @@ -311,6 +311,7 @@ def populate_netmodel_combo(vm, combo): if vm.is_hvm(): mod_list = ["rtl8139", "ne2k_pci", "pcnet", "e1000"] if vm.get_hv_type() in ["kvm", "qemu", "test"]: + mod_list.append("eepro100") mod_list.append("virtio") if (vm.get_hv_type() == "kvm" and vm.get_machtype() == "pseries"): ++++++ virtman-keycombo.patch ++++++ Index: virt-manager-0.9.5/src/virtManager/uihelpers.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/uihelpers.py +++ virt-manager-0.9.5/src/virtManager/uihelpers.py @@ -972,6 +972,16 @@ def build_keycombo_menu(cb): make_item("Ctrl+Alt+_Backspace", ["Control_L", "Alt_L", "BackSpace"]) make_item("Ctrl+Alt+_Delete", ["Control_L", "Alt_L", "Delete"]) menu.add(gtk.SeparatorMenuItem()) + make_item("Ctrl+Scroll+Scroll", ["Control_L", "Scroll" + "Scroll"]) + make_item("Alt+F_10", ["Alt_L", "F10"]) + make_item("Alt+Tab", ["Alt_L", "Tab"]) + make_item("Alt+Escape", ["Alt_L", "Escape"]) + make_item("Ctrl+Escape", ["Control_L", "Escape"]) + make_item("Ctrl+Alt+Escape", ["Control_L", "Alt_L", "Escape"]) + make_item("Alt+Shift+Shift+Escape", ["Alt_R", "Shift_R", "Shift_L", "Escape"]) + make_item("F_8", ["F8"]) + make_item("F_10", ["F10"]) + menu.add(gtk.SeparatorMenuItem()) for i in range(1, 13): make_item("Ctrl+Alt+F_%d" % i, ["Control_L", "Alt_L", "F%d" % i]) ++++++ virtman-kvm.patch ++++++ Index: virt-manager-0.9.5/src/virtManager/engine.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/engine.py +++ virt-manager-0.9.5/src/virtManager/engine.py @@ -58,6 +58,7 @@ def default_uri(): os.path.exists("/usr/bin/qemu") or os.path.exists("/usr/bin/qemu-kvm") or os.path.exists("/usr/bin/kvm") or + os.path.exists("/dev/kvm") or os.path.exists("/usr/libexec/qemu-kvm")): tryuri = "qemu:///system" ++++++ virtman-qed.patch ++++++ Index: virt-manager-0.9.5/src/virtManager/uihelpers.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/uihelpers.py +++ virt-manager-0.9.5/src/virtManager/uihelpers.py @@ -400,13 +400,12 @@ def build_storage_format_combo(vm, combo combo.set_model(dev_model) combo.set_text_column(0) - formats = ["raw", "qcow2", "qed"] - if vm.rhel6_defaults(): - formats.append("vmdk") - formats.append("vdi") - - for m in formats: - dev_model.append([m]) + if vm.conn.is_xen(): + for m in ["raw", "qcow2", "vmdk"]: + dev_model.append([m]) + else: + for m in ["raw", "qcow2", "qed", "vmdk", "vdi"]: + dev_model.append([m]) combo.set_active(0) ++++++ virtman-reverse-serialcon.patch ++++++ --- /var/tmp/diff_new_pack.9iBOhU/_old 2013-06-07 10:12:28.000000000 +0200 +++ /var/tmp/diff_new_pack.9iBOhU/_new 2013-06-07 10:12:28.000000000 +0200 @@ -2,10 +2,10 @@ Git: ce94126b707f157d88de113a8c591e628d55db63 bnc#780859 -Index: virt-manager-0.9.4/src/virtManager/serialcon.py +Index: virt-manager-0.9.5/src/virtManager/serialcon.py =================================================================== ---- virt-manager-0.9.4.orig/src/virtManager/serialcon.py -+++ virt-manager-0.9.4/src/virtManager/serialcon.py +--- virt-manager-0.9.5.orig/src/virtManager/serialcon.py ++++ virt-manager-0.9.5/src/virtManager/serialcon.py @@ -191,8 +191,9 @@ class LibvirtConsoleConnection(ConsoleCo name = dev and dev.alias.name or None logging.debug("Opening console stream for dev=%s alias=%s", ++++++ virtman-slow-mouse.patch ++++++ This patch reverses the commit described below. The commit causes a serious mouse tracking slowdown. See bnc#731218. Subject: manager: Properly show vm desc in tooltip w/ special xml characters From: Cole Robinson crobi...@redhat.com Mon Sep 26 11:05:55 2011 -0400 Date: Mon Sep 26 11:07:52 2011 -0400: Git: 0a7640c593a54a6a3f558583d82f8b27c7a7d1d1 Index: virt-manager-0.9.5/src/virtManager/manager.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/manager.py +++ virt-manager-0.9.5/src/virtManager/manager.py @@ -787,7 +787,7 @@ class vmmManager(vmmGObjectUI): row.insert(ROW_STATUS, vm.run_status()) row.insert(ROW_STATUS_ICON, vm.run_status_icon_name()) row.insert(ROW_KEY, vm.get_uuid()) - row.insert(ROW_HINT, util.xml_escape(vm.get_description())) + row.insert(ROW_HINT, vm.get_description()) row.insert(ROW_IS_CONN, False) row.insert(ROW_IS_CONN_CONNECTED, True) row.insert(ROW_IS_VM, True) @@ -931,7 +931,7 @@ class vmmManager(vmmGObjectUI): row[ROW_MARKUP] = self._build_vm_markup(row) if config_changed: - row[ROW_HINT] = util.xml_escape(vm.get_description()) + row[ROW_HINT] = vm.get_description() model.row_changed(row.path, row.iter) ++++++ virtman-storage-pool.patch ++++++ When connecting to a xen host, create default dir storage pool in /var/lib/xen/images instead of /var/lib/libvirt/images. Index: virt-manager-0.8.5/src/virtManager/connection.py =================================================================== --- virt-manager-0.8.5.orig/src/virtManager/connection.py +++ virt-manager-0.8.5/src/virtManager/connection.py @@ -1144,7 +1144,8 @@ class vmmConnection(gobject.GObject): else: # Try to create the default storage pool try: - util.build_default_pool(self.vmm) + util.build_default_pool(self.vmm, \ + self.config.get_default_image_dir(self)) except Exception, e: logging.debug("Building default pool failed: %s" % str(e)) Index: virt-manager-0.8.5/src/virtManager/util.py =================================================================== --- virt-manager-0.8.5.orig/src/virtManager/util.py +++ virt-manager-0.8.5/src/virtManager/util.py @@ -31,9 +31,8 @@ import virtManager import virtinst DEFAULT_POOL_NAME = "default" -DEFAULT_POOL_PATH = "/var/lib/libvirt/images" -def build_default_pool(conn): +def build_default_pool(conn, path): """ Helper to build the 'default' storage pool """ @@ -54,15 +53,15 @@ def build_default_pool(conn): try: logging.debug("Attempting to build default pool with target '%s'" % - DEFAULT_POOL_PATH) + path) defpool = virtinst.Storage.DirectoryPool(conn=conn, name=DEFAULT_POOL_NAME, - target_path=DEFAULT_POOL_PATH) + target_path=path) newpool = defpool.install(build=True, create=True) newpool.setAutostart(True) except Exception, e: raise RuntimeError(_("Couldn't create default storage pool '%s': %s") % - (DEFAULT_POOL_PATH, str(e))) + (path, str(e))) def get_ideal_path_info(conn, config, name): path = get_default_dir(conn, config) ++++++ virtman-update-backend.patch ++++++ Index: virt-manager-0.9.5/src/virtManager/domain.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/domain.py +++ virt-manager-0.9.5/src/virtManager/domain.py @@ -1669,7 +1669,14 @@ class vmmDomain(vmmLibvirtObject): # Invalidate cached values self._invalidate_xml() - info = self._backend.info() + try: + info = self._backend.info() + except: + self._backend = self.conn.vmm.lookupByName(self.get_name()) + info = self._backend.info() + if info[0] == libvirt.VIR_DOMAIN_NOSTATE: + self._backend = self.conn.vmm.lookupByName(self.get_name()) + info = self._backend.info() expected = self.config.get_stats_history_length() current = len(self.record) if current > expected: ++++++ virtman-virtinstall.patch ++++++ Index: virt-manager-0.9.5/src/vmm-manager.ui =================================================================== --- virt-manager-0.9.5.orig/src/vmm-manager.ui +++ virt-manager-0.9.5/src/vmm-manager.ui @@ -293,7 +293,7 @@ <property name="can_focus">False</property> <property name="show_arrow">False</property> <child> - <object class="GtkToolButton" id="vm-new"> + <object class="GtkMenuToolButton" id="vm-new"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="has_tooltip">True</property> @@ -306,7 +306,6 @@ </object> <packing> <property name="expand">False</property> - <property name="homogeneous">True</property> </packing> </child> <child> Index: virt-manager-0.9.5/src/virtManager/manager.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/manager.py +++ virt-manager-0.9.5/src/virtManager/manager.py @@ -260,7 +260,8 @@ class vmmManager(vmmGObjectUI): self.config.is_vmlist_network_traffic_visible()) def init_toolbar(self): - self.widget("vm-new").set_icon_name("vm_new") + uihelpers.build_new_button_menu(self.widget("vm-new"), + self.virtinstall_new_vm) self.widget("vm-open").set_icon_name("icon_console") uihelpers.build_shutdown_button_menu(self.widget("vm-shutdown"), self.poweroff_vm, @@ -510,6 +511,9 @@ class vmmManager(vmmGObjectUI): def new_vm(self, src_ignore=None): self.emit("action-show-create", self.current_conn_uri()) + def virtinstall_new_vm(self, src_ignore=None): + self.emit("action-show-create-virtinstall", self.current_conn_uri()) + def show_about(self, src_ignore): self.emit("action-show-about") @@ -1238,6 +1242,7 @@ vmmManager.signal_new(vmmManager, "actio vmmManager.signal_new(vmmManager, "action-show-host", [str]) vmmManager.signal_new(vmmManager, "action-show-preferences", []) vmmManager.signal_new(vmmManager, "action-show-create", [str]) +vmmManager.signal_new(vmmManager, "action-show-create-virtinstall", [str]) vmmManager.signal_new(vmmManager, "action-suspend-domain", [str, str]) vmmManager.signal_new(vmmManager, "action-resume-domain", [str, str]) vmmManager.signal_new(vmmManager, "action-run-domain", [str, str]) Index: virt-manager-0.9.5/src/virtManager/uihelpers.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/uihelpers.py +++ virt-manager-0.9.5/src/virtManager/uihelpers.py @@ -837,6 +837,24 @@ def mediadev_set_default_selection(widge #################################################################### +# Build toolbar new button menu (manager and details toolbar) # +#################################################################### + +def build_new_button_menu(widget, virtinstall_cb): + icon_name = util.running_config.get_new_icon_name() + widget.set_icon_name(icon_name) + menu = gtk.Menu() + widget.set_menu(menu) + + virtinstallimg = gtk.image_new_from_icon_name(icon_name, gtk.ICON_SIZE_MENU) + + virtinstall = gtk.ImageMenuItem(_("_Virt-install")) + virtinstall.set_image(virtinstallimg) + virtinstall.show() + virtinstall.connect("activate", virtinstall_cb) + menu.add(virtinstall) + +#################################################################### # Build toolbar shutdown button menu (manager and details toolbar) # #################################################################### Index: virt-manager-0.9.5/src/virtManager/config.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/config.py +++ virt-manager-0.9.5/src/virtManager/config.py @@ -150,6 +150,13 @@ class vmmConfig(object): # General app wide helpers (gconf agnostic) + def get_new_icon_name(self): + theme = gtk.icon_theme_get_default() + iconname = "vm_new" + if theme.has_icon(iconname): + return iconname + return "media-record" + def get_shutdown_icon_name(self): theme = gtk.icon_theme_get_default() iconname = "system-shutdown" Index: virt-manager-0.9.5/src/virtManager/engine.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/engine.py +++ virt-manager-0.9.5/src/virtManager/engine.py @@ -634,6 +634,7 @@ class vmmEngine(vmmGObject): obj.connect("action-show-vm", self._do_show_vm) obj.connect("action-show-preferences", self._do_show_preferences) obj.connect("action-show-create", self._do_show_create) + obj.connect("action-show-create-virtinstall", self._do_show_create_virtinstall) obj.connect("action-show-help", self._do_show_help) obj.connect("action-show-about", self._do_show_about) obj.connect("action-show-host", self._do_show_host) @@ -680,14 +681,17 @@ class vmmEngine(vmmGObject): def _vmmcreate_closing(self,signal,key): self.windowCreate = None - def _do_show_create(self, src, uri): + def _do_show_create_virtinstall(self, src, uri): + self._do_show_create(src, uri, True) + + def _do_show_create(self, src, uri, use_virtinstall=False): if uri is None: uri = default_uri() conn = self._lookup_conn(uri) do_remote = conn.is_remote() if self.windowCreate == None or do_remote != self.remote_install: try: - if do_remote: + if do_remote or use_virtinstall: from virtManager.create import vmmCreate create = vmmCreate(self) create.connect("action-show-vm", self._do_show_vm) ++++++ virtman-vminstall.patch ++++++ Index: virt-manager-0.9.5/src/virtManager/engine.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/engine.py +++ virt-manager-0.9.5/src/virtManager/engine.py @@ -24,6 +24,7 @@ import gtk import logging import threading import os +import traceback import libvirt import virtinst @@ -42,7 +43,6 @@ from virtManager.manager import vmmManag from virtManager.migrate import vmmMigrateDialog from virtManager.details import vmmDetails from virtManager.asyncjob import vmmAsyncJob -from virtManager.create import vmmCreate from virtManager.host import vmmHost from virtManager.error import vmmErrorDialog from virtManager.systray import vmmSystray @@ -676,11 +676,47 @@ class vmmEngine(vmmGObject): self.windowCreate = obj return self.windowCreate + def _vmmcreate_closing(self,signal,key): + self.windowCreate = None + def _do_show_create(self, src, uri): - try: - self._get_create_dialog().show(src.topwin, uri) - except Exception, e: - src.err.show_err(_("Error launching manager: %s") % str(e)) + if uri is None: + uri = default_uri() + conn = self._lookup_conn(uri) + do_remote = conn.is_remote() + if self.windowCreate == None or do_remote != self.remote_install: + try: + if do_remote: + from virtManager.create import vmmCreate + create = vmmCreate(self) + create.connect("action-show-vm", self._do_show_vm) + create.connect("action-show-help", self._do_show_help) + create.connect("vmmcreate-closing", self._vmmcreate_closing) + self.remote_install = True + self.windowCreate = create + self.windowCreate.show(src.topwin, uri) + else: + from vminstall.gtk.interface import VMCreate as vmmCreate + create = vmmCreate(virtman=True,key=0) + create.connect("action-show-vm", self._do_show_vm) + create.connect("vmmcreate-closing", self._vmmcreate_closing) + self.remote_install = False + self.windowCreate = create + self.windowCreate.show(src.topwin) + except Exception, e: + src.err.show_err(_("Error launching manager: %s") % str(e), + "".join(traceback.format_exc())) + else: + if do_remote: + self.windowCreate.show(src.topwin, uri) + else: + message_box = gtk.MessageDialog(None, + gtk.DIALOG_MODAL, + gtk.MESSAGE_WARNING, + gtk.BUTTONS_OK, + _("A new installation is already in progress.\n\nUse the YaST \"Create Virtual Machines\" utility for concurrent installations.")) + message_box.run() + message_box.destroy() def _do_show_migrate(self, src, uri, uuid): try: Index: virt-manager-0.9.5/src/virtManager/create.py =================================================================== --- virt-manager-0.9.5.orig/src/virtManager/create.py +++ virt-manager-0.9.5/src/virtManager/create.py @@ -176,6 +176,7 @@ class vmmCreate(vmmGObjectUI): def close(self, ignore1=None, ignore2=None): logging.debug("Closing new vm wizard") + self.emit('vmmcreate-closing', 0) self.topwin.hide() self.remove_timers() @@ -2158,3 +2159,4 @@ class vmmCreate(vmmGObjectUI): vmmGObjectUI.type_register(vmmCreate) vmmCreate.signal_new(vmmCreate, "action-show-vm", [str, str]) vmmCreate.signal_new(vmmCreate, "action-show-help", [str]) +vmmCreate.signal_new(vmmCreate, "vmmcreate-closing", [str]) -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org