Merge "VMware: support passing flavor object in spawn"

This commit is contained in:
Jenkins 2014-12-08 15:51:25 +00:00 committed by Gerrit Code Review
commit d6fb908654
3 changed files with 11 additions and 7 deletions

View File

@ -719,12 +719,13 @@ class VMwareAPIVMTestCase(test.NoDBTestCase):
def _fake_spawn(context, instance, image_meta, injected_files, def _fake_spawn(context, instance, image_meta, injected_files,
admin_password, network_info, block_device_info=None, admin_password, network_info, block_device_info=None,
instance_name=None, power_on=True): instance_name=None, power_on=True, flavor=None):
return self._spawn(context, instance, image_meta, return self._spawn(context, instance, image_meta,
injected_files, admin_password, network_info, injected_files, admin_password, network_info,
block_device_info=block_device_info, block_device_info=block_device_info,
instance_name=instance_name, instance_name=instance_name,
power_on=self._power_on) power_on=self._power_on,
flavor=flavor)
with ( with (
mock.patch.object(self.conn._vmops, 'spawn', _fake_spawn) mock.patch.object(self.conn._vmops, 'spawn', _fake_spawn)

View File

@ -485,7 +485,8 @@ class VMwareVCDriver(driver.ComputeDriver):
"""Create VM instance.""" """Create VM instance."""
_vmops = self._get_vmops_for_compute_node(instance['node']) _vmops = self._get_vmops_for_compute_node(instance['node'])
_vmops.spawn(context, instance, image_meta, injected_files, _vmops.spawn(context, instance, image_meta, injected_files,
admin_password, network_info, block_device_info) admin_password, network_info, block_device_info,
flavor=flavor)
def attach_volume(self, context, connection_info, instance, mountpoint, def attach_volume(self, context, connection_info, instance, mountpoint,
disk_bus=None, device_type=None, encryption=None): disk_bus=None, device_type=None, encryption=None):

View File

@ -516,15 +516,17 @@ class VMwareVMOps(object):
def spawn(self, context, instance, image_meta, injected_files, def spawn(self, context, instance, image_meta, injected_files,
admin_password, network_info, block_device_info=None, admin_password, network_info, block_device_info=None,
instance_name=None, power_on=True): instance_name=None, power_on=True,
flavor=None):
client_factory = self._session.vim.client.factory client_factory = self._session.vim.client.factory
image_info = images.VMwareImage.from_image(instance.image_ref, image_info = images.VMwareImage.from_image(instance.image_ref,
image_meta) image_meta)
# Read flavors for extra_specs # Read flavors for extra_specs
flavor = objects.Flavor.get_by_id( if flavor is None:
nova_context.get_admin_context(read_deleted='yes'), flavor = objects.Flavor.get_by_id(
instance.instance_type_id) nova_context.get_admin_context(read_deleted='yes'),
instance.instance_type_id)
extra_specs = self._get_extra_specs(flavor) extra_specs = self._get_extra_specs(flavor)