Reference: bnc#888173 Force the use of vm-install on s390. The viewer in virt-manager and virt-viewer needs a graphics adapter defined in the VM to show the display correctly. On s390 you can't have a graphics adapter (you get the error 'No PCI buses available'). Vm-install gets around this problem by starting an xterm window in which to run the VM. 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 @@ -27,6 +27,7 @@ import re import Queue import threading import traceback +import platform import os from subprocess import * @@ -821,7 +822,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) - obj.connect("action-show-create", self._do_show_create) + obj.connect("action-show-create", self._do_show_create_virtinstall) 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) @@ -869,7 +870,20 @@ class vmmEngine(vmmGObject): self.windowCreate = None def _do_show_create_vminstall(self, src, uri): - self._do_show_create(src, uri, True) + # When pop-down menu is selected + if platform.machine() == "s390x": + # For s390, the pop-down is virt-install + self._do_show_create(src, uri, False) + else: + self._do_show_create(src, uri, True) + + def _do_show_create_virtinstall(self, src, uri): + # When 'Create a new virtual machine' button is selected + if platform.machine() == "s390x": + # For s390, the button is vm-install + self._do_show_create(src, uri, True) + else: + self._do_show_create(src, uri, False) def _do_show_create(self, src, uri, use_vminstall=False): if uri is None: @@ -952,7 +966,10 @@ class vmmEngine(vmmGObject): def show_domain_creator(self, uri): self.show_manager() - self._do_show_create(self.get_manager(), uri) + if platform.machine() == "s390x": + self._do_show_create(self.get_manager(), uri, True) + else: + self._do_show_create(self.get_manager(), uri, False) def _find_vm_by_cli_str(self, uri, clistr): 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 @@ -21,6 +21,7 @@ from gi.repository import Gtk from virtManager import config +import platform #################################################################### # 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) - - vminstall = Gtk.ImageMenuItem.new_with_mnemonic(_("_Vm-install")) + if platform.machine() == "s390x": + vminstall = Gtk.ImageMenuItem.new_with_mnemonic(_("_Virt-install")) + else: + vminstall = Gtk.ImageMenuItem.new_with_mnemonic(_("_Vm-install")) vminstall.set_image(vminstallimg) vminstall.show() vminstall.connect("activate", vminstall_cb)