summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-12-19 23:54:26 +0000
committerGerrit Code Review <review@openstack.org>2012-12-19 23:54:26 +0000
commit4e1634df7f47a181db80c709abaf60652b4a7e11 (patch)
tree1b72ec287ec545230698bad6fe98d3aa613f1048
parentaabd599a928870ba0eef7e9af8eaf85635d55529 (diff)
parent0f640dd33996c53e38e141bb30b0f5fa9d56e829 (diff)
downloadnova-4e1634df7f47a181db80c709abaf60652b4a7e11.tar.gz
nova-4e1634df7f47a181db80c709abaf60652b4a7e11.tar.xz
nova-4e1634df7f47a181db80c709abaf60652b4a7e11.zip
Merge "Make libvirt driver.listinstances return defined"
-rw-r--r--nova/tests/fakelibvirt.py3
-rw-r--r--nova/tests/test_libvirt.py16
-rw-r--r--nova/virt/libvirt/driver.py5
3 files changed, 24 insertions, 0 deletions
diff --git a/nova/tests/fakelibvirt.py b/nova/tests/fakelibvirt.py
index 7c9d5b238..8d9561c7e 100644
--- a/nova/tests/fakelibvirt.py
+++ b/nova/tests/fakelibvirt.py
@@ -839,6 +839,9 @@ class Connection(object):
nwfilter = NWFilter(self, xml)
self._add_filter(nwfilter)
+ def listDefinedDomains(self):
+ return []
+
def openReadOnly(uri):
return Connection(uri, readonly=True)
diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py
index a7df2c938..af8991d09 100644
--- a/nova/tests/test_libvirt.py
+++ b/nova/tests/test_libvirt.py
@@ -1072,6 +1072,7 @@ class LibvirtConnTestCase(test.TestCase):
libvirt_driver.LibvirtDriver._conn.lookupByID = self.fake_lookup
libvirt_driver.LibvirtDriver._conn.numOfDomains = lambda: 2
libvirt_driver.LibvirtDriver._conn.listDomainsID = lambda: [0, 1]
+ libvirt_driver.LibvirtDriver._conn.listDefinedDomains = lambda: []
self.mox.ReplayAll()
conn = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)
@@ -1079,6 +1080,19 @@ class LibvirtConnTestCase(test.TestCase):
# Only one should be listed, since domain with ID 0 must be skiped
self.assertEquals(len(instances), 1)
+ def test_list_defined_instances(self):
+ self.mox.StubOutWithMock(libvirt_driver.LibvirtDriver, '_conn')
+ libvirt_driver.LibvirtDriver._conn.lookupByID = self.fake_lookup
+ libvirt_driver.LibvirtDriver._conn.numOfDomains = lambda: 1
+ libvirt_driver.LibvirtDriver._conn.listDomainsID = lambda: [0]
+ libvirt_driver.LibvirtDriver._conn.listDefinedDomains = lambda: [1]
+
+ self.mox.ReplayAll()
+ conn = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)
+ instances = conn.list_instances()
+ # Only one defined domain should be listed
+ self.assertEquals(len(instances), 1)
+
def test_list_instances_when_instance_deleted(self):
def fake_lookup(instance_name):
@@ -1088,6 +1102,7 @@ class LibvirtConnTestCase(test.TestCase):
libvirt_driver.LibvirtDriver._conn.lookupByID = fake_lookup
libvirt_driver.LibvirtDriver._conn.numOfDomains = lambda: 1
libvirt_driver.LibvirtDriver._conn.listDomainsID = lambda: [0, 1]
+ libvirt_driver.LibvirtDriver._conn.listDefinedDomains = lambda: []
self.mox.ReplayAll()
conn = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)
@@ -1202,6 +1217,7 @@ class LibvirtConnTestCase(test.TestCase):
libvirt_driver.LibvirtDriver._conn.listDomainsID = lambda: range(4)
libvirt_driver.LibvirtDriver._conn.lookupByID = fake_lookup
libvirt_driver.LibvirtDriver._conn.lookupByName = fake_lookup_name
+ libvirt_driver.LibvirtDriver._conn.listDefinedDomains = lambda: []
self.mox.ReplayAll()
conn = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py
index 263fd5ca4..e8dee77e1 100644
--- a/nova/virt/libvirt/driver.py
+++ b/nova/virt/libvirt/driver.py
@@ -447,6 +447,11 @@ class LibvirtDriver(driver.ComputeDriver):
except libvirt.libvirtError:
# Instance was deleted while listing... ignore it
pass
+
+ # extend instance list to contain also defined domains
+ names.extend([vm for vm in self._conn.listDefinedDomains()
+ if vm not in names])
+
return names
def plug_vifs(self, instance, network_info):