diff options
Diffstat (limited to 'nova/tests/api/openstack/compute/test_servers.py')
-rw-r--r-- | nova/tests/api/openstack/compute/test_servers.py | 47 |
1 files changed, 36 insertions, 11 deletions
diff --git a/nova/tests/api/openstack/compute/test_servers.py b/nova/tests/api/openstack/compute/test_servers.py index 5d2118564..993451263 100644 --- a/nova/tests/api/openstack/compute/test_servers.py +++ b/nova/tests/api/openstack/compute/test_servers.py @@ -935,10 +935,10 @@ class ServersControllerTest(test.TestCase): self.assertNotEqual(search_opts, None) # Allowed by user self.assertTrue('name' in search_opts) + self.assertTrue('ip' in search_opts) # OSAPI converts status to vm_state self.assertTrue('vm_state' in search_opts) # Allowed only by admins with admin API on - self.assertFalse('ip' in search_opts) self.assertFalse('unknown_option' in search_opts) return [fakes.stub_instance(100, uuid=server_uuid)] @@ -981,10 +981,8 @@ class ServersControllerTest(test.TestCase): self.assertEqual(len(servers), 1) self.assertEqual(servers[0]['id'], server_uuid) - def test_get_servers_admin_allows_ip(self): - """Test getting servers by ip with admin_api enabled and - admin context - """ + def test_get_servers_allows_ip(self): + """Test getting servers by ip.""" server_uuid = str(uuid.uuid4()) def fake_get_all(compute_self, context, search_opts=None, @@ -997,8 +995,7 @@ class ServersControllerTest(test.TestCase): self.stubs.Set(compute_api.API, 'get_all', fake_get_all) - req = fakes.HTTPRequest.blank('/v2/fake/servers?ip=10\..*', - use_admin_context=True) + req = fakes.HTTPRequest.blank('/v2/fake/servers?ip=10\..*') servers = self.controller.index(req)['servers'] self.assertEqual(len(servers), 1) @@ -1405,8 +1402,9 @@ class ServersControllerTest(test.TestCase): name='public image', is_public=True, status='active', properties={'key1': 'value1'}, min_ram="4096", min_disk="10") - self.stubs.Set(compute_api.API, '_get_image', - fake_get_image) + + self.stubs.Set(fake._FakeImageService, 'show', fake_get_image) + self.stubs.Set(db, 'instance_get_by_uuid', fakes.fake_instance_get(vm_state=vm_states.ACTIVE)) image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' @@ -1432,8 +1430,35 @@ class ServersControllerTest(test.TestCase): name='public image', is_public=True, status='active', properties={'key1': 'value1'}, min_ram="128", min_disk="100000") - self.stubs.Set(compute_api.API, '_get_image', - fake_get_image) + + self.stubs.Set(fake._FakeImageService, 'show', fake_get_image) + + self.stubs.Set(db, 'instance_get_by_uuid', + fakes.fake_instance_get(vm_state=vm_states.ACTIVE)) + image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' + image_href = 'http://localhost/v2/fake/images/%s' % image_uuid + body = { + 'rebuild': { + 'name': 'new_name', + 'imageRef': image_href, + }, + } + + req = fakes.HTTPRequest.blank('/v2/fake/servers/a/action') + req.method = 'POST' + req.body = jsonutils.dumps(body) + req.headers["content-type"] = "application/json" + self.assertRaises(webob.exc.HTTPBadRequest, + self.controller._action_rebuild, req, FAKE_UUID, body) + + def test_rebuild_instance_with_deleted_image(self): + def fake_get_image(self, context, image_href): + return dict(id='76fa36fc-c930-4bf3-8c8a-ea2a2420deb6', + name='public image', is_public=True, + status='DELETED') + + self.stubs.Set(fake._FakeImageService, 'show', fake_get_image) + self.stubs.Set(db, 'instance_get_by_uuid', fakes.fake_instance_get(vm_state=vm_states.ACTIVE)) image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' |