Import logged info from validation errors

This commit is contained in:
Cole Robinson
2011-08-30 14:50:50 -04:00
parent 66f879e19d
commit ce8111e190
9 changed files with 50 additions and 45 deletions
+9 -13
View File
@@ -1148,7 +1148,7 @@ class vmmAddHardware(vmmGObjectUI):
disk.driver_name = virtinst.VirtualDisk.DRIVER_TAP
except Exception, e:
return self.err.val_err(_("Storage parameter error."), str(e))
return self.err.val_err(_("Storage parameter error."), e)
# Generate target
used = []
@@ -1224,7 +1224,7 @@ class vmmAddHardware(vmmGObjectUI):
self._dev.listen = self.get_config_graphics_address()
self._dev.keymap = self.get_config_keymap()
except ValueError, e:
self.err.val_err(_("Graphics device parameter error"), str(e))
self.err.val_err(_("Graphics device parameter error"), e)
def validate_page_sound(self):
smodel = self.get_config_sound_model()
@@ -1232,7 +1232,7 @@ class vmmAddHardware(vmmGObjectUI):
self._dev = virtinst.VirtualAudio(conn=self.conn.vmm,
model=smodel)
except Exception, e:
return self.err.val_err(_("Sound device parameter error"), str(e))
return self.err.val_err(_("Sound device parameter error"), e)
def validate_page_hostdev(self):
ret = self.get_config_host_device_info()
@@ -1247,7 +1247,7 @@ class vmmAddHardware(vmmGObjectUI):
conn=self.conn.vmm,
name=nodedev_name)
except Exception, e:
return self.err.val_err(_("Host device parameter error"), str(e))
return self.err.val_err(_("Host device parameter error"), e)
def validate_page_char(self):
chartype = self.get_char_type()
@@ -1290,7 +1290,7 @@ class vmmAddHardware(vmmGObjectUI):
self._dev.get_xml_config()
except Exception, e:
return self.err.val_err(_("%s device parameter error") %
chartype.capitalize(), str(e))
chartype.capitalize(), e)
def validate_page_video(self):
conn = self.conn.vmm
@@ -1300,8 +1300,7 @@ class vmmAddHardware(vmmGObjectUI):
self._dev = VirtualVideoDevice(conn=conn)
self._dev.model_type = model
except Exception, e:
return self.err.val_err(_("Video device parameter error"),
str(e))
return self.err.val_err(_("Video device parameter error"), e)
def validate_page_watchdog(self):
conn = self.conn.vmm
@@ -1313,8 +1312,7 @@ class vmmAddHardware(vmmGObjectUI):
self._dev.model = model
self._dev.action = action
except Exception, e:
return self.err.val_err(_("Watchdog parameter error"),
str(e))
return self.err.val_err(_("Watchdog parameter error"), e)
def validate_page_filesystem(self):
conn = self.conn.vmm
@@ -1337,8 +1335,7 @@ class vmmAddHardware(vmmGObjectUI):
if fstype:
self._dev.type = fstype
except Exception, e:
return self.err.val_err(_("Filesystem parameter error"),
str(e))
return self.err.val_err(_("Filesystem parameter error"), e)
def validate_page_smartcard(self):
conn = self.conn.vmm
@@ -1347,8 +1344,7 @@ class vmmAddHardware(vmmGObjectUI):
try:
self._dev = VirtualSmartCardDevice(conn, mode)
except Exception, e:
return self.err.val_err(_("Video device parameter error"),
str(e))
return self.err.val_err(_("Video device parameter error"), e)
####################
+1 -1
View File
@@ -99,7 +99,7 @@ class vmmChooseCD(vmmGObjectUI):
try:
self.disk.path = path
except Exception, e:
return self.err.val_err(_("Invalid Media Path"), str(e))
return self.err.val_err(_("Invalid Media Path"), e)
uihelpers.check_path_search_for_qemu(self.topwin, self.conn, path)
+20 -20
View File
@@ -1466,7 +1466,7 @@ class vmmCreate(vmmGObjectUI):
g = virtinst.Guest(conn=self.conn.vmm)
g.name = name
except Exception, e:
return self.verr(_("Invalid System Name"), str(e))
return self.err.val_err(_("Invalid System Name"), e)
return True
@@ -1487,7 +1487,8 @@ class vmmCreate(vmmGObjectUI):
media = self.get_config_local_media()
if not media:
return self.verr(_("An install media selection is required."))
return self.err.val_err(
_("An install media selection is required."))
location = media
cdrom = True
@@ -1497,7 +1498,7 @@ class vmmCreate(vmmGObjectUI):
media, extra, ks = self.get_config_url_info()
if not media:
return self.verr(_("An install tree is required."))
return self.err.val_err(_("An install tree is required."))
location = media
@@ -1510,21 +1511,22 @@ class vmmCreate(vmmGObjectUI):
import_path = self.get_config_import_path()
if not import_path:
return self.verr(_("A storage path to import is required."))
return self.err.val_err(
_("A storage path to import is required."))
elif instmethod == INSTALL_PAGE_CONTAINER_APP:
instclass = virtinst.ContainerInstaller
init = self.get_config_container_app_path()
if not init:
return self.verr(_("An application path is required."))
return self.err.val_err(_("An application path is required."))
elif instmethod == INSTALL_PAGE_CONTAINER_OS:
instclass = virtinst.ContainerInstaller
fs = self.get_config_container_fs_path()
if not fs:
return self.verr(_("An OS directory path is required."))
return self.err.val_err(_("An OS directory path is required."))
# Build the installer and Guest instance
try:
@@ -1534,7 +1536,8 @@ class vmmCreate(vmmGObjectUI):
if not self.guest:
return False
except Exception, e:
return self.verr(_("Error setting installer parameters."), str(e))
return self.err.val_err(
_("Error setting installer parameters."), e)
# Validate media location
try:
@@ -1562,8 +1565,8 @@ class vmmCreate(vmmGObjectUI):
self.guest.add_device(fsdev)
except Exception, e:
return self.verr(_("Error setting install media location."),
str(e))
return self.err.val_err(
_("Error setting install media location."), e)
# OS distro/variant validation
try:
@@ -1572,8 +1575,7 @@ class vmmCreate(vmmGObjectUI):
if variant and variant != OS_GENERIC:
self.guest.os_variant = variant
except ValueError, e:
return self.err.val_err(_("Error setting OS information."),
str(e))
return self.err.val_err(_("Error setting OS information."), e)
# Kind of wonky, run storage validation now, which will assign
# the import path. Import installer skips the storage page.
@@ -1607,14 +1609,14 @@ class vmmCreate(vmmGObjectUI):
try:
self.guest.vcpus = int(cpus)
except Exception, e:
return self.verr(_("Error setting CPUs."), str(e))
return self.err.val_err(_("Error setting CPUs."), e)
# Memory
try:
self.guest.memory = int(mem)
self.guest.maxmemory = int(mem)
except Exception, e:
return self.verr(_("Error setting guest memory."), str(e))
return self.err.val_err(_("Error setting guest memory."), e)
return True
@@ -1677,7 +1679,7 @@ class vmmCreate(vmmGObjectUI):
diskpath = ideal
if not diskpath:
return self.verr(_("A storage path must be specified."))
return self.err.val_err(_("A storage path must be specified."))
disk = virtinst.VirtualDisk(conn=self.conn.vmm,
path=diskpath,
@@ -1685,7 +1687,7 @@ class vmmCreate(vmmGObjectUI):
sparse=sparse)
except Exception, e:
return self.verr(_("Storage parameter error."), str(e))
return self.err.val_err(_("Storage parameter error."), e)
isfatal, errmsg = disk.is_size_conflict()
if not oldguest and not isfatal and errmsg:
@@ -1729,8 +1731,9 @@ class vmmCreate(vmmGObjectUI):
methname = "URL"
if methname:
return self.verr(_("Network device required for %s install.") %
methname)
return self.err.val_err(
_("Network device required for %s install.") %
methname)
nic = uihelpers.validate_network(self.topwin,
self.conn, nettype, devname, macaddr)
@@ -2121,9 +2124,6 @@ class vmmCreate(vmmGObjectUI):
# No help available yet.
pass
def verr(self, msg, extra=None):
return self.err.val_err(msg, extra)
vmmGObjectUI.type_register(vmmCreate)
vmmCreate.signal_new(vmmCreate, "action-show-vm", [str, str])
vmmCreate.signal_new(vmmCreate, "action-show-help", [str])
+2 -2
View File
@@ -997,8 +997,8 @@ class vmmCreateInterface(vmmGObjectUI):
self.interface = iobj
except Exception, e:
return self.err.val_err(_("Error setting interface parameters."),
str(e))
return self.err.val_err(
_("Error setting interface parameters."), e)
return True
+2 -2
View File
@@ -522,7 +522,7 @@ class vmmCreatePool(vmmGObjectUI):
self._pool_class = Storage.StoragePool.get_pool_class(typ)
self._pool = self._pool_class(name=name, conn=conn)
except ValueError, e:
return self.err.val_err(_("Pool Parameter Error"), str(e))
return self.err.val_err(_("Pool Parameter Error"), e)
return True
@@ -547,7 +547,7 @@ class vmmCreatePool(vmmGObjectUI):
tmppool.get_xml_config()
except ValueError, e:
return self.err.val_err(_("Pool Parameter Error"), str(e))
return self.err.val_err(_("Pool Parameter Error"), e)
buildval = self.widget("pool-build").get_active()
buildsen = (self.widget("pool-build").get_property("sensitive") and
+1 -1
View File
@@ -255,7 +255,7 @@ class vmmCreateVolume(vmmGObjectUI):
if fmt:
self.vol.format = fmt
except ValueError, e:
return self.val_err(_("Volume Parameter Error"), str(e))
return self.val_err(_("Volume Parameter Error"), e)
return True
def show_err(self, info, details=None):
+3 -3
View File
@@ -1669,7 +1669,7 @@ class vmmDetails(vmmGObjectUI):
pinstr = self.generate_cpuset()
except Exception, e:
return self.err.val_err(
_("Error generating CPU configuration: %s") % str(e))
_("Error generating CPU configuration"), e)
self.widget("config-vcpupin").set_text("")
self.widget("config-vcpupin").set_text(pinstr)
@@ -1975,13 +1975,13 @@ class vmmDetails(vmmGObjectUI):
vcpu_num = int(row[0])
pinlist = virtinst.Guest.cpuset_str_to_tuple(conn.vmm, new_text)
except Exception, e:
self.err.val_err(_("Error building pin list: %s") % str(e))
self.err.val_err(_("Error building pin list"), e)
return
try:
self.vm.pin_vcpu(vcpu_num, pinlist)
except Exception, e:
self.err.show_err(_("Error pinning vcpus: %s") % str(e))
self.err.show_err(_("Error pinning vcpus"), e)
return
self._refresh_runtime_pinning()
+11 -2
View File
@@ -106,10 +106,19 @@ class vmmErrorDialog(vmmGObject):
sync=not async)
def val_err(self, text1, text2=None, title=_("Input Error"), async=True):
logging.debug("Validation Error: %s" % text1)
logtext = "Validation Error: %s" % text1
if text2:
logtext += " %s" % text2
if isinstance(text1, Exception) or isinstance(text2, Exception):
logging.exception(logtext)
else:
self._logtrace(logtext)
dtype = gtk.MESSAGE_ERROR
buttons = gtk.BUTTONS_OK
self._simple_dialog(dtype, buttons, text1, text2, title, async)
self._simple_dialog(dtype, buttons, str(text1), str(text2),
str(title), async)
return False
def show_info(self, text1, text2=None, title="", async=True):
+1 -1
View File
@@ -654,7 +654,7 @@ def validate_network(parent, conn, nettype, devname, macaddr, model=None):
macaddr=macaddr,
model=model)
except Exception, e:
return err_dial.val_err(_("Error with network parameters."), str(e))
return err_dial.val_err(_("Error with network parameters."), e)
# Make sure there is no mac address collision
isfatal, errmsg = net.is_conflict_net(conn.vmm)