Merge "Fix various cells issues due to object changes"

This commit is contained in:
Jenkins 2013-08-26 22:17:55 +00:00 committed by Gerrit Code Review
commit b7c16d696c
4 changed files with 17 additions and 9 deletions

View File

@ -31,8 +31,8 @@ from nova.compute import vm_states
from nova import conductor
from nova.db import base
from nova import exception
from nova.objects import base as obj_base
from nova.objects import instance as instance_obj
from nova.objects import security_group
from nova.openstack.common.gettextutils import _
from nova.openstack.common import log as logging
from nova.scheduler import rpcapi as scheduler_rpcapi
@ -93,10 +93,12 @@ class CellsScheduler(base.Base):
# down.
sys_metadata = flavors.save_flavor_info(sys_metadata, instance_type)
instance_values['system_metadata'] = sys_metadata
# Pop out things that will get set properly when re-creating the
# instance record.
instance_values.pop('id')
instance_values.pop('name')
if 'security_groups' in instance_values:
instance_values = security_group.make_secgroup_list(
instance_values['security_groups'])
instance_values.pop('info_cache')
instance_values.pop('security_groups')
num_instances = len(instance_uuids)
for i, instance_uuid in enumerate(instance_uuids):
@ -112,6 +114,7 @@ class CellsScheduler(base.Base):
block_device_mapping,
num_instances, i)
instance = obj_base.obj_to_primitive(instance)
self.msg_runner.instance_update_at_top(ctxt, instance)
def _create_action_here(self, ctxt, instance_uuids):

View File

@ -1386,8 +1386,9 @@ class API(base.Base):
context, instance, "%s.start" % delete_type)
elevated = context.elevated()
self.network_api.deallocate_for_instance(elevated,
instance)
if self.cell_type != 'api':
self.network_api.deallocate_for_instance(elevated,
instance)
system_meta = self.db.instance_system_metadata_get(context,
instance_uuid)

View File

@ -96,7 +96,10 @@ class CellsSchedulerTestCase(test.TestCase):
inst_type = db.flavor_get(self.ctxt, 1)
image = {'properties': {}}
instance_uuids = self.instance_uuids
instance_props = {'name': 'instance-00000001',
instance_props = {'id': 'removed',
'security_groups': 'removed',
'info_cache': 'removed',
'name': 'instance-00000001',
'hostname': 'meow',
'display_name': 'moo',
'image_ref': 'fake_image_ref',

View File

@ -413,8 +413,9 @@ class _ComputeAPIUnitTestMixIn(object):
compute_utils.notify_about_instance_usage(self.context,
inst,
'%s.start' % delete_type)
self.compute_api.network_api.deallocate_for_instance(
self.context, inst)
if not self.is_cells:
self.compute_api.network_api.deallocate_for_instance(
self.context, inst)
db.instance_system_metadata_get(self.context, inst.uuid
).AndReturn('sys-meta')
state = ('soft' in delete_type and vm_states.SOFT_DELETED or