connection: Remove is_*_capable wrappers

Call the conn.support check directly. Move the check logging to
the initial startup path

Signed-off-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
Cole Robinson 2020-01-24 12:09:23 -05:00
parent 670e2fe11a
commit 1aff5a611e
7 changed files with 28 additions and 62 deletions

View File

@ -221,9 +221,7 @@ class vmmAddHardware(vmmGObjectUI):
# Available HW options
is_local = not self.conn.is_remote()
is_storage_capable = self.conn.is_storage_capable()
have_storage = (is_local or is_storage_capable)
have_storage = (is_local or self.conn.support.conn_storage())
storage_tooltip = None
if not have_storage:
storage_tooltip = _("Connection does not support storage"
@ -263,11 +261,11 @@ class vmmAddHardware(vmmGObjectUI):
_("Not supported for this guest type."),
"channel")
add_hw_option(_("USB Host Device"), "system-run", PAGE_HOSTDEV,
self.conn.is_nodedev_capable(),
self.conn.support.conn_nodedev(),
_("Connection does not support host device enumeration"),
"usb")
nodedev_enabled = self.conn.is_nodedev_capable()
nodedev_enabled = self.conn.support.conn_nodedev()
nodedev_errstr = _("Connection does not support "
"host device enumeration")
if self.vm.is_container():

View File

@ -178,11 +178,6 @@ class vmmConnection(vmmGObject):
self._init_object_count = None
self._init_object_event = None
self._network_capable = None
self._storage_capable = None
self._interface_capable = None
self._nodedev_capable = None
self.using_domain_events = False
self._domain_cb_ids = []
self.using_network_events = False
@ -429,38 +424,6 @@ class vmmConnection(vmmGObject):
def support(self):
return self._backend.support
def is_storage_capable(self):
if self._storage_capable is None:
self._storage_capable = self.support.conn_storage()
if self._storage_capable is False:
log.debug("Connection doesn't seem to support storage "
"APIs. Skipping all storage polling.")
return self._storage_capable
def is_network_capable(self):
if self._network_capable is None:
self._network_capable = self.support.conn_network()
if self._network_capable is False:
log.debug("Connection doesn't seem to support network "
"APIs. Skipping all network polling.")
return self._network_capable
def is_interface_capable(self):
if self._interface_capable is None:
self._interface_capable = self.support.conn_interface()
if self._interface_capable is False:
log.debug("Connection doesn't seem to support interface "
"APIs. Skipping all interface polling.")
return self._interface_capable
def is_nodedev_capable(self):
if self._nodedev_capable is None:
self._nodedev_capable = self.support.conn_nodedev()
return self._nodedev_capable
def _get_flags_helper(self, obj, key, check_func):
ignore = obj
flags_dict = self._xml_flags.get(key)
@ -982,13 +945,19 @@ class vmmConnection(vmmGObject):
return False, ConnectError
def _populate_initial_state(self):
log.debug("libvirt version=%s",
self._backend.local_libvirt_version())
log.debug("daemon version=%s",
self._backend.daemon_version())
log.debug("libvirt version=%s", self._backend.local_libvirt_version())
log.debug("daemon version=%s", self._backend.daemon_version())
log.debug("conn version=%s", self._backend.conn_version())
log.debug("%s capabilities:\n%s",
self.get_uri(), self.caps.get_xml())
log.debug("%s capabilities:\n%s", self.get_uri(), self.caps.get_xml())
if not self.support.conn_storage():
log.debug("Connection doesn't seem to support storage APIs.")
if not self.support.conn_network():
log.debug("Connection doesn't seem to support network APIs.")
if not self.support.conn_interface():
log.debug("Connection doesn't seem to support interface APIs.")
if not self.support.conn_nodedev():
log.debug("Connection doesn't seem to support nodedev APIs.")
self._add_conn_events()
@ -998,8 +967,7 @@ class vmmConnection(vmmGObject):
if (not isinstance(e, AttributeError) and
not self.support.is_error_nosupport(e)):
raise
log.debug("Connection doesn't support KeepAlive, "
"skipping")
log.debug("Connection doesn't support KeepAlive, skipping")
# The initial tick will set up a threading event that will only
# trigger after all the polled libvirt objects are fully initialized.
@ -1130,28 +1098,28 @@ class vmmConnection(vmmGObject):
def _update_nets(self, dopoll):
keymap = dict((o.get_connkey(), o) for o in self.list_nets())
if not dopoll or not self.is_network_capable():
if not dopoll or not self.support.conn_network():
return [], [], list(keymap.values())
return pollhelpers.fetch_nets(self._backend, keymap,
(lambda obj, key: vmmNetwork(self, obj, key)))
def _update_pools(self, dopoll):
keymap = dict((o.get_connkey(), o) for o in self.list_pools())
if not dopoll or not self.is_storage_capable():
if not dopoll or not self.support.conn_storage():
return [], [], list(keymap.values())
return pollhelpers.fetch_pools(self._backend, keymap,
(lambda obj, key: vmmStoragePool(self, obj, key)))
def _update_interfaces(self, dopoll):
keymap = dict((o.get_connkey(), o) for o in self.list_interfaces())
if not dopoll or not self.is_interface_capable():
if not dopoll or not self.support.conn_interface():
return [], [], list(keymap.values())
return pollhelpers.fetch_interfaces(self._backend, keymap,
(lambda obj, key: vmmInterface(self, obj, key)))
def _update_nodedevs(self, dopoll):
keymap = dict((o.get_connkey(), o) for o in self.list_nodedevs())
if not dopoll or not self.is_nodedev_capable():
if not dopoll or not self.support.conn_nodedev():
return [], [], list(keymap.values())
return pollhelpers.fetch_nodedevs(self._backend, keymap,
(lambda obj, key: vmmNodeDevice(self, obj, key)))

