summaryrefslogtreecommitdiffstats
path: root/nova/tests/api/openstack/compute/test_servers.py
diff options
context:
space:
mode:
Diffstat (limited to 'nova/tests/api/openstack/compute/test_servers.py')
-rw-r--r--nova/tests/api/openstack/compute/test_servers.py47
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'