libvirt: remove unnecessary flavor parameter

The instance now has the flavor as part of the object. There is
no reason to pass this to:
 - _get_guest_config_meta
 - _get_guest_xml

The unit test test_get_guest_config was also updated. The flavor in
the test has 3 disks and these need to be validated correctly.

Change-Id: I1170aefcd4912e091f4b85e91d351b4372522fa9
This commit is contained in:
Gary Kotton 2015-03-10 03:30:40 -07:00
parent dd48494877
commit 48b499d3a7
2 changed files with 22 additions and 28 deletions

View File

@ -937,6 +937,7 @@ class LibvirtConnTestCase(test.NoDBTestCase):
swap=33550336, swap=33550336,
extra_specs={}) extra_specs={})
instance_ref = objects.Instance(**test_instance) instance_ref = objects.Instance(**test_instance)
instance_ref.flavor = flavor
image_meta = {} image_meta = {}
disk_info = blockinfo.get_disk_info(CONF.libvirt.virt_type, disk_info = blockinfo.get_disk_info(CONF.libvirt.virt_type,
@ -946,7 +947,7 @@ class LibvirtConnTestCase(test.NoDBTestCase):
cfg = drvr._get_guest_config(instance_ref, cfg = drvr._get_guest_config(instance_ref,
_fake_network_info(self.stubs, 1), _fake_network_info(self.stubs, 1),
{}, disk_info, {}, disk_info,
context=ctxt, flavor=flavor) context=ctxt)
self.assertEqual(cfg.uuid, instance_ref["uuid"]) self.assertEqual(cfg.uuid, instance_ref["uuid"])
self.assertEqual(2, len(cfg.features)) self.assertEqual(2, len(cfg.features))
@ -959,24 +960,26 @@ class LibvirtConnTestCase(test.NoDBTestCase):
self.assertEqual(cfg.os_type, vm_mode.HVM) self.assertEqual(cfg.os_type, vm_mode.HVM)
self.assertEqual(cfg.os_boot_dev, ["hd"]) self.assertEqual(cfg.os_boot_dev, ["hd"])
self.assertIsNone(cfg.os_root) self.assertIsNone(cfg.os_root)
self.assertEqual(len(cfg.devices), 9) self.assertEqual(len(cfg.devices), 10)
self.assertIsInstance(cfg.devices[0], self.assertIsInstance(cfg.devices[0],
vconfig.LibvirtConfigGuestDisk) vconfig.LibvirtConfigGuestDisk)
self.assertIsInstance(cfg.devices[1], self.assertIsInstance(cfg.devices[1],
vconfig.LibvirtConfigGuestDisk) vconfig.LibvirtConfigGuestDisk)
self.assertIsInstance(cfg.devices[2], self.assertIsInstance(cfg.devices[2],
vconfig.LibvirtConfigGuestInterface) vconfig.LibvirtConfigGuestDisk)
self.assertIsInstance(cfg.devices[3], self.assertIsInstance(cfg.devices[3],
vconfig.LibvirtConfigGuestSerial) vconfig.LibvirtConfigGuestInterface)
self.assertIsInstance(cfg.devices[4], self.assertIsInstance(cfg.devices[4],
vconfig.LibvirtConfigGuestSerial) vconfig.LibvirtConfigGuestSerial)
self.assertIsInstance(cfg.devices[5], self.assertIsInstance(cfg.devices[5],
vconfig.LibvirtConfigGuestInput) vconfig.LibvirtConfigGuestSerial)
self.assertIsInstance(cfg.devices[6], self.assertIsInstance(cfg.devices[6],
vconfig.LibvirtConfigGuestGraphics) vconfig.LibvirtConfigGuestInput)
self.assertIsInstance(cfg.devices[7], self.assertIsInstance(cfg.devices[7],
vconfig.LibvirtConfigGuestVideo) vconfig.LibvirtConfigGuestGraphics)
self.assertIsInstance(cfg.devices[8], self.assertIsInstance(cfg.devices[8],
vconfig.LibvirtConfigGuestVideo)
self.assertIsInstance(cfg.devices[9],
vconfig.LibvirtConfigMemoryBalloon) vconfig.LibvirtConfigMemoryBalloon)
self.assertEqual(len(cfg.metadata), 1) self.assertEqual(len(cfg.metadata), 1)
self.assertIsInstance(cfg.metadata[0], self.assertIsInstance(cfg.metadata[0],
@ -1022,11 +1025,9 @@ class LibvirtConnTestCase(test.NoDBTestCase):
self.flags(virt_type='lxc', group='libvirt') self.flags(virt_type='lxc', group='libvirt')
drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True) drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)
instance_ref = objects.Instance(**self.test_instance) instance_ref = objects.Instance(**self.test_instance)
flavor = instance_ref.get_flavor()
cfg = drvr._get_guest_config(instance_ref, cfg = drvr._get_guest_config(instance_ref,
_fake_network_info(self.stubs, 1), _fake_network_info(self.stubs, 1),
None, {'mapping': {}}, flavor=flavor) None, {'mapping': {}})
self.assertEqual(instance_ref["uuid"], cfg.uuid) self.assertEqual(instance_ref["uuid"], cfg.uuid)
self.assertEqual(2 * units.Mi, cfg.memory) self.assertEqual(2 * units.Mi, cfg.memory)
self.assertEqual(1, cfg.vcpus) self.assertEqual(1, cfg.vcpus)
@ -1048,11 +1049,9 @@ class LibvirtConnTestCase(test.NoDBTestCase):
self.flags(gid_maps=['0:1000:100'], group='libvirt') self.flags(gid_maps=['0:1000:100'], group='libvirt')
drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True) drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)
instance_ref = objects.Instance(**self.test_instance) instance_ref = objects.Instance(**self.test_instance)
flavor = instance_ref.get_flavor()
cfg = drvr._get_guest_config(instance_ref, cfg = drvr._get_guest_config(instance_ref,
_fake_network_info(self.stubs, 1), _fake_network_info(self.stubs, 1),
None, {'mapping': {}}, flavor=flavor) None, {'mapping': {}})
self.assertEqual(instance_ref["uuid"], cfg.uuid) self.assertEqual(instance_ref["uuid"], cfg.uuid)
self.assertEqual(2 * units.Mi, cfg.memory) self.assertEqual(2 * units.Mi, cfg.memory)
self.assertEqual(1, cfg.vcpus) self.assertEqual(1, cfg.vcpus)
@ -11586,7 +11585,6 @@ Active: 8381604 kB
self.flags(images_type='ploop', group='libvirt') self.flags(images_type='ploop', group='libvirt')
drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True) drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)
instance_ref = objects.Instance(**self.test_instance) instance_ref = objects.Instance(**self.test_instance)
flavor = instance_ref.get_flavor()
image_meta = {} image_meta = {}
@ -11596,7 +11594,7 @@ Active: 8381604 kB
cfg = drvr._get_guest_config(instance_ref, cfg = drvr._get_guest_config(instance_ref,
_fake_network_info(self.stubs, 1), _fake_network_info(self.stubs, 1),
None, disk_info, flavor=flavor) None, disk_info)
self.assertEqual("parallels", cfg.virt_type) self.assertEqual("parallels", cfg.virt_type)
self.assertEqual(instance_ref["uuid"], cfg.uuid) self.assertEqual(instance_ref["uuid"], cfg.uuid)
self.assertEqual(2 * units.Mi, cfg.memory) self.assertEqual(2 * units.Mi, cfg.memory)
@ -11624,11 +11622,10 @@ Active: 8381604 kB
ct_instance = self.test_instance.copy() ct_instance = self.test_instance.copy()
ct_instance["vm_mode"] = vm_mode.EXE ct_instance["vm_mode"] = vm_mode.EXE
instance_ref = objects.Instance(**ct_instance) instance_ref = objects.Instance(**ct_instance)
flavor = instance_ref.get_flavor()
cfg = drvr._get_guest_config(instance_ref, cfg = drvr._get_guest_config(instance_ref,
_fake_network_info(self.stubs, 1), _fake_network_info(self.stubs, 1),
None, {'mapping': {}}, flavor=flavor) None, {'mapping': {}})
self.assertEqual("parallels", cfg.virt_type) self.assertEqual("parallels", cfg.virt_type)
self.assertEqual(instance_ref["uuid"], cfg.uuid) self.assertEqual(instance_ref["uuid"], cfg.uuid)
self.assertEqual(2 * units.Mi, cfg.memory) self.assertEqual(2 * units.Mi, cfg.memory)

