mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-20 11:48:28 -06:00
Catch & deal with HAL not running more gracefully, by disabling CDROM config & logging error info. bz 211901
This commit is contained in:
parent
af7d36ff23
commit
04053f2aef
@ -22,6 +22,7 @@ import gtk
|
|||||||
import gtk.gdk
|
import gtk.gdk
|
||||||
import gtk.glade
|
import gtk.glade
|
||||||
import pango
|
import pango
|
||||||
|
import libvirt
|
||||||
import virtinst
|
import virtinst
|
||||||
import os, sys
|
import os, sys
|
||||||
import subprocess
|
import subprocess
|
||||||
@ -30,9 +31,6 @@ import tempfile
|
|||||||
import logging
|
import logging
|
||||||
import dbus
|
import dbus
|
||||||
|
|
||||||
from rhpl.exception import installExceptionHandler
|
|
||||||
from rhpl.translate import _, N_, textdomain, utf8
|
|
||||||
|
|
||||||
from virtManager.asyncjob import vmmAsyncJob
|
from virtManager.asyncjob import vmmAsyncJob
|
||||||
|
|
||||||
VM_PARA_VIRT = 1
|
VM_PARA_VIRT = 1
|
||||||
@ -60,11 +58,6 @@ class vmmCreate(gobject.GObject):
|
|||||||
self.window = gtk.glade.XML(config.get_glade_file(), "vmm-create")
|
self.window = gtk.glade.XML(config.get_glade_file(), "vmm-create")
|
||||||
self.topwin = self.window.get_widget("vmm-create")
|
self.topwin = self.window.get_widget("vmm-create")
|
||||||
self.topwin.hide()
|
self.topwin.hide()
|
||||||
# Get a connection to the SYSTEM bus
|
|
||||||
self.bus = dbus.SystemBus()
|
|
||||||
# Get a handle to the HAL service
|
|
||||||
hal_object = self.bus.get_object('org.freedesktop.Hal', '/org/freedesktop/Hal/Manager')
|
|
||||||
self.hal_iface = dbus.Interface(hal_object, 'org.freedesktop.Hal.Manager')
|
|
||||||
|
|
||||||
self.window.signal_autoconnect({
|
self.window.signal_autoconnect({
|
||||||
"on_create_pages_switch_page" : self.page_changed,
|
"on_create_pages_switch_page" : self.page_changed,
|
||||||
@ -83,6 +76,7 @@ class vmmCreate(gobject.GObject):
|
|||||||
"on_pv_media_url_changed" : self.change_combo_box,
|
"on_pv_media_url_changed" : self.change_combo_box,
|
||||||
"on_pv_ks_url_changed" : self.change_combo_box,
|
"on_pv_ks_url_changed" : self.change_combo_box,
|
||||||
})
|
})
|
||||||
|
|
||||||
self.set_initial_state()
|
self.set_initial_state()
|
||||||
|
|
||||||
def show(self):
|
def show(self):
|
||||||
@ -116,7 +110,23 @@ class vmmCreate(gobject.GObject):
|
|||||||
cd_list.pack_start(text, True)
|
cd_list.pack_start(text, True)
|
||||||
cd_list.add_attribute(text, 'text', 1)
|
cd_list.add_attribute(text, 'text', 1)
|
||||||
cd_list.add_attribute(text, 'sensitive', 2)
|
cd_list.add_attribute(text, 'sensitive', 2)
|
||||||
self.populate_opt_media(cd_model)
|
try:
|
||||||
|
# Get a connection to the SYSTEM bus
|
||||||
|
self.bus = dbus.SystemBus()
|
||||||
|
# Get a handle to the HAL service
|
||||||
|
hal_object = self.bus.get_object('org.freedesktop.Hal', '/org/freedesktop/Hal/Manager')
|
||||||
|
self.hal_iface = dbus.Interface(hal_object, 'org.freedesktop.Hal.Manager')
|
||||||
|
self.populate_opt_media(cd_model)
|
||||||
|
except Exception, e:
|
||||||
|
logging.error("Unable to connect to HAL to list cdrom volumes: '%s'", e)
|
||||||
|
self.window.get_widget("media-physical").set_sensitive(False)
|
||||||
|
self.bus = None
|
||||||
|
self.hal_iface = None
|
||||||
|
msg = gtk.MessageDialog(parent=None, flags=0, type=gtk.MESSAGE_ERROR, buttons=gtk.BUTTONS_OK,
|
||||||
|
message_format="Unable to enumerate CDROM volumes")
|
||||||
|
msg.format_secondary_text("Can not connect to HAL device manager")
|
||||||
|
msg.run()
|
||||||
|
msg.destroy()
|
||||||
|
|
||||||
# set up the lists for the url widgets
|
# set up the lists for the url widgets
|
||||||
media_url_list = self.window.get_widget("pv-media-url")
|
media_url_list = self.window.get_widget("pv-media-url")
|
||||||
@ -407,7 +417,6 @@ class vmmCreate(gobject.GObject):
|
|||||||
except Exception, e:
|
except Exception, e:
|
||||||
self.install_error = "ERROR: %s" % e
|
self.install_error = "ERROR: %s" % e
|
||||||
logging.exception("Could not complete install " + str(e))
|
logging.exception("Could not complete install " + str(e))
|
||||||
return
|
|
||||||
|
|
||||||
def browse_iso_location(self, ignore1=None, ignore2=None):
|
def browse_iso_location(self, ignore1=None, ignore2=None):
|
||||||
file = self._browse_file(_("Locate ISO Image"), type="iso")
|
file = self._browse_file(_("Locate ISO Image"), type="iso")
|
||||||
|
Loading…
Reference in New Issue
Block a user