Merge "Fix XenAPI performance issue"
This commit is contained in:
@@ -374,6 +374,19 @@ class XenAPIVMTestCase(stubs.XenAPITestBase):
|
|||||||
instances = self.conn.list_instances()
|
instances = self.conn.list_instances()
|
||||||
self.assertEquals(instances, [])
|
self.assertEquals(instances, [])
|
||||||
|
|
||||||
|
def test_list_instance_uuids_0(self):
|
||||||
|
instance_uuids = self.conn.list_instance_uuids()
|
||||||
|
self.assertEquals(instance_uuids, [])
|
||||||
|
|
||||||
|
def test_list_instance_uuids(self):
|
||||||
|
uuids = []
|
||||||
|
for x in xrange(1, 4):
|
||||||
|
instance = self._create_instance(x)
|
||||||
|
uuids.append(instance['uuid'])
|
||||||
|
instance_uuids = self.conn.list_instance_uuids()
|
||||||
|
self.assertEqual(len(uuids), len(instance_uuids))
|
||||||
|
self.assertEqual(set(uuids), set(instance_uuids))
|
||||||
|
|
||||||
def test_get_rrd_server(self):
|
def test_get_rrd_server(self):
|
||||||
self.flags(xenapi_connection_url='myscheme://myaddress/')
|
self.flags(xenapi_connection_url='myscheme://myaddress/')
|
||||||
server_info = vm_utils._get_rrd_server()
|
server_info = vm_utils._get_rrd_server()
|
||||||
|
|||||||
@@ -164,6 +164,12 @@ class XenAPIDriver(driver.ComputeDriver):
|
|||||||
"""List VM instances."""
|
"""List VM instances."""
|
||||||
return self._vmops.list_instances()
|
return self._vmops.list_instances()
|
||||||
|
|
||||||
|
def list_instance_uuids(self):
|
||||||
|
"""Get the list of nova instance uuids for VMs found on the
|
||||||
|
hypervisor.
|
||||||
|
"""
|
||||||
|
return self._vmops.list_instance_uuids()
|
||||||
|
|
||||||
def spawn(self, context, instance, image_meta, injected_files,
|
def spawn(self, context, instance, image_meta, injected_files,
|
||||||
admin_password, network_info=None, block_device_info=None):
|
admin_password, network_info=None, block_device_info=None):
|
||||||
"""Create VM instance."""
|
"""Create VM instance."""
|
||||||
|
|||||||
@@ -190,6 +190,18 @@ class VMOps(object):
|
|||||||
|
|
||||||
return name_labels
|
return name_labels
|
||||||
|
|
||||||
|
def list_instance_uuids(self):
|
||||||
|
"""Get the list of nova instance uuids for VMs found on the
|
||||||
|
hypervisor.
|
||||||
|
"""
|
||||||
|
nova_uuids = []
|
||||||
|
for vm_ref, vm_rec in vm_utils.list_vms(self._session):
|
||||||
|
other_config = vm_rec['other_config']
|
||||||
|
nova_uuid = other_config.get('nova_uuid')
|
||||||
|
if nova_uuid:
|
||||||
|
nova_uuids.append(nova_uuid)
|
||||||
|
return nova_uuids
|
||||||
|
|
||||||
def confirm_migration(self, migration, instance, network_info):
|
def confirm_migration(self, migration, instance, network_info):
|
||||||
name_label = self._get_orig_vm_name_label(instance)
|
name_label = self._get_orig_vm_name_label(instance)
|
||||||
vm_ref = vm_utils.lookup(self._session, name_label)
|
vm_ref = vm_utils.lookup(self._session, name_label)
|
||||||
|
|||||||
Reference in New Issue
Block a user