Merge "Remove 'create_db_entry_for_new_instance'"

This commit is contained in:
Zuul 2021-05-01 12:45:58 +00:00 committed by Gerrit Code Review
commit c0c2888aca
4 changed files with 42 additions and 62 deletions

View File

@ -1336,10 +1336,11 @@ class API(base.Base):
instance.trusted_certs = self._retrieve_trusted_certs_object( instance.trusted_certs = self._retrieve_trusted_certs_object(
context, trusted_certs) context, trusted_certs)
instance = self.create_db_entry_for_new_instance(context, self._populate_instance_for_create(
instance_type, boot_meta, instance, security_groups, context, instance, boot_meta, i,
block_device_mapping, num_instances, i, security_groups, instance_type,
shutdown_terminate, create_instance=False) num_instances, shutdown_terminate)
block_device_mapping = ( block_device_mapping = (
self._bdm_validate_set_size_and_instance(context, self._bdm_validate_set_size_and_instance(context,
instance, instance_type, block_device_mapping, instance, instance_type, block_device_mapping,
@ -1964,32 +1965,6 @@ class API(base.Base):
tag.resource_id = resource_id tag.resource_id = resource_id
return instance_tags return instance_tags
# This method remains because cellsv1 uses it in the scheduler
def create_db_entry_for_new_instance(self, context, instance_type, image,
instance, security_group, block_device_mapping, num_instances,
index, shutdown_terminate=False, create_instance=True):
"""Create an entry in the DB for this new instance,
including any related table updates (such as security group,
etc).
This is called by the scheduler after a location for the
instance has been determined.
:param create_instance: Determines if the instance is created here or
just populated for later creation. This is done so that this code
can be shared with cellsv1 which needs the instance creation to
happen here. It should be removed and this method cleaned up when
cellsv1 is a distant memory.
"""
self._populate_instance_for_create(context, instance, image, index,
security_group, instance_type,
num_instances, shutdown_terminate)
if create_instance:
instance.create()
return instance
def _check_multiple_instances_with_neutron_ports(self, def _check_multiple_instances_with_neutron_ports(self,
requested_networks): requested_networks):
"""Check whether multiple instances are created from port id(s).""" """Check whether multiple instances are created from port id(s)."""

View File

@ -203,14 +203,14 @@ class ServersControllerCreateTestV21(test.TestCase):
fakes.stub_out_nw_api(self) fakes.stub_out_nw_api(self)
self._set_up_controller() self._set_up_controller()
def create_db_entry_for_new_instance(*args, **kwargs): def _populate_instance_for_create(*args, **kwargs):
instance = args[4] instance = args[2]
instance.uuid = FAKE_UUID instance.uuid = FAKE_UUID
return instance return instance
self.useFixture(fixtures.GlanceFixture(self)) self.useFixture(fixtures.GlanceFixture(self))
self.stub_out('nova.compute.api.API.create_db_entry_for_new_instance', self.stub_out('nova.compute.api.API._populate_instance_for_create',
create_db_entry_for_new_instance) _populate_instance_for_create)
def _set_up_controller(self): def _set_up_controller(self):
self.controller = servers_v21.ServersController() self.controller = servers_v21.ServersController()

View File

@ -5860,12 +5860,13 @@ class ServersControllerCreateTest(test.TestCase):
} }
} }
def create_db_entry_for_new_instance(*args, **kwargs): def _populate_instance_for_create(*args, **kwargs):
instance = args[4] instance = args[2]
self.instance_cache_by_uuid[instance.uuid] = instance self.instance_cache_by_uuid[instance.uuid] = instance
return instance return instance
self.stub_out('nova.compute.api.API.create_db_entry_for_new_instance',
create_db_entry_for_new_instance) self.stub_out('nova.compute.api.API._populate_instance_for_create',
_populate_instance_for_create)
res = self.controller.create(self.req, body=body).obj res = self.controller.create(self.req, body=body).obj
instance_uuids = self.instance_cache_by_uuid.keys() instance_uuids = self.instance_cache_by_uuid.keys()
@ -5890,12 +5891,13 @@ class ServersControllerCreateTest(test.TestCase):
} }
} }
def create_db_entry_for_new_instance(*args, **kwargs): def _populate_instance_for_create(*args, **kwargs):
instance = args[4] instance = args[2]
self.instance_cache_by_uuid[instance.uuid] = instance self.instance_cache_by_uuid[instance.uuid] = instance
return instance return instance
self.stub_out('nova.compute.api.API.create_db_entry_for_new_instance',
create_db_entry_for_new_instance) self.stub_out('nova.compute.api.API._populate_instance_for_create',
_populate_instance_for_create)
res = self.controller.create(self.req, body=body).obj res = self.controller.create(self.req, body=body).obj
instance_uuids = self.instance_cache_by_uuid.keys() instance_uuids = self.instance_cache_by_uuid.keys()
@ -5906,13 +5908,13 @@ class ServersControllerCreateTest(test.TestCase):
"""Test creating multiple instances with asking for """Test creating multiple instances with asking for
reservation_id reservation_id
""" """
def create_db_entry_for_new_instance(*args, **kwargs): def _populate_instance_for_create(*args, **kwargs):
instance = args[4] instance = args[2]
self.instance_cache_by_uuid[instance.uuid] = instance self.instance_cache_by_uuid[instance.uuid] = instance
return instance return instance
self.stub_out('nova.compute.api.API.create_db_entry_for_new_instance', self.stub_out('nova.compute.api.API._populate_instance_for_create',
create_db_entry_for_new_instance) _populate_instance_for_create)
image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
flavor_ref = 'http://localhost/123/flavors/3' flavor_ref = 'http://localhost/123/flavors/3'
body = { body = {
@ -6036,12 +6038,13 @@ class ServersControllerCreateTest(test.TestCase):
} }
} }
def create_db_entry_for_new_instance(*args, **kwargs): def _populate_instance_for_create(*args, **kwargs):
instance = args[4] instance = args[2]
self.instance_cache_by_uuid[instance.uuid] = instance self.instance_cache_by_uuid[instance.uuid] = instance
return instance return instance
self.stub_out('nova.compute.api.API.create_db_entry_for_new_instance',
create_db_entry_for_new_instance) self.stub_out('nova.compute.api.API._populate_instance_for_create',
_populate_instance_for_create)
res = self.controller.create(self.req, body=body).obj res = self.controller.create(self.req, body=body).obj
instance_uuids = self.instance_cache_by_uuid.keys() instance_uuids = self.instance_cache_by_uuid.keys()
self.assertIn(res["server"]["id"], instance_uuids) self.assertIn(res["server"]["id"], instance_uuids)

View File

@ -4957,11 +4957,12 @@ class _ComputeAPIUnitTestMixIn(object):
new=mock.MagicMock()) new=mock.MagicMock())
@mock.patch('nova.compute.utils.check_num_instances_quota') @mock.patch('nova.compute.utils.check_num_instances_quota')
@mock.patch('nova.network.security_group_api') @mock.patch('nova.network.security_group_api')
@mock.patch.object(self.compute_api, @mock.patch.object(
'create_db_entry_for_new_instance') self.compute_api, '_populate_instance_for_create',
new=mock.MagicMock())
@mock.patch.object(self.compute_api, @mock.patch.object(self.compute_api,
'_bdm_validate_set_size_and_instance') '_bdm_validate_set_size_and_instance')
def do_test(mock_bdm_v, mock_cdb, mock_sg, mock_cniq, mock_get_vols): def do_test(mock_bdm_v, mock_sg, mock_cniq, mock_get_vols):
mock_cniq.return_value = 1 mock_cniq.return_value = 1
self.compute_api._provision_instances(self.context, self.compute_api._provision_instances(self.context,
inst_type, inst_type,
@ -4997,16 +4998,17 @@ class _ComputeAPIUnitTestMixIn(object):
mock_im, mock_instance, mock_br, mock_rs, mock_get_dp): mock_im, mock_instance, mock_br, mock_rs, mock_get_dp):
@mock.patch.object(self.compute_api, '_get_volumes_for_bdms') @mock.patch.object(self.compute_api, '_get_volumes_for_bdms')
@mock.patch.object(self.compute_api, @mock.patch.object(
'_create_reqspec_buildreq_instmapping', self.compute_api, '_create_reqspec_buildreq_instmapping',
new=mock.MagicMock()) new=mock.MagicMock())
@mock.patch('nova.compute.utils.check_num_instances_quota') @mock.patch('nova.compute.utils.check_num_instances_quota')
@mock.patch('nova.network.security_group_api') @mock.patch('nova.network.security_group_api')
@mock.patch.object(self.compute_api, @mock.patch.object(
'create_db_entry_for_new_instance') self.compute_api, '_populate_instance_for_create',
new=mock.Mock())
@mock.patch.object(self.compute_api, @mock.patch.object(self.compute_api,
'_bdm_validate_set_size_and_instance') '_bdm_validate_set_size_and_instance')
def do_test(mock_bdm_v, mock_cdb, mock_sg, mock_cniq, mock_get_vols): def do_test(mock_bdm_v, mock_sg, mock_cniq, mock_get_vols):
mock_cniq.return_value = 1 mock_cniq.return_value = 1
self.compute_api._provision_instances(self.context, self.compute_api._provision_instances(self.context,
instance_type, instance_type,
@ -5326,9 +5328,9 @@ class _ComputeAPIUnitTestMixIn(object):
@mock.patch('nova.network.security_group_api' @mock.patch('nova.network.security_group_api'
'.populate_security_groups') '.populate_security_groups')
@mock.patch.object(compute_api, 'objects') @mock.patch.object(compute_api, 'objects')
@mock.patch.object(self.compute_api, @mock.patch.object(
'create_db_entry_for_new_instance', self.compute_api, '_populate_instance_for_create',
new=mock.MagicMock()) new=mock.MagicMock())
@mock.patch.object(self.compute_api, @mock.patch.object(self.compute_api,
'_bdm_validate_set_size_and_instance', '_bdm_validate_set_size_and_instance',
new=mock.MagicMock()) new=mock.MagicMock())