diff options
author | Jenkins <jenkins@review.openstack.org> | 2012-12-19 23:54:26 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2012-12-19 23:54:26 +0000 |
commit | 4e1634df7f47a181db80c709abaf60652b4a7e11 (patch) | |
tree | 1b72ec287ec545230698bad6fe98d3aa613f1048 | |
parent | aabd599a928870ba0eef7e9af8eaf85635d55529 (diff) | |
parent | 0f640dd33996c53e38e141bb30b0f5fa9d56e829 (diff) | |
download | nova-4e1634df7f47a181db80c709abaf60652b4a7e11.tar.gz nova-4e1634df7f47a181db80c709abaf60652b4a7e11.tar.xz nova-4e1634df7f47a181db80c709abaf60652b4a7e11.zip |
Merge "Make libvirt driver.listinstances return defined"
-rw-r--r-- | nova/tests/fakelibvirt.py | 3 | ||||
-rw-r--r-- | nova/tests/test_libvirt.py | 16 | ||||
-rw-r--r-- | nova/virt/libvirt/driver.py | 5 |
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): |