virtManager: add coverage annotations and remove dead code
Signed-off-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
parent
27d1b4d4bd
commit
886339e8dd
|
@ -16,7 +16,7 @@ class vmmAbout(vmmGObjectUI):
|
|||
if not cls._instance:
|
||||
cls._instance = vmmAbout()
|
||||
cls._instance.show(parentobj.topwin)
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
parentobj.err.show_err(
|
||||
_("Error launching 'About' dialog: %s") % str(e))
|
||||
|
||||
|
|
|
@ -246,11 +246,6 @@ class vmmAsyncJob(vmmGObjectUI):
|
|||
def has_error(self):
|
||||
return bool(self._error_info)
|
||||
|
||||
def set_extra_data(self, data):
|
||||
self._data = data
|
||||
def get_extra_data(self):
|
||||
return self._data
|
||||
|
||||
def can_cancel(self):
|
||||
return bool(self.cancel_cb)
|
||||
|
||||
|
|
|
@ -231,7 +231,7 @@ class vmmConfig(object):
|
|||
Gtk.STYLE_PROVIDER_PRIORITY_USER)
|
||||
|
||||
found, color = context.lookup_color("insensitive_fg_color")
|
||||
if not found:
|
||||
if not found: # pragma: no cover
|
||||
log.debug("Didn't find insensitive_fg_color in theme")
|
||||
return
|
||||
self.color_insensitive = color.to_string()
|
||||
|
@ -252,7 +252,7 @@ class vmmConfig(object):
|
|||
|
||||
def inspection_supported(self):
|
||||
if not vmmInspection.libguestfs_installed():
|
||||
return False
|
||||
return False # pragma: no cover
|
||||
return self.get_libguestfs_inspect_vms()
|
||||
|
||||
def remove_notifier(self, h):
|
||||
|
|
|
@ -160,9 +160,6 @@ class vmmConnection(vmmGObject):
|
|||
|
||||
def __init__(self, uri):
|
||||
self._uri = uri
|
||||
if self._uri is None or self._uri.lower() == "xen":
|
||||
self._uri = "xen:///"
|
||||
|
||||
vmmGObject.__init__(self)
|
||||
|
||||
self._state = self._STATE_DISCONNECTED
|
||||
|
@ -277,7 +274,7 @@ class vmmConnection(vmmGObject):
|
|||
for vol in pool.get_volumes():
|
||||
try:
|
||||
ret.append(vol.get_xmlobj(refresh_if_nec=False))
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
log.debug("Fetching volume XML failed: %s", e)
|
||||
return ret
|
||||
self._backend.cb_fetch_all_vols = fetch_all_vols
|
||||
|
@ -450,13 +447,13 @@ class vmmConnection(vmmGObject):
|
|||
|
||||
if self.support.domain_xml_inactive(vm):
|
||||
inact = libvirt.VIR_DOMAIN_XML_INACTIVE
|
||||
else:
|
||||
else: # pragma: no cover
|
||||
log.debug("Domain XML inactive flag not supported.")
|
||||
|
||||
if self.support.domain_xml_secure(vm):
|
||||
inact |= libvirt.VIR_DOMAIN_XML_SECURE
|
||||
act = libvirt.VIR_DOMAIN_XML_SECURE
|
||||
else:
|
||||
else: # pragma: no cover
|
||||
log.debug("Domain XML secure flag not supported.")
|
||||
|
||||
return inact, act
|
||||
|
@ -477,7 +474,7 @@ class vmmConnection(vmmGObject):
|
|||
try:
|
||||
if vol.get_target_path() == path:
|
||||
return vol
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
# Errors can happen if the volume disappeared, bug 1092739
|
||||
log.debug("Error looking up volume from path=%s: %s",
|
||||
path, e)
|
||||
|
@ -507,10 +504,7 @@ class vmmConnection(vmmGObject):
|
|||
return _("Disconnected")
|
||||
elif self.is_connecting():
|
||||
return _("Connecting")
|
||||
elif self.is_active():
|
||||
return _("Active")
|
||||
else:
|
||||
return _("Unknown")
|
||||
return _("Active")
|
||||
|
||||
|
||||
#################################
|
||||
|
@ -547,7 +541,7 @@ class vmmConnection(vmmGObject):
|
|||
for dev in self.list_nodedevs():
|
||||
try:
|
||||
xmlobj = dev.get_xmlobj()
|
||||
except libvirt.libvirtError as e:
|
||||
except libvirt.libvirtError as e: # pragma: no cover
|
||||
# Libvirt nodedev XML fetching can be busted
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1225771
|
||||
if e.get_error_code() != libvirt.VIR_ERR_NO_NODE_DEVICE:
|
||||
|
@ -742,7 +736,7 @@ class vmmConnection(vmmGObject):
|
|||
|
||||
def _add_conn_events(self):
|
||||
if not self.support.conn_working_xen_events():
|
||||
return
|
||||
return # pragma: no cover
|
||||
|
||||
def _check_events_disabled():
|
||||
if self.config.CLITestOptions.no_events:
|
||||
|
@ -771,7 +765,7 @@ class vmmConnection(vmmGObject):
|
|||
self._domain_cb_ids.append(
|
||||
self.get_backend().domainEventRegisterAny(
|
||||
None, eventid, cb, eventname))
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
log.debug("Error registering %s event: %s",
|
||||
eventname, e)
|
||||
|
||||
|
@ -856,7 +850,7 @@ class vmmConnection(vmmGObject):
|
|||
self._backend.storagePoolEventDeregisterAny(eid)
|
||||
for eid in self._node_device_cb_ids:
|
||||
self._backend.nodeDeviceEventDeregisterAny(eid)
|
||||
except Exception:
|
||||
except Exception: # pragma: no cover
|
||||
log.debug("Failed to deregister events in conn cleanup",
|
||||
exc_info=True)
|
||||
finally:
|
||||
|
@ -875,14 +869,15 @@ class vmmConnection(vmmGObject):
|
|||
try:
|
||||
self._remove_object_signal(obj)
|
||||
obj.cleanup()
|
||||
except Exception as e:
|
||||
except Exception as e: # pramga: no cover
|
||||
log.debug("Failed to cleanup %s: %s", obj, e)
|
||||
self._objects.cleanup()
|
||||
self._objects = _ObjectList()
|
||||
|
||||
closeret = self._backend.close()
|
||||
if closeret == 1 and self.config.CLITestOptions.leak_debug:
|
||||
log.debug("LEAK: conn close() returned 1, "
|
||||
log.debug( # pragma: no cover
|
||||
"LEAK: conn close() returned 1, "
|
||||
"meaning refs may have leaked.")
|
||||
|
||||
self._change_state(self._STATE_DISCONNECTED)
|
||||
|
@ -900,7 +895,7 @@ class vmmConnection(vmmGObject):
|
|||
|
||||
def open(self):
|
||||
if not self.is_disconnected():
|
||||
return
|
||||
return # pragma: no cover
|
||||
|
||||
self._change_state(self._STATE_CONNECTING)
|
||||
|
||||
|
@ -949,15 +944,15 @@ class vmmConnection(vmmGObject):
|
|||
log.debug("conn version=%s", self._backend.conn_version())
|
||||
log.debug("%s capabilities:\n%s", self.get_uri(), self.caps.get_xml())
|
||||
|
||||
if not self.support.conn_domain():
|
||||
if not self.support.conn_domain(): # pragma: no cover
|
||||
raise RuntimeError("Connection does not support required "
|
||||
"domain listing APIs")
|
||||
|
||||
if not self.support.conn_storage():
|
||||
if not self.support.conn_storage(): # pragma: no cover
|
||||
log.debug("Connection doesn't seem to support storage APIs.")
|
||||
if not self.support.conn_network():
|
||||
if not self.support.conn_network(): # pragma: no cover
|
||||
log.debug("Connection doesn't seem to support network APIs.")
|
||||
if not self.support.conn_nodedev():
|
||||
if not self.support.conn_nodedev(): # pragma: no cover
|
||||
log.debug("Connection doesn't seem to support nodedev APIs.")
|
||||
|
||||
self._add_conn_events()
|
||||
|
@ -989,7 +984,7 @@ class vmmConnection(vmmGObject):
|
|||
# pool already exists
|
||||
try:
|
||||
virtinst.StoragePool.build_default_pool(self.get_backend())
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
log.debug("Building default pool failed: %s", str(e))
|
||||
|
||||
def _open_thread(self):
|
||||
|
@ -1031,7 +1026,7 @@ class vmmConnection(vmmGObject):
|
|||
app with long tick operations.
|
||||
"""
|
||||
if not self._backend.is_open():
|
||||
return
|
||||
return # pragma: no cover
|
||||
|
||||
for obj in gone_objects:
|
||||
class_name = obj.class_name()
|
||||
|
@ -1051,7 +1046,7 @@ class vmmConnection(vmmGObject):
|
|||
|
||||
def _new_object_cb(self, obj, initialize_failed):
|
||||
if not self._backend.is_open():
|
||||
return
|
||||
return # pragma: no cover
|
||||
|
||||
try:
|
||||
class_name = obj.class_name()
|
||||
|
@ -1182,9 +1177,9 @@ class vmmConnection(vmmGObject):
|
|||
are in use.
|
||||
"""
|
||||
if self._closing:
|
||||
return
|
||||
return # pragma: no cover
|
||||
if self.is_disconnected():
|
||||
return
|
||||
return # pragma: no cover
|
||||
if self.is_connecting() and not force:
|
||||
return
|
||||
|
||||
|
@ -1244,7 +1239,7 @@ class vmmConnection(vmmGObject):
|
|||
|
||||
def _recalculate_stats(self, vms):
|
||||
if not self._backend.is_open():
|
||||
return
|
||||
return # pragma: no cover
|
||||
|
||||
now = time.time()
|
||||
expected = self.config.get_stats_history_length()
|
||||
|
|
|
@ -40,7 +40,7 @@ class vmmConnectionManager(vmmGObject):
|
|||
conn.close()
|
||||
self.emit("conn-removed", uri)
|
||||
conn.cleanup()
|
||||
except Exception:
|
||||
except Exception: # pragma: no cover
|
||||
log.exception("Error cleaning up conn=%s", uri)
|
||||
self._conns = {}
|
||||
|
||||
|
@ -50,7 +50,7 @@ class vmmConnectionManager(vmmGObject):
|
|||
|
||||
def add_conn(self, uri):
|
||||
if uri in self._conns:
|
||||
return self._conns[uri]
|
||||
return self._conns[uri] # pragma: no cover
|
||||
conn = vmmConnection(uri)
|
||||
self._conns[uri] = conn
|
||||
self.config.add_conn_uri(uri)
|
||||
|
@ -59,7 +59,7 @@ class vmmConnectionManager(vmmGObject):
|
|||
|
||||
def remove_conn(self, uri):
|
||||
if uri not in self._conns:
|
||||
return
|
||||
return # pragma: no cover
|
||||
conn = self._conns.pop(uri)
|
||||
self.config.remove_conn_uri(uri)
|
||||
self.emit("conn-removed", uri)
|
||||
|
|
|
@ -32,14 +32,10 @@ class vmmCreateConn(vmmGObjectUI):
|
|||
if not cls._instance:
|
||||
cls._instance = vmmCreateConn()
|
||||
return cls._instance
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
parentobj.err.show_err(
|
||||
_("Error launching connect dialog: %s") % str(e))
|
||||
|
||||
@classmethod
|
||||
def is_initialized(cls):
|
||||
return bool(cls._instance)
|
||||
|
||||
def __init__(self):
|
||||
vmmGObjectUI.__init__(self, "createconn.ui", "vmm-open-connection")
|
||||
self._cleanup_on_app_close()
|
||||
|
|
|
@ -350,8 +350,7 @@ class vmmCreatePool(vmmGObjectUI):
|
|||
return
|
||||
|
||||
try:
|
||||
if self._validate(pool) is False:
|
||||
return
|
||||
self._validate(pool)
|
||||
build = self._get_build_default(pool.type)
|
||||
except Exception as e: # pragma: no cover
|
||||
return self.err.show_err(_("Error validating pool: %s") % e)
|
||||
|
|
|
@ -152,8 +152,6 @@ class vmmFSDetails(vmmGObjectUI):
|
|||
check_visible=True)
|
||||
|
||||
def get_config_fs_readonly(self):
|
||||
if not self.widget("fs-readonly").is_visible():
|
||||
return None
|
||||
return self.widget("fs-readonly").get_active()
|
||||
|
||||
def get_config_fs_driver(self):
|
||||
|
@ -293,7 +291,7 @@ class vmmFSDetails(vmmGObjectUI):
|
|||
self._dev.format = fsformat
|
||||
if wrpolicy:
|
||||
self._dev.wrpolicy = wrpolicy
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
return self.err.val_err(_("Filesystem parameter error"), e)
|
||||
|
||||
def _browse_file(self, textent, isdir=False):
|
||||
|
|
|
@ -97,11 +97,9 @@ class vmmMediaCombo(vmmGObjectUI):
|
|||
if nodedev.xmlobj.drive_type != media_type:
|
||||
continue
|
||||
|
||||
media_label = nodedev.xmlobj.media_label
|
||||
media_label = nodedev.xmlobj.media_label or _("Media Unknown")
|
||||
if not nodedev.xmlobj.media_available:
|
||||
media_label = _("No media detected")
|
||||
elif not nodedev.xmlobj.media_label:
|
||||
media_label = _("Media Unknown")
|
||||
label = "%s (%s)" % (media_label, nodedev.xmlobj.block)
|
||||
|
||||
row = self._make_row(nodedev.xmlobj.block, label,
|
||||
|
|
|
@ -169,7 +169,7 @@ class vmmHostNets(vmmGObjectUI):
|
|||
|
||||
try:
|
||||
self._populate_net_state(net)
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
log.exception(e)
|
||||
self._set_error_page(_("Error selecting network: %s") % e)
|
||||
self._disable_net_apply()
|
||||
|
@ -275,7 +275,7 @@ class vmmHostNets(vmmGObjectUI):
|
|||
def _delete_network_cb(self, src):
|
||||
net = self._current_network()
|
||||
if net is None:
|
||||
return
|
||||
return # pragma: no cover
|
||||
|
||||
result = self.err.yes_no(_("Are you sure you want to permanently "
|
||||
"delete the network %s?") % net.get_name())
|
||||
|
@ -289,7 +289,7 @@ class vmmHostNets(vmmGObjectUI):
|
|||
def _start_network_cb(self, src):
|
||||
net = self._current_network()
|
||||
if net is None:
|
||||
return
|
||||
return # pragma: no cover
|
||||
|
||||
log.debug("Starting network '%s'", net.get_name())
|
||||
vmmAsyncJob.simple_async_noshow(net.start, [], self,
|
||||
|
@ -298,7 +298,7 @@ class vmmHostNets(vmmGObjectUI):
|
|||
def _stop_network_cb(self, src):
|
||||
net = self._current_network()
|
||||
if net is None:
|
||||
return
|
||||
return # pragma: no cover
|
||||
|
||||
log.debug("Stopping network '%s'", net.get_name())
|
||||
vmmAsyncJob.simple_async_noshow(net.stop, [], self,
|
||||
|
@ -310,7 +310,7 @@ class vmmHostNets(vmmGObjectUI):
|
|||
if self._addnet is None:
|
||||
self._addnet = vmmCreateNetwork(self.conn)
|
||||
self._addnet.show(self.topwin)
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
self.err.show_err(_("Error launching network wizard: %s") % str(e))
|
||||
|
||||
|
||||
|
@ -321,7 +321,7 @@ class vmmHostNets(vmmGObjectUI):
|
|||
def _net_apply(self):
|
||||
net = self._current_network()
|
||||
if net is None:
|
||||
return
|
||||
return # pragma: no cover
|
||||
|
||||
log.debug("Applying changes for network '%s'", net.get_name())
|
||||
try:
|
||||
|
|
|
@ -47,9 +47,8 @@ ICON_SHUTOFF = "state_shutoff"
|
|||
def _get_pool_size_percent(pool):
|
||||
cap = pool.get_capacity()
|
||||
alloc = pool.get_allocation()
|
||||
if not cap or alloc is None:
|
||||
per = 0
|
||||
else:
|
||||
per = 0
|
||||
if cap and alloc is not None:
|
||||
per = int(((float(alloc) / float(cap)) * 100))
|
||||
return "<span size='small'>%s%%</span>" % int(per)
|
||||
|
||||
|
@ -118,7 +117,7 @@ class vmmHostStorage(vmmGObjectUI):
|
|||
def _cleanup(self):
|
||||
try:
|
||||
self.conn.disconnect_by_obj(self)
|
||||
except Exception:
|
||||
except Exception: # pragma: no cover
|
||||
pass
|
||||
self.conn = None
|
||||
|
||||
|
@ -271,7 +270,7 @@ class vmmHostStorage(vmmGObjectUI):
|
|||
self.conn.support.conn_storage())
|
||||
|
||||
if conn_active and not self.conn.support.conn_storage():
|
||||
self._set_error_page(
|
||||
self._set_error_page( # pragma: no cover
|
||||
_("Libvirt connection does not support storage management."))
|
||||
|
||||
if conn_active:
|
||||
|
@ -288,7 +287,7 @@ class vmmHostStorage(vmmGObjectUI):
|
|||
def _current_vol(self):
|
||||
pool = self._current_pool()
|
||||
if not pool:
|
||||
return None
|
||||
return None # pragma: no cover
|
||||
|
||||
connkey = uiutil.get_list_selection(self.widget("vol-list"))
|
||||
return connkey and pool.get_volume(connkey)
|
||||
|
@ -369,7 +368,7 @@ class vmmHostStorage(vmmGObjectUI):
|
|||
|
||||
try:
|
||||
self._populate_pool_state(pool)
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
log.exception(e)
|
||||
self._set_error_page(_("Error selecting pool: %s") % e)
|
||||
self._disable_pool_apply()
|
||||
|
@ -427,7 +426,7 @@ class vmmHostStorage(vmmGObjectUI):
|
|||
cap = str(vol.get_capacity())
|
||||
sizestr = vol.get_pretty_capacity()
|
||||
fmt = vol.get_format() or ""
|
||||
except Exception:
|
||||
except Exception: # pragma: no cover
|
||||
log.debug("Error getting volume info for '%s', "
|
||||
"hiding it", key, exc_info=True)
|
||||
continue
|
||||
|
@ -440,7 +439,7 @@ class vmmHostStorage(vmmGObjectUI):
|
|||
namestr = ", ".join(names)
|
||||
if not namestr:
|
||||
namestr = None
|
||||
except Exception:
|
||||
except Exception: # pragma: no cover
|
||||
log.exception("Failed to determine if storage volume in "
|
||||
"use.")
|
||||
|
||||
|
@ -470,7 +469,7 @@ class vmmHostStorage(vmmGObjectUI):
|
|||
def _pool_stop_cb(self, src):
|
||||
pool = self._current_pool()
|
||||
if pool is None:
|
||||
return
|
||||
return # pragma: no cover
|
||||
|
||||
log.debug("Stopping pool '%s'", pool.get_name())
|
||||
vmmAsyncJob.simple_async_noshow(pool.stop, [], self,
|
||||
|
@ -479,7 +478,7 @@ class vmmHostStorage(vmmGObjectUI):
|
|||
def _pool_start_cb(self, src):
|
||||
pool = self._current_pool()
|
||||
if pool is None:
|
||||
return
|
||||
return # pragma: no cover
|
||||
|
||||
log.debug("Starting pool '%s'", pool.get_name())
|
||||
vmmAsyncJob.simple_async_noshow(pool.start, [], self,
|
||||
|
@ -492,13 +491,13 @@ class vmmHostStorage(vmmGObjectUI):
|
|||
if self._addpool is None:
|
||||
self._addpool = vmmCreatePool(self.conn)
|
||||
self._addpool.show(self.topwin)
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
self.err.show_err(_("Error launching pool wizard: %s") % str(e))
|
||||
|
||||
def _pool_delete_cb(self, src):
|
||||
pool = self._current_pool()
|
||||
if pool is None:
|
||||
return
|
||||
return # pragma: no cover
|
||||
|
||||
result = self.err.yes_no(_("Are you sure you want to permanently "
|
||||
"delete the pool %s?") % pool.get_name())
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
from gi.repository import GObject
|
||||
from gi.repository import Gtk
|
||||
|
||||
from virtinst import xmlutil
|
||||
|
||||
|
||||
#####################
|
||||
# UI getter helpers #
|
||||
|
@ -142,8 +144,7 @@ def set_grid_row_visible(child, visible):
|
|||
"""
|
||||
parent = child.get_parent()
|
||||
if not isinstance(parent, Gtk.Grid):
|
||||
raise RuntimeError("Programming error, parent must be grid, "
|
||||
"not %s" % type(parent))
|
||||
raise xmlutil.DevError("parent must be grid, not %s" % type(parent))
|
||||
|
||||
row = child_get_property(parent, child, "top-attach")
|
||||
for c in parent.get_children():
|
||||
|
|
|
@ -80,7 +80,7 @@ class vmmManager(vmmGObjectUI):
|
|||
if not cls._instance:
|
||||
cls._instance = vmmManager()
|
||||
return cls._instance
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
if not parentobj:
|
||||
raise
|
||||
parentobj.err.show_err(
|
||||
|
@ -279,13 +279,11 @@ class vmmManager(vmmGObjectUI):
|
|||
c.set_homogeneous(False)
|
||||
|
||||
def init_context_menus(self):
|
||||
def add_to_menu(idx, text, icon, cb):
|
||||
def add_to_menu(idx, text, cb):
|
||||
if text[0:3] == 'gtk':
|
||||
item = Gtk.ImageMenuItem.new_from_stock(text, None)
|
||||
else:
|
||||
item = Gtk.ImageMenuItem.new_with_mnemonic(text)
|
||||
if icon:
|
||||
item.set_image(icon)
|
||||
if cb:
|
||||
item.connect("activate", cb)
|
||||
item.get_accessible().set_name("conn-%s" % idx)
|
||||
|
@ -293,14 +291,14 @@ class vmmManager(vmmGObjectUI):
|
|||
self.connmenu_items[idx] = item
|
||||
|
||||
# Build connection context menu
|
||||
add_to_menu("create", Gtk.STOCK_NEW, None, self.new_vm)
|
||||
add_to_menu("connect", Gtk.STOCK_CONNECT, None, self.open_conn)
|
||||
add_to_menu("disconnect", Gtk.STOCK_DISCONNECT, None,
|
||||
add_to_menu("create", Gtk.STOCK_NEW, self.new_vm)
|
||||
add_to_menu("connect", Gtk.STOCK_CONNECT, self.open_conn)
|
||||
add_to_menu("disconnect", Gtk.STOCK_DISCONNECT,
|
||||
self.close_conn)
|
||||
self.connmenu.add(Gtk.SeparatorMenuItem())
|
||||
add_to_menu("delete", Gtk.STOCK_DELETE, None, self.do_delete)
|
||||
add_to_menu("delete", Gtk.STOCK_DELETE, self.do_delete)
|
||||
self.connmenu.add(Gtk.SeparatorMenuItem())
|
||||
add_to_menu("details", _("D_etails"), None, self.show_host)
|
||||
add_to_menu("details", _("D_etails"), self.show_host)
|
||||
self.connmenu.show_all()
|
||||
|
||||
def init_vmlist(self):
|
||||
|
@ -553,7 +551,7 @@ class vmmManager(vmmGObjectUI):
|
|||
def vm_added(self, conn, connkey):
|
||||
vm = conn.get_vm(connkey)
|
||||
if not vm:
|
||||
return
|
||||
return # pragma: no cover
|
||||
|
||||
vm_row = self._build_row(None, vm)
|
||||
conn_row = self.get_row(conn)
|
||||
|
@ -643,7 +641,7 @@ class vmmManager(vmmGObjectUI):
|
|||
# Make sure error page isn't showing
|
||||
self.widget("vm-notebook").set_current_page(0)
|
||||
if self.get_row(conn):
|
||||
return
|
||||
return # pragma: no cover
|
||||
|
||||
conn_row = self._build_row(conn, None)
|
||||
self.model.append(None, conn_row)
|
||||
|
|
|
@ -129,7 +129,7 @@ class vmmLibvirtObject(vmmGObject):
|
|||
try:
|
||||
self._key = newname
|
||||
self.conn.rename_object(self, origxml, newxml, oldconnkey)
|
||||
except Exception:
|
||||
except Exception: # pragma: no cover
|
||||
self._key = oldname
|
||||
raise
|
||||
finally:
|
||||
|
@ -190,7 +190,7 @@ class vmmLibvirtObject(vmmGObject):
|
|||
initialize_failed = False
|
||||
try:
|
||||
self._init_libvirt_state()
|
||||
except Exception:
|
||||
except Exception: # pragma: no cover
|
||||
log.debug("Error initializing libvirt state for %s", self,
|
||||
exc_info=True)
|
||||
initialize_failed = True
|
||||
|
|
|
@ -106,8 +106,6 @@ class vmmNetwork(vmmLibvirtObject):
|
|||
self._refresh_dhcp_leases()
|
||||
return self._leases
|
||||
|
||||
def get_uuid(self):
|
||||
return self.get_xmlobj().uuid
|
||||
def get_bridge_device(self):
|
||||
return self.get_xmlobj().bridge
|
||||
def get_name_domain(self):
|
||||
|
|
|
@ -54,7 +54,7 @@ class vmmStorageVolume(vmmLibvirtObject):
|
|||
def _XMLDesc(self, flags):
|
||||
try:
|
||||
return self._backend.XMLDesc(flags)
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
log.debug("XMLDesc for vol=%s failed: %s",
|
||||
self._backend.key(), e)
|
||||
raise
|
||||
|
@ -97,13 +97,9 @@ class vmmStorageVolume(vmmLibvirtObject):
|
|||
return self.get_xmlobj().format
|
||||
def get_capacity(self):
|
||||
return self.get_xmlobj().capacity
|
||||
def get_allocation(self):
|
||||
return self.get_xmlobj().allocation
|
||||
|
||||
def get_pretty_capacity(self):
|
||||
return _pretty_bytes(self.get_capacity())
|
||||
def get_pretty_allocation(self):
|
||||
return _pretty_bytes(self.get_allocation())
|
||||
|
||||
def get_pretty_name(self, pooltype):
|
||||
name = self.get_name()
|
||||
|
@ -111,9 +107,10 @@ class vmmStorageVolume(vmmLibvirtObject):
|
|||
return name
|
||||
|
||||
key = self.get_key()
|
||||
if not key:
|
||||
return name
|
||||
return "%s (%s)" % (name, key)
|
||||
ret = name
|
||||
if key:
|
||||
ret += " (%s)" % key
|
||||
return ret
|
||||
|
||||
|
||||
class vmmStoragePool(vmmLibvirtObject):
|
||||
|
@ -261,7 +258,6 @@ class vmmStoragePool(vmmLibvirtObject):
|
|||
for vol in self.get_volumes():
|
||||
if vol.get_connkey() == key:
|
||||
return vol
|
||||
return None
|
||||
|
||||
def _update_volumes(self, force):
|
||||
if not self.is_active():
|
||||
|
@ -287,14 +283,8 @@ class vmmStoragePool(vmmLibvirtObject):
|
|||
def get_autostart(self):
|
||||
return self._backend.autostart()
|
||||
|
||||
def can_change_alloc(self):
|
||||
typ = self.get_type()
|
||||
return (typ in [StoragePool.TYPE_LOGICAL, StoragePool.TYPE_ZFS])
|
||||
|
||||
def get_type(self):
|
||||
return self.get_xmlobj().type
|
||||
def get_uuid(self):
|
||||
return self.get_xmlobj().uuid
|
||||
def get_target_path(self):
|
||||
return self.get_xmlobj().target_path or ""
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ class vmmOSList(vmmGObjectUI):
|
|||
if not self.is_visible():
|
||||
return
|
||||
if not len(os_list.get_model()):
|
||||
return
|
||||
return # pragma: no cover
|
||||
sel.select_iter(os_list.get_model()[0].iter)
|
||||
|
||||
def _refilter(self):
|
||||
|
@ -126,7 +126,7 @@ class vmmOSList(vmmGObjectUI):
|
|||
def _entry_activate_cb(self, src):
|
||||
os_list = self.widget("os-list")
|
||||
if not os_list.is_visible():
|
||||
return
|
||||
return # pragma: no cover
|
||||
|
||||
sel = os_list.get_selection()
|
||||
model, rows = sel.get_selected_rows()
|
||||
|
|
|
@ -23,7 +23,7 @@ class vmmPreferences(vmmGObjectUI):
|
|||
if not cls._instance:
|
||||
cls._instance = vmmPreferences()
|
||||
cls._instance.show(parentobj.topwin)
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
parentobj.err.show_err(
|
||||
_("Error launching preferences: %s") % str(e))
|
||||
|
||||
|
@ -201,12 +201,10 @@ class vmmPreferences(vmmGObjectUI):
|
|||
|
||||
def refresh_view_system_tray(self):
|
||||
errmsg = vmmSystray.systray_disabled_message()
|
||||
val = self.config.get_view_system_tray()
|
||||
if errmsg:
|
||||
val = False
|
||||
val = bool(self.config.get_view_system_tray() and not errmsg)
|
||||
self.widget("prefs-system-tray").set_sensitive(not bool(errmsg))
|
||||
self.widget("prefs-system-tray").set_tooltip_text(errmsg)
|
||||
self.widget("prefs-system-tray").set_active(bool(val))
|
||||
self.widget("prefs-system-tray").set_active(val)
|
||||
|
||||
def refresh_xmleditor(self):
|
||||
val = self.config.get_xmleditor_enabled()
|
||||
|
|
|
@ -10,7 +10,7 @@ from virtinst import log
|
|||
try:
|
||||
gi.require_version("GtkSource", "4")
|
||||
log.debug("Using GtkSource 4")
|
||||
except ValueError:
|
||||
except ValueError: # pragma: no cover
|
||||
gi.require_version("GtkSource", "3.0")
|
||||
log.debug("Using GtkSource 3.0")
|
||||
from gi.repository import GtkSource
|
||||
|
|
Loading…
Reference in New Issue