View File

@ -414,7 +414,7 @@ class vmmCreateVM(vmmGObjectUI):
# Helper state
is_local = not self.conn.is_remote()
is_storage_capable = self.conn.is_storage_capable()
is_storage_capable = self.conn.support.conn_storage()
can_storage = (is_local or is_storage_capable)
is_pv = guest.os.is_xenpv()
is_container = self.conn.is_container()

View File

@ -132,7 +132,7 @@ class vmmAddStorage(vmmGObjectUI):
storage_tooltip = None
can_storage = (not self.conn.is_remote() or
self.conn.is_storage_capable())
self.conn.support.conn_storage())
use_storage = self.widget("storage-select")
storage_area = self.widget("storage-box")

View File

@ -388,8 +388,8 @@ class vmmNetworkList(vmmGObjectUI):
self._repopulate_network_list()
net_err = None
if (not self.conn.is_nodedev_capable() or
not self.conn.is_interface_capable()):
if (not self.conn.support.conn_nodedev() or
not self.conn.support.conn_interface()):
net_err = _("Libvirt version does not support "
"physical interface listing.")

View File

@ -133,9 +133,9 @@ class vmmHostNets(vmmGObjectUI):
def _refresh_conn_state(self):
conn_active = self.conn.is_active()
self.widget("net-add").set_sensitive(conn_active and
self.conn.is_network_capable())
self.conn.support.conn_network())
if conn_active and not self.conn.is_network_capable():
if conn_active and not self.conn.support.conn_network():
self._set_error_page(
_("Libvirt connection does not support virtual network "
"management."))

View File

@ -267,9 +267,9 @@ class vmmHostStorage(vmmGObjectUI):
def _refresh_conn_state(self):
conn_active = self.conn.is_active()
self.widget("pool-add").set_sensitive(conn_active and
self.conn.is_storage_capable())
self.conn.support.conn_storage())
if conn_active and not self.conn.is_storage_capable():
if conn_active and not self.conn.support.conn_storage():
self._set_error_page(
_("Libvirt connection does not support storage management."))