summaryrefslogtreecommitdiffstats
path: root/nova/virt
diff options
context:
space:
mode:
Diffstat (limited to 'nova/virt')
-rw-r--r--nova/virt/driver.py13
-rw-r--r--nova/virt/libvirt/connection.py4
2 files changed, 17 insertions, 0 deletions
diff --git a/nova/virt/driver.py b/nova/virt/driver.py
index 821455b45..20c41ca9f 100644
--- a/nova/virt/driver.py
+++ b/nova/virt/driver.py
@@ -122,6 +122,19 @@ class ComputeDriver(object):
# TODO(Vek): Need to pass context in for access to auth_token
raise NotImplementedError()
+ def get_num_instances(self):
+ """Return the total number of virtual machines.
+
+ Return the number of virtual machines that the hypervisor knows
+ about.
+
+ :note This implementation works for all drivers, but it is
+ not particularly efficient. Maintainers of the virt drivers are
+ encouraged to override this method with something more
+ efficient.
+ """
+ return len(self.list_instances())
+
def instance_exists(self, instance_id):
"""Checks existence of an instance on the host.
diff --git a/nova/virt/libvirt/connection.py b/nova/virt/libvirt/connection.py
index c3bfdedda..7043239cb 100644
--- a/nova/virt/libvirt/connection.py
+++ b/nova/virt/libvirt/connection.py
@@ -279,6 +279,10 @@ class LibvirtConnection(driver.ComputeDriver):
else:
return libvirt.openAuth(uri, auth, 0)
+ def get_num_instances(self):
+ """Efficient override of base instance_exists method."""
+ return self._conn.numOfDomains()
+
def instance_exists(self, instance_id):
"""Efficient override of base instance_exists method."""
try: