connection: Explicitly error if domain listing APIs are not supported

This will be more important when we drop old domain polling APIs,
because it will be more likely we encounter an old libvirt or weird
connection without the expected API support

Signed-off-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
Cole Robinson 2020-01-24 15:16:19 -05:00
parent 1aff5a611e
commit 4147f760e8
2 changed files with 9 additions and 1 deletions

View File

@ -950,6 +950,10 @@ class vmmConnection(vmmGObject):
log.debug("conn version=%s", self._backend.conn_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_domain():
raise RuntimeError("Connection does not support required "
"domain listing APIs")
if not self.support.conn_storage(): if not self.support.conn_storage():
log.debug("Connection doesn't seem to support storage APIs.") log.debug("Connection doesn't seem to support storage APIs.")
if not self.support.conn_network(): if not self.support.conn_network():

View File

@ -227,13 +227,17 @@ class SupportCache:
self._cache = {} self._cache = {}
self._virtconn = virtconn self._virtconn = virtconn
conn_domain = _make(
function="virConnect.listDomainsID", run_args=())
conn_storage = _make( conn_storage = _make(
function="virConnect.listStoragePools", run_args=()) function="virConnect.listStoragePools", run_args=())
conn_nodedev = _make( conn_nodedev = _make(
function="virConnect.listDevices", run_args=(None, 0)) function="virConnect.listDevices", run_args=(None, 0))
conn_network = _make(function="virConnect.listNetworks", run_args=()) conn_network = _make(
function="virConnect.listNetworks", run_args=())
conn_interface = _make( conn_interface = _make(
function="virConnect.listInterfaces", run_args=()) function="virConnect.listInterfaces", run_args=())
conn_stream = _make(function="virConnect.newStream", run_args=(0,)) conn_stream = _make(function="virConnect.newStream", run_args=(0,))
conn_listalldomains = _make( conn_listalldomains = _make(
function="virConnect.listAllDomains", run_args=()) function="virConnect.listAllDomains", run_args=())