From 4147f760e8a957c4666e8a2b035ed3f64b745014 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Fri, 24 Jan 2020 15:16:19 -0500 Subject: [PATCH] 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 --- virtManager/connection.py | 4 ++++ virtinst/support.py | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/virtManager/connection.py b/virtManager/connection.py index b6da53d94..7e88f028f 100644 --- a/virtManager/connection.py +++ b/virtManager/connection.py @@ -950,6 +950,10 @@ 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(): + raise RuntimeError("Connection does not support required " + "domain listing APIs") + if not self.support.conn_storage(): log.debug("Connection doesn't seem to support storage APIs.") if not self.support.conn_network(): diff --git a/virtinst/support.py b/virtinst/support.py index f30eb3b93..37bbb39a8 100644 --- a/virtinst/support.py +++ b/virtinst/support.py @@ -227,13 +227,17 @@ class SupportCache: self._cache = {} self._virtconn = virtconn + conn_domain = _make( + function="virConnect.listDomainsID", run_args=()) conn_storage = _make( function="virConnect.listStoragePools", run_args=()) conn_nodedev = _make( 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( function="virConnect.listInterfaces", run_args=()) + conn_stream = _make(function="virConnect.newStream", run_args=(0,)) conn_listalldomains = _make( function="virConnect.listAllDomains", run_args=())