Update compute API.get() stubs in test_server_actions
These old unit tests were stubbing out the DB API to get an instance which is too low level for what is being tested. This changes the test stubs to stub out the compute API.get() method instead. While in here, some old unused stubs are removed. This is part of a larger series to drop some pre-cellsv2 compatibility code from the API.get() method. Change-Id: I46a42c8edd7eff457cd5753370fd5c6b42aea997
This commit is contained in:
parent
033249da51
commit
d8f2ee392e
|
@ -36,24 +36,6 @@ from nova.tests.unit.image import fake
|
|||
|
||||
CONF = nova.conf.CONF
|
||||
FAKE_UUID = fakes.FAKE_UUID
|
||||
INSTANCE_IDS = {FAKE_UUID: 1}
|
||||
|
||||
|
||||
def return_server_not_found(*arg, **kwarg):
|
||||
raise exception.InstanceNotFound(instance_id=FAKE_UUID)
|
||||
|
||||
|
||||
def instance_update_and_get_original(context, instance_uuid, values,
|
||||
columns_to_join=None,
|
||||
):
|
||||
inst = fakes.stub_instance(INSTANCE_IDS[instance_uuid], host='fake_host')
|
||||
inst = dict(inst, **values)
|
||||
return (inst, inst)
|
||||
|
||||
|
||||
def instance_update(context, instance_uuid, kwargs):
|
||||
inst = fakes.stub_instance(INSTANCE_IDS[instance_uuid], host='fake_host')
|
||||
return inst
|
||||
|
||||
|
||||
class MockSetAdminPassword(object):
|
||||
|
@ -78,13 +60,11 @@ class ServerActionsControllerTestV21(test.TestCase):
|
|||
def setUp(self):
|
||||
super(ServerActionsControllerTestV21, self).setUp()
|
||||
self.flags(group='glance', api_servers=['http://localhost:9292'])
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
fakes.fake_instance_get(vm_state=vm_states.ACTIVE,
|
||||
host='fake_host'))
|
||||
self.stub_out('nova.db.api.instance_update_and_get_original',
|
||||
instance_update_and_get_original)
|
||||
self.stub_out('nova.compute.api.API.get',
|
||||
fakes.fake_compute_get(vm_state=vm_states.ACTIVE,
|
||||
host='fake_host'))
|
||||
self.stub_out('nova.objects.Instance.save', lambda *a, **kw: None)
|
||||
|
||||
fakes.stub_out_nw_api(self)
|
||||
fakes.stub_out_compute_api_snapshot(self)
|
||||
fake.stub_out_image_service(self)
|
||||
self.flags(enable_instance_password=True, group='api')
|
||||
|
@ -92,7 +72,14 @@ class ServerActionsControllerTestV21(test.TestCase):
|
|||
|
||||
self.controller = self._get_controller()
|
||||
self.compute_api = self.controller.compute_api
|
||||
self.req = fakes.HTTPRequest.blank('')
|
||||
# We don't care about anything getting as far as hitting the compute
|
||||
# RPC API so we just mock it out here.
|
||||
mock_rpcapi = mock.patch.object(self.compute_api, 'compute_rpcapi')
|
||||
mock_rpcapi.start()
|
||||
self.addCleanup(mock_rpcapi.stop)
|
||||
# The project_id here matches what is used by default in
|
||||
# fake_compute_get which need to match for policy checks.
|
||||
self.req = fakes.HTTPRequest.blank('', project_id='fake_project')
|
||||
self.context = self.req.environ['nova.context']
|
||||
|
||||
self.image_api = image.API()
|
||||
|
@ -100,9 +87,6 @@ class ServerActionsControllerTestV21(test.TestCase):
|
|||
def _get_controller(self):
|
||||
return self.servers.ServersController()
|
||||
|
||||
def _set_fake_extension(self):
|
||||
pass
|
||||
|
||||
def _test_locked_instance(self, action, method=None, body_map=None,
|
||||
compute_api_args_map=None):
|
||||
if body_map is None:
|
||||
|
@ -197,13 +181,13 @@ class ServerActionsControllerTestV21(test.TestCase):
|
|||
self.req, FAKE_UUID, body=body)
|
||||
|
||||
def test_reboot_not_found(self):
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
return_server_not_found)
|
||||
|
||||
body = dict(reboot=dict(type="HARD"))
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.controller._action_reboot,
|
||||
self.req, uuids.fake, body=body)
|
||||
with mock.patch('nova.compute.api.API.get',
|
||||
side_effect=exception.InstanceNotFound(
|
||||
instance_id=uuids.fake)):
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.controller._action_reboot,
|
||||
self.req, uuids.fake, body=body)
|
||||
|
||||
def test_reboot_raises_conflict_on_invalid_state(self):
|
||||
body = dict(reboot=dict(type="HARD"))
|
||||
|
@ -221,42 +205,43 @@ class ServerActionsControllerTestV21(test.TestCase):
|
|||
|
||||
def test_reboot_soft_with_soft_in_progress_raises_conflict(self):
|
||||
body = dict(reboot=dict(type="SOFT"))
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
fakes.fake_instance_get(vm_state=vm_states.ACTIVE,
|
||||
task_state=task_states.REBOOTING))
|
||||
self.stub_out('nova.compute.api.API.get',
|
||||
fakes.fake_compute_get(vm_state=vm_states.ACTIVE,
|
||||
task_state=task_states.REBOOTING))
|
||||
self.assertRaises(webob.exc.HTTPConflict,
|
||||
self.controller._action_reboot,
|
||||
self.req, FAKE_UUID, body=body)
|
||||
|
||||
def test_reboot_hard_with_soft_in_progress_does_not_raise(self):
|
||||
body = dict(reboot=dict(type="HARD"))
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
fakes.fake_instance_get(vm_state=vm_states.ACTIVE,
|
||||
task_state=task_states.REBOOTING))
|
||||
self.stub_out('nova.compute.api.API.get',
|
||||
fakes.fake_compute_get(vm_state=vm_states.ACTIVE,
|
||||
task_state=task_states.REBOOTING))
|
||||
self.controller._action_reboot(self.req, FAKE_UUID, body=body)
|
||||
|
||||
def test_reboot_hard_with_hard_in_progress(self):
|
||||
body = dict(reboot=dict(type="HARD"))
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
fakes.fake_instance_get(vm_state=vm_states.ACTIVE,
|
||||
task_state=task_states.REBOOTING_HARD))
|
||||
self.stub_out('nova.compute.api.API.get',
|
||||
fakes.fake_compute_get(
|
||||
vm_state=vm_states.ACTIVE,
|
||||
task_state=task_states.REBOOTING_HARD))
|
||||
self.controller._action_reboot(self.req, FAKE_UUID, body=body)
|
||||
|
||||
def test_reboot_soft_with_hard_in_progress_raises_conflict(self):
|
||||
body = dict(reboot=dict(type="SOFT"))
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid',
|
||||
fakes.fake_instance_get(vm_state=vm_states.ACTIVE,
|
||||
task_state=task_states.REBOOTING_HARD))
|
||||
self.stub_out('nova.compute.api.API.get',
|
||||
fakes.fake_compute_get(
|
||||
vm_state=vm_states.ACTIVE,
|
||||
task_state=task_states.REBOOTING_HARD))
|
||||
self.assertRaises(webob.exc.HTTPConflict,
|
||||
self.controller._action_reboot,
|
||||
self.req, FAKE_UUID, body=body)
|
||||
|
||||
def _test_rebuild_preserve_ephemeral(self, value=None):
|
||||
self._set_fake_extension()
|
||||
return_server = fakes.fake_instance_get(image_ref='2',
|
||||
vm_state=vm_states.ACTIVE,
|
||||
host='fake_host')
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid', return_server)
|
||||
return_server = fakes.fake_compute_get(image_ref='2',
|
||||
vm_state=vm_states.ACTIVE,
|
||||
host='fake_host')
|
||||
self.stub_out('nova.compute.api.API.get', return_server)
|
||||
|
||||
body = {
|
||||
"rebuild": {
|
||||
|
@ -286,9 +271,9 @@ class ServerActionsControllerTestV21(test.TestCase):
|
|||
self._test_rebuild_preserve_ephemeral()
|
||||
|
||||
def test_rebuild_accepted_minimum(self):
|
||||
return_server = fakes.fake_instance_get(image_ref='2',
|
||||
return_server = fakes.fake_compute_get(image_ref='2',
|
||||
vm_state=vm_states.ACTIVE, host='fake_host')
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid', return_server)
|
||||
self.stub_out('nova.compute.api.API.get', return_server)
|
||||
self_href = 'http://localhost/v2/servers/%s' % FAKE_UUID
|
||||
|
||||
body = {
|
||||
|
@ -312,8 +297,6 @@ class ServerActionsControllerTestV21(test.TestCase):
|
|||
def rebuild(self2, context, instance, image_href, *args, **kwargs):
|
||||
info['image_href_in_call'] = image_href
|
||||
|
||||
self.stub_out('nova.db.api.instance_get',
|
||||
fakes.fake_instance_get(vm_state=vm_states.ACTIVE))
|
||||
self.stub_out('nova.compute.api.API.rebuild', rebuild)
|
||||
|
||||
# proper local hrefs must start with 'http://localhost/v2/'
|
||||
|
@ -343,9 +326,9 @@ class ServerActionsControllerTestV21(test.TestCase):
|
|||
# is missing from response. See lp bug 921814
|
||||
self.flags(enable_instance_password=False, group='api')
|
||||
|
||||
return_server = fakes.fake_instance_get(image_ref='2',
|
||||
return_server = fakes.fake_compute_get(image_ref='2',
|
||||
vm_state=vm_states.ACTIVE, host='fake_host')
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid', return_server)
|
||||
self.stub_out('nova.compute.api.API.get', return_server)
|
||||
self_href = 'http://localhost/v2/servers/%s' % FAKE_UUID
|
||||
|
||||
body = {
|
||||
|
@ -383,9 +366,9 @@ class ServerActionsControllerTestV21(test.TestCase):
|
|||
def test_rebuild_accepted_with_metadata(self):
|
||||
metadata = {'new': 'metadata'}
|
||||
|
||||
return_server = fakes.fake_instance_get(metadata=metadata,
|
||||
return_server = fakes.fake_compute_get(metadata=metadata,
|
||||
vm_state=vm_states.ACTIVE, host='fake_host')
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid', return_server)
|
||||
self.stub_out('nova.compute.api.API.get', return_server)
|
||||
|
||||
body = {
|
||||
"rebuild": {
|
||||
|
@ -437,9 +420,9 @@ class ServerActionsControllerTestV21(test.TestCase):
|
|||
self.req, FAKE_UUID, body=body)
|
||||
|
||||
def test_rebuild_admin_pass(self):
|
||||
return_server = fakes.fake_instance_get(image_ref='2',
|
||||
return_server = fakes.fake_compute_get(image_ref='2',
|
||||
vm_state=vm_states.ACTIVE, host='fake_host')
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid', return_server)
|
||||
self.stub_out('nova.compute.api.API.get', return_server)
|
||||
|
||||
body = {
|
||||
"rebuild": {
|
||||
|
@ -459,9 +442,9 @@ class ServerActionsControllerTestV21(test.TestCase):
|
|||
# is missing from response. See lp bug 921814
|
||||
self.flags(enable_instance_password=False, group='api')
|
||||
|
||||
return_server = fakes.fake_instance_get(image_ref='2',
|
||||
return_server = fakes.fake_compute_get(image_ref='2',
|
||||
vm_state=vm_states.ACTIVE, host='fake_host')
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid', return_server)
|
||||
self.stub_out('nova.compute.api.API.get', return_server)
|
||||
|
||||
body = {
|
||||
"rebuild": {
|
||||
|
@ -477,20 +460,17 @@ class ServerActionsControllerTestV21(test.TestCase):
|
|||
self.assertNotIn('adminPass', body['server'])
|
||||
|
||||
def test_rebuild_server_not_found(self):
|
||||
def server_not_found(self, instance_id,
|
||||
columns_to_join=None, use_slave=False):
|
||||
raise exception.InstanceNotFound(instance_id=instance_id)
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid', server_not_found)
|
||||
|
||||
body = {
|
||||
"rebuild": {
|
||||
"imageRef": self._image_href,
|
||||
},
|
||||
}
|
||||
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.controller._action_rebuild,
|
||||
self.req, FAKE_UUID, body=body)
|
||||
with mock.patch('nova.compute.api.API.get',
|
||||
side_effect=exception.InstanceNotFound(
|
||||
instance_id=FAKE_UUID)):
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.controller._action_rebuild,
|
||||
self.req, FAKE_UUID, body=body)
|
||||
|
||||
def test_rebuild_with_bad_image(self):
|
||||
body = {
|
||||
|
@ -672,12 +652,12 @@ class ServerActionsControllerTestV21(test.TestCase):
|
|||
|
||||
def test_resize_with_server_not_found(self):
|
||||
body = dict(resize=dict(flavorRef="http://localhost/3"))
|
||||
|
||||
self.stub_out('nova.compute.api.API.get', return_server_not_found)
|
||||
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.controller._action_resize,
|
||||
self.req, FAKE_UUID, body=body)
|
||||
with mock.patch('nova.compute.api.API.get',
|
||||
side_effect=exception.InstanceNotFound(
|
||||
instance_id=FAKE_UUID)):
|
||||
self.assertRaises(webob.exc.HTTPNotFound,
|
||||
self.controller._action_resize,
|
||||
self.req, FAKE_UUID, body=body)
|
||||
|
||||
def test_resize_with_image_exceptions(self):
|
||||
body = dict(resize=dict(flavorRef="http://localhost/3"))
|
||||
|
@ -852,10 +832,12 @@ class ServerActionsControllerTestV21(test.TestCase):
|
|||
|
||||
def test_revert_resize_server_not_found(self):
|
||||
body = dict(revertResize=None)
|
||||
|
||||
self.assertRaises(webob. exc.HTTPNotFound,
|
||||
self.controller._action_revert_resize,
|
||||
self.req, "bad_server_id", body=body)
|
||||
with mock.patch('nova.compute.api.API.get',
|
||||
side_effect=exception.InstanceNotFound(
|
||||
instance_id='bad_server_id')):
|
||||
self.assertRaises(webob. exc.HTTPNotFound,
|
||||
self.controller._action_revert_resize,
|
||||
self.req, "bad_server_id", body=body)
|
||||
|
||||
def test_revert_resize_server(self):
|
||||
body = dict(revertResize=None)
|
||||
|
@ -968,11 +950,11 @@ class ServerActionsControllerTestV21(test.TestCase):
|
|||
image_root_device_name='/dev/vda',
|
||||
image_block_device_mapping=str(bdm),
|
||||
image_container_format='ami')
|
||||
instance = fakes.fake_instance_get(image_ref=uuids.fake,
|
||||
vm_state=vm_states.ACTIVE,
|
||||
root_device_name='/dev/vda',
|
||||
system_metadata=system_metadata)
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid', instance)
|
||||
instance = fakes.fake_compute_get(image_ref=uuids.fake,
|
||||
vm_state=vm_states.ACTIVE,
|
||||
root_device_name='/dev/vda',
|
||||
system_metadata=system_metadata)
|
||||
self.stub_out('nova.compute.api.API.get', instance)
|
||||
|
||||
volume = dict(id=_fake_id('a'),
|
||||
size=1,
|
||||
|
@ -1074,13 +1056,13 @@ class ServerActionsControllerTestV21(test.TestCase):
|
|||
self.stub_out('nova.db.api.block_device_mapping_get_all_by_instance',
|
||||
fake_block_device_mapping_get_all_by_instance)
|
||||
|
||||
instance = fakes.fake_instance_get(
|
||||
instance = fakes.fake_compute_get(
|
||||
image_ref='',
|
||||
vm_state=vm_states.ACTIVE,
|
||||
root_device_name='/dev/vda',
|
||||
system_metadata={'image_test_key1': 'test_value1',
|
||||
'image_test_key2': 'test_value2'})
|
||||
self.stub_out('nova.db.api.instance_get_by_uuid', instance)
|
||||
self.stub_out('nova.compute.api.API.get', instance)
|
||||
|
||||
volume = dict(id=_fake_id('a'),
|
||||
size=1,
|
||||
|
|
Loading…
Reference in New Issue