View File

@ -2349,8 +2349,7 @@ class LibvirtDriver(driver.ComputeDriver):
xml = self._get_guest_xml(context, instance, network_info, xml = self._get_guest_xml(context, instance, network_info,
disk_info, image_meta, disk_info, image_meta,
block_device_info=block_device_info, block_device_info=block_device_info,
write_to_disk=True, write_to_disk=True)
flavor=instance.flavor)
self._create_domain_and_network(context, xml, instance, network_info, self._create_domain_and_network(context, xml, instance, network_info,
disk_info, disk_info,
block_device_info=block_device_info) block_device_info=block_device_info)
@ -3277,7 +3276,7 @@ class LibvirtDriver(driver.ComputeDriver):
return dev return dev
def _get_guest_config_meta(self, context, instance, flavor): def _get_guest_config_meta(self, context, instance):
"""Get metadata config for guest.""" """Get metadata config for guest."""
meta = vconfig.LibvirtConfigGuestMetaNovaInstance() meta = vconfig.LibvirtConfigGuestMetaNovaInstance()
@ -3298,6 +3297,7 @@ class LibvirtDriver(driver.ComputeDriver):
meta.owner = ometa meta.owner = ometa
fmeta = vconfig.LibvirtConfigGuestMetaNovaFlavor() fmeta = vconfig.LibvirtConfigGuestMetaNovaFlavor()
flavor = instance.flavor
fmeta.name = flavor.name fmeta.name = flavor.name
fmeta.memory = flavor.memory_mb fmeta.memory = flavor.memory_mb
fmeta.vcpus = flavor.vcpus fmeta.vcpus = flavor.vcpus
@ -3939,15 +3939,14 @@ class LibvirtDriver(driver.ComputeDriver):
def _get_guest_config(self, instance, network_info, image_meta, def _get_guest_config(self, instance, network_info, image_meta,
disk_info, rescue=None, block_device_info=None, disk_info, rescue=None, block_device_info=None,
context=None, flavor=None): context=None):
"""Get config data for parameters. """Get config data for parameters.
:param rescue: optional dictionary that should contain the key :param rescue: optional dictionary that should contain the key
'ramdisk_id' if a ramdisk is needed for the rescue image and 'ramdisk_id' if a ramdisk is needed for the rescue image and
'kernel_id' if a kernel is needed for the rescue image. 'kernel_id' if a kernel is needed for the rescue image.
""" """
ctxt = context or nova_context.get_admin_context() flavor = instance.flavor
flavor = self._get_flavor(ctxt, instance, flavor)
inst_path = libvirt_utils.get_instance_path(instance) inst_path = libvirt_utils.get_instance_path(instance)
disk_mapping = disk_info['mapping'] disk_mapping = disk_info['mapping']
img_meta_prop = image_meta.get('properties', {}) if image_meta else {} img_meta_prop = image_meta.get('properties', {}) if image_meta else {}
@ -3974,8 +3973,7 @@ class LibvirtDriver(driver.ComputeDriver):
instance.numa_topology, guest_numa_config.numatune) instance.numa_topology, guest_numa_config.numatune)
guest.metadata.append(self._get_guest_config_meta(context, guest.metadata.append(self._get_guest_config_meta(context,
instance, instance))
flavor))
guest.idmaps = self._get_guest_idmaps() guest.idmaps = self._get_guest_idmaps()
self._update_guest_cputune(guest, flavor, virt_type) self._update_guest_cputune(guest, flavor, virt_type)
@ -4134,8 +4132,7 @@ class LibvirtDriver(driver.ComputeDriver):
def _get_guest_xml(self, context, instance, network_info, disk_info, def _get_guest_xml(self, context, instance, network_info, disk_info,
image_meta, rescue=None, image_meta, rescue=None,
block_device_info=None, write_to_disk=False, block_device_info=None, write_to_disk=False):
flavor=None):
# NOTE(danms): Stringifying a NetworkInfo will take a lock. Do # NOTE(danms): Stringifying a NetworkInfo will take a lock. Do
# this ahead of time so that we don't acquire it while also # this ahead of time so that we don't acquire it while also
# holding the logging lock. # holding the logging lock.
@ -4153,7 +4150,7 @@ class LibvirtDriver(driver.ComputeDriver):
LOG.debug(strutils.mask_password(msg), instance=instance) LOG.debug(strutils.mask_password(msg), instance=instance)
conf = self._get_guest_config(instance, network_info, image_meta, conf = self._get_guest_config(instance, network_info, image_meta,
disk_info, rescue, block_device_info, disk_info, rescue, block_device_info,
context, flavor=flavor) context)
xml = conf.to_xml() xml = conf.to_xml()
if write_to_disk: if write_to_disk: