Merge "Improve unit tests for instance multiple create"
This commit is contained in:
commit
8bdd2b2c9b
|
@ -76,10 +76,6 @@ INSTANCE_IDS = {FAKE_UUID: 1}
|
||||||
FIELDS = instance_obj.INSTANCE_DEFAULT_FIELDS
|
FIELDS = instance_obj.INSTANCE_DEFAULT_FIELDS
|
||||||
|
|
||||||
|
|
||||||
def fake_gen_uuid():
|
|
||||||
return FAKE_UUID
|
|
||||||
|
|
||||||
|
|
||||||
def return_servers_empty(context, *args, **kwargs):
|
def return_servers_empty(context, *args, **kwargs):
|
||||||
return objects.InstanceList(objects=[])
|
return objects.InstanceList(objects=[])
|
||||||
|
|
||||||
|
@ -1892,7 +1888,7 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
instance = fake_instance.fake_db_instance(**{
|
instance = fake_instance.fake_db_instance(**{
|
||||||
'id': self.instance_cache_num,
|
'id': self.instance_cache_num,
|
||||||
'display_name': inst['display_name'] or 'test',
|
'display_name': inst['display_name'] or 'test',
|
||||||
'uuid': FAKE_UUID,
|
'uuid': inst['uuid'],
|
||||||
'instance_type': inst_type,
|
'instance_type': inst_type,
|
||||||
'access_ip_v4': '1.2.3.4',
|
'access_ip_v4': '1.2.3.4',
|
||||||
'access_ip_v6': 'fead::1234',
|
'access_ip_v6': 'fead::1234',
|
||||||
|
@ -1941,7 +1937,6 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
fakes.stub_out_rate_limiting(self.stubs)
|
fakes.stub_out_rate_limiting(self.stubs)
|
||||||
fakes.stub_out_key_pair_funcs(self.stubs)
|
fakes.stub_out_key_pair_funcs(self.stubs)
|
||||||
fake.stub_out_image_service(self)
|
fake.stub_out_image_service(self)
|
||||||
self.stubs.Set(uuid, 'uuid4', fake_gen_uuid)
|
|
||||||
self.stub_out('nova.db.instance_add_security_group',
|
self.stub_out('nova.db.instance_add_security_group',
|
||||||
return_security_group)
|
return_security_group)
|
||||||
self.stub_out('nova.db.project_get_networks', project_get_networks)
|
self.stub_out('nova.db.project_get_networks', project_get_networks)
|
||||||
|
@ -1953,7 +1948,6 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
server_update_and_get_original)
|
server_update_and_get_original)
|
||||||
self.stubs.Set(manager.VlanManager, 'allocate_fixed_ip',
|
self.stubs.Set(manager.VlanManager, 'allocate_fixed_ip',
|
||||||
fake_method)
|
fake_method)
|
||||||
self.stub_out('nova.objects.RequestSpec.create', fake_method)
|
|
||||||
self.body = {
|
self.body = {
|
||||||
'server': {
|
'server': {
|
||||||
'min_count': 2,
|
'min_count': 2,
|
||||||
|
@ -1997,7 +1991,8 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
self.req.body = jsonutils.dump_as_bytes(self.body)
|
self.req.body = jsonutils.dump_as_bytes(self.body)
|
||||||
server = self.controller.create(self.req, self.body).obj['server']
|
server = self.controller.create(self.req, self.body).obj['server']
|
||||||
self._check_admin_pass_len(server)
|
self._check_admin_pass_len(server)
|
||||||
self.assertEqual(FAKE_UUID, server['id'])
|
instance = self.instance_cache_by_uuid.values()[0]
|
||||||
|
self.assertEqual(instance['uuid'], server['id'])
|
||||||
return server
|
return server
|
||||||
|
|
||||||
def test_create_instance_private_flavor(self):
|
def test_create_instance_private_flavor(self):
|
||||||
|
@ -2079,7 +2074,8 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
self.ext_mgr.extensions = {'os-multiple-create': 'fake'}
|
self.ext_mgr.extensions = {'os-multiple-create': 'fake'}
|
||||||
self.req.body = jsonutils.dump_as_bytes(self.body)
|
self.req.body = jsonutils.dump_as_bytes(self.body)
|
||||||
res = self.controller.create(self.req, self.body).obj
|
res = self.controller.create(self.req, self.body).obj
|
||||||
self.assertEqual(FAKE_UUID, res["server"]["id"])
|
instance_uuids = self.instance_cache_by_uuid.keys()
|
||||||
|
self.assertIn(res["server"]["id"], instance_uuids)
|
||||||
self._check_admin_pass_len(res["server"])
|
self._check_admin_pass_len(res["server"])
|
||||||
|
|
||||||
def test_create_multiple_instances_pass_disabled(self):
|
def test_create_multiple_instances_pass_disabled(self):
|
||||||
|
@ -2090,7 +2086,8 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
self.flags(enable_instance_password=False)
|
self.flags(enable_instance_password=False)
|
||||||
self.req.body = jsonutils.dump_as_bytes(self.body)
|
self.req.body = jsonutils.dump_as_bytes(self.body)
|
||||||
res = self.controller.create(self.req, self.body).obj
|
res = self.controller.create(self.req, self.body).obj
|
||||||
self.assertEqual(FAKE_UUID, res["server"]["id"])
|
instance_uuids = self.instance_cache_by_uuid.keys()
|
||||||
|
self.assertIn(res["server"]["id"], instance_uuids)
|
||||||
self._check_admin_pass_missing(res["server"])
|
self._check_admin_pass_missing(res["server"])
|
||||||
|
|
||||||
def test_create_multiple_instances_resv_id_return(self):
|
def test_create_multiple_instances_resv_id_return(self):
|
||||||
|
@ -2136,7 +2133,8 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
self.req.body = jsonutils.dump_as_bytes(self.body)
|
self.req.body = jsonutils.dump_as_bytes(self.body)
|
||||||
res = self.controller.create(self.req, self.body).obj
|
res = self.controller.create(self.req, self.body).obj
|
||||||
server = res['server']
|
server = res['server']
|
||||||
self.assertEqual(FAKE_UUID, server['id'])
|
instance = self.instance_cache_by_uuid.values()[0]
|
||||||
|
self.assertEqual(instance['uuid'], server['id'])
|
||||||
|
|
||||||
def test_create_instance_image_ref_is_invalid(self):
|
def test_create_instance_image_ref_is_invalid(self):
|
||||||
image_uuid = 'this_is_not_a_valid_uuid'
|
image_uuid = 'this_is_not_a_valid_uuid'
|
||||||
|
@ -2304,7 +2302,8 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
|
|
||||||
server = res['server']
|
server = res['server']
|
||||||
self._check_admin_pass_len(server)
|
self._check_admin_pass_len(server)
|
||||||
self.assertEqual(FAKE_UUID, server['id'])
|
instance = self.instance_cache_by_uuid.values()[0]
|
||||||
|
self.assertEqual(instance['uuid'], server['id'])
|
||||||
|
|
||||||
def test_create_instance_pass_disabled(self):
|
def test_create_instance_pass_disabled(self):
|
||||||
self.flags(enable_instance_password=False)
|
self.flags(enable_instance_password=False)
|
||||||
|
@ -2313,7 +2312,8 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
|
|
||||||
server = res['server']
|
server = res['server']
|
||||||
self._check_admin_pass_missing(server)
|
self._check_admin_pass_missing(server)
|
||||||
self.assertEqual(FAKE_UUID, server['id'])
|
instance = self.instance_cache_by_uuid.values()[0]
|
||||||
|
self.assertEqual(instance['uuid'], server['id'])
|
||||||
|
|
||||||
@mock.patch('nova.virt.hardware.numa_get_constraints')
|
@mock.patch('nova.virt.hardware.numa_get_constraints')
|
||||||
def test_create_instance_numa_topology_wrong(self, numa_constraints_mock):
|
def test_create_instance_numa_topology_wrong(self, numa_constraints_mock):
|
||||||
|
@ -2404,7 +2404,8 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
self.req.body = jsonutils.dump_as_bytes(self.body)
|
self.req.body = jsonutils.dump_as_bytes(self.body)
|
||||||
res = self.controller.create(self.req, self.body).obj
|
res = self.controller.create(self.req, self.body).obj
|
||||||
|
|
||||||
self.assertEqual(FAKE_UUID, res["server"]["id"])
|
instance = self.instance_cache_by_uuid.values()[0]
|
||||||
|
self.assertEqual(instance['uuid'], res["server"]["id"])
|
||||||
self._check_admin_pass_len(res["server"])
|
self._check_admin_pass_len(res["server"])
|
||||||
|
|
||||||
def test_create_instance_invalid_flavor_href(self):
|
def test_create_instance_invalid_flavor_href(self):
|
||||||
|
@ -2441,7 +2442,8 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
self.req.body = jsonutils.dump_as_bytes(self.body)
|
self.req.body = jsonutils.dump_as_bytes(self.body)
|
||||||
res = self.controller.create(self.req, self.body).obj
|
res = self.controller.create(self.req, self.body).obj
|
||||||
server = res['server']
|
server = res['server']
|
||||||
self.assertEqual(FAKE_UUID, server['id'])
|
instance = self.instance_cache_by_uuid.values()[0]
|
||||||
|
self.assertEqual(instance['uuid'], server['id'])
|
||||||
|
|
||||||
def test_create_instance_with_bad_config_drive(self):
|
def test_create_instance_with_bad_config_drive(self):
|
||||||
self.ext_mgr.extensions = {'os-config-drive': 'fake'}
|
self.ext_mgr.extensions = {'os-config-drive': 'fake'}
|
||||||
|
@ -2456,7 +2458,8 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
self.req.body = jsonutils.dump_as_bytes(self.body)
|
self.req.body = jsonutils.dump_as_bytes(self.body)
|
||||||
res = self.controller.create(self.req, self.body).obj
|
res = self.controller.create(self.req, self.body).obj
|
||||||
server = res['server']
|
server = res['server']
|
||||||
self.assertEqual(FAKE_UUID, server['id'])
|
instance = self.instance_cache_by_uuid.values()[0]
|
||||||
|
self.assertEqual(instance['uuid'], server['id'])
|
||||||
|
|
||||||
def test_create_instance_with_config_drive_disabled(self):
|
def test_create_instance_with_config_drive_disabled(self):
|
||||||
config_drive = [{'config_drive': 'foo'}]
|
config_drive = [{'config_drive': 'foo'}]
|
||||||
|
@ -2483,7 +2486,8 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
res = self.controller.create(self.req, self.body).obj
|
res = self.controller.create(self.req, self.body).obj
|
||||||
|
|
||||||
server = res['server']
|
server = res['server']
|
||||||
self.assertEqual(FAKE_UUID, server['id'])
|
instance = self.instance_cache_by_uuid.values()[0]
|
||||||
|
self.assertEqual(instance['uuid'], server['id'])
|
||||||
|
|
||||||
def test_create_instance_admin_pass(self):
|
def test_create_instance_admin_pass(self):
|
||||||
self.body['server']['flavorRef'] = 3,
|
self.body['server']['flavorRef'] = 3,
|
||||||
|
@ -2847,11 +2851,12 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
self.controller.create, self.req, self.body)
|
self.controller.create, self.req, self.body)
|
||||||
|
|
||||||
def test_create_location(self):
|
def test_create_location(self):
|
||||||
selfhref = 'http://localhost/v2/fake/servers/%s' % FAKE_UUID
|
|
||||||
image_href = 'http://localhost/v2/images/%s' % self.image_uuid
|
image_href = 'http://localhost/v2/images/%s' % self.image_uuid
|
||||||
self.body['server']['imageRef'] = image_href
|
self.body['server']['imageRef'] = image_href
|
||||||
self.req.body = jsonutils.dump_as_bytes(self.body)
|
self.req.body = jsonutils.dump_as_bytes(self.body)
|
||||||
robj = self.controller.create(self.req, self.body)
|
robj = self.controller.create(self.req, self.body)
|
||||||
|
instance = self.instance_cache_by_uuid.values()[0]
|
||||||
|
selfhref = 'http://localhost/v2/fake/servers/%s' % instance['uuid']
|
||||||
self.assertEqual(selfhref, robj['Location'])
|
self.assertEqual(selfhref, robj['Location'])
|
||||||
|
|
||||||
def _do_test_create_instance_above_quota(self, resource, allowed, quota,
|
def _do_test_create_instance_above_quota(self, resource, allowed, quota,
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
import uuid
|
|
||||||
|
|
||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
import webob
|
import webob
|
||||||
|
@ -36,11 +35,6 @@ from nova.tests.unit import fake_instance
|
||||||
from nova.tests.unit.image import fake
|
from nova.tests.unit.image import fake
|
||||||
|
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
FAKE_UUID = fakes.FAKE_UUID
|
|
||||||
|
|
||||||
|
|
||||||
def fake_gen_uuid():
|
|
||||||
return FAKE_UUID
|
|
||||||
|
|
||||||
|
|
||||||
def return_security_group(context, instance_id, security_group_id):
|
def return_security_group(context, instance_id, security_group_id):
|
||||||
|
@ -76,7 +70,7 @@ class MultiCreateExtensionTestV21(test.TestCase):
|
||||||
instance = fake_instance.fake_db_instance(**{
|
instance = fake_instance.fake_db_instance(**{
|
||||||
'id': self.instance_cache_num,
|
'id': self.instance_cache_num,
|
||||||
'display_name': inst['display_name'] or 'test',
|
'display_name': inst['display_name'] or 'test',
|
||||||
'uuid': FAKE_UUID,
|
'uuid': inst['uuid'],
|
||||||
'instance_type': inst_type,
|
'instance_type': inst_type,
|
||||||
'access_ip_v4': '1.2.3.4',
|
'access_ip_v4': '1.2.3.4',
|
||||||
'access_ip_v6': 'fead::1234',
|
'access_ip_v6': 'fead::1234',
|
||||||
|
@ -124,7 +118,6 @@ class MultiCreateExtensionTestV21(test.TestCase):
|
||||||
fakes.stub_out_key_pair_funcs(self.stubs)
|
fakes.stub_out_key_pair_funcs(self.stubs)
|
||||||
fake.stub_out_image_service(self)
|
fake.stub_out_image_service(self)
|
||||||
fakes.stub_out_nw_api(self)
|
fakes.stub_out_nw_api(self)
|
||||||
self.stubs.Set(uuid, 'uuid4', fake_gen_uuid)
|
|
||||||
self.stub_out('nova.db.instance_add_security_group',
|
self.stub_out('nova.db.instance_add_security_group',
|
||||||
return_security_group)
|
return_security_group)
|
||||||
self.stub_out('nova.db.project_get_networks', project_get_networks)
|
self.stub_out('nova.db.project_get_networks', project_get_networks)
|
||||||
|
@ -136,7 +129,6 @@ class MultiCreateExtensionTestV21(test.TestCase):
|
||||||
server_update)
|
server_update)
|
||||||
self.stubs.Set(manager.VlanManager, 'allocate_fixed_ip',
|
self.stubs.Set(manager.VlanManager, 'allocate_fixed_ip',
|
||||||
fake_method)
|
fake_method)
|
||||||
self.stub_out('nova.objects.RequestSpec.create', fake_method)
|
|
||||||
self.req = fakes.HTTPRequest.blank('')
|
self.req = fakes.HTTPRequest.blank('')
|
||||||
|
|
||||||
def _test_create_extra(self, params, no_image=False,
|
def _test_create_extra(self, params, no_image=False,
|
||||||
|
@ -355,7 +347,8 @@ class MultiCreateExtensionTestV21(test.TestCase):
|
||||||
|
|
||||||
res = self.controller.create(self.req, body=body).obj
|
res = self.controller.create(self.req, body=body).obj
|
||||||
|
|
||||||
self.assertEqual(FAKE_UUID, res["server"]["id"])
|
instance_uuids = self.instance_cache_by_uuid.keys()
|
||||||
|
self.assertIn(res["server"]["id"], instance_uuids)
|
||||||
self._check_admin_password_len(res["server"])
|
self._check_admin_password_len(res["server"])
|
||||||
|
|
||||||
def test_create_multiple_instances_pass_disabled(self):
|
def test_create_multiple_instances_pass_disabled(self):
|
||||||
|
@ -378,7 +371,8 @@ class MultiCreateExtensionTestV21(test.TestCase):
|
||||||
|
|
||||||
res = self.controller.create(self.req, body=body).obj
|
res = self.controller.create(self.req, body=body).obj
|
||||||
|
|
||||||
self.assertEqual(FAKE_UUID, res["server"]["id"])
|
instance_uuids = self.instance_cache_by_uuid.keys()
|
||||||
|
self.assertIn(res["server"]["id"], instance_uuids)
|
||||||
self._check_admin_password_missing(res["server"])
|
self._check_admin_password_missing(res["server"])
|
||||||
|
|
||||||
def _check_admin_password_len(self, server_dict):
|
def _check_admin_password_len(self, server_dict):
|
||||||
|
@ -543,7 +537,7 @@ class MultiCreateExtensionTestV2(MultiCreateExtensionTestV21):
|
||||||
instance = fake_instance.fake_db_instance(**{
|
instance = fake_instance.fake_db_instance(**{
|
||||||
'id': self.instance_cache_num,
|
'id': self.instance_cache_num,
|
||||||
'display_name': inst['display_name'] or 'test',
|
'display_name': inst['display_name'] or 'test',
|
||||||
'uuid': FAKE_UUID,
|
'uuid': inst['uuid'],
|
||||||
'instance_type': inst_type,
|
'instance_type': inst_type,
|
||||||
'access_ip_v4': '1.2.3.4',
|
'access_ip_v4': '1.2.3.4',
|
||||||
'access_ip_v6': 'fead::1234',
|
'access_ip_v6': 'fead::1234',
|
||||||
|
@ -575,7 +569,6 @@ class MultiCreateExtensionTestV2(MultiCreateExtensionTestV21):
|
||||||
fakes.stub_out_rate_limiting(self.stubs)
|
fakes.stub_out_rate_limiting(self.stubs)
|
||||||
fakes.stub_out_key_pair_funcs(self.stubs)
|
fakes.stub_out_key_pair_funcs(self.stubs)
|
||||||
fake.stub_out_image_service(self)
|
fake.stub_out_image_service(self)
|
||||||
self.stubs.Set(uuid, 'uuid4', fake_gen_uuid)
|
|
||||||
self.stub_out('nova.db.instance_create', instance_create)
|
self.stub_out('nova.db.instance_create', instance_create)
|
||||||
self.stub_out('nova.db.instance_get', instance_get)
|
self.stub_out('nova.db.instance_get', instance_get)
|
||||||
|
|
||||||
|
|
|
@ -2390,7 +2390,6 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
server_update_and_get_original)
|
server_update_and_get_original)
|
||||||
self.stubs.Set(manager.VlanManager, 'allocate_fixed_ip',
|
self.stubs.Set(manager.VlanManager, 'allocate_fixed_ip',
|
||||||
fake_method)
|
fake_method)
|
||||||
self.stub_out('nova.objects.RequestSpec.create', fake_method)
|
|
||||||
self.body = {
|
self.body = {
|
||||||
'server': {
|
'server': {
|
||||||
'name': 'server_test',
|
'name': 'server_test',
|
||||||
|
|
|
@ -254,12 +254,6 @@ class BaseTestCase(test.TestCase):
|
||||||
fake_allocate_for_instance)
|
fake_allocate_for_instance)
|
||||||
self.compute_api = compute.API()
|
self.compute_api = compute.API()
|
||||||
|
|
||||||
def fake_spec_create(*args, **kwargs):
|
|
||||||
pass
|
|
||||||
|
|
||||||
# Tests in this module do not depend on this running.
|
|
||||||
self.stub_out('nova.objects.RequestSpec.create', fake_spec_create)
|
|
||||||
|
|
||||||
# Just to make long lines short
|
# Just to make long lines short
|
||||||
self.rt = self.compute._get_resource_tracker(NODENAME)
|
self.rt = self.compute._get_resource_tracker(NODENAME)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue