diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py index 881f0e02a..70db8f8c5 100644 --- a/virtManager/addhardware.py +++ b/virtManager/addhardware.py @@ -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(): diff --git a/virtManager/connection.py b/virtManager/connection.py index e526d4958..b6da53d94 100644 --- a/virtManager/connection.py +++ b/virtManager/connection.py @@ -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))) diff --git a/virtManager/createvm.py b/virtManager/createvm.py index 79d944237..92a09d621 100644 --- a/virtManager/createvm.py +++ b/virtManager/createvm.py @@ -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() diff --git a/virtManager/device/addstorage.py b/virtManager/device/addstorage.py index 38cf74d01..9fc8ffc3b 100644 --- a/virtManager/device/addstorage.py +++ b/virtManager/device/addstorage.py @@ -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") diff --git a/virtManager/device/netlist.py b/virtManager/device/netlist.py index c5557cb0f..7085f3f21 100644 --- a/virtManager/device/netlist.py +++ b/virtManager/device/netlist.py @@ -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.") diff --git a/virtManager/hostnets.py b/virtManager/hostnets.py index 787a8f4c8..703d31b8d 100644 --- a/virtManager/hostnets.py +++ b/virtManager/hostnets.py @@ -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.")) diff --git a/virtManager/hoststorage.py b/virtManager/hoststorage.py index b335fb39e..64222b359 100644 --- a/virtManager/hoststorage.py +++ b/virtManager/hoststorage.py @@ -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."))