From 8fa411d11586768b5b52d818f83b5265edda86b9 Mon Sep 17 00:00:00 2001 From: cyli Date: Wed, 6 Aug 2014 13:53:37 -0700 Subject: [PATCH] Allow for the 'name' parameter to be passed to list server with details as well --- mimic/rest/nova_api.py | 7 +++++-- mimic/test/test_nova.py | 28 +++++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/mimic/rest/nova_api.py b/mimic/rest/nova_api.py index 6f02f672c8..156b051df3 100644 --- a/mimic/rest/nova_api.py +++ b/mimic/rest/nova_api.py @@ -92,7 +92,7 @@ def list_servers(self, request, tenant_id): """ Returns list of servers that were created by the mocks, with the given name. """ - server_name = '' + server_name = None if 'name' in request.args: server_name = request.args['name'][0] response_data = list_server(tenant_id, server_name, details=False) @@ -104,7 +104,10 @@ def list_servers_with_details(self, request, tenant_id): """ Returns list of servers that were created by the mocks, with details such as the metadata. """ - response_data = list_server(tenant_id) + server_name = None + if 'name' in request.args: + server_name = request.args['name'][0] + response_data = list_server(tenant_id, server_name) request.setResponseCode(response_data[1]) return json.dumps(response_data[0]) diff --git a/mimic/test/test_nova.py b/mimic/test/test_nova.py index 56abdb1684..0c4c8c6ed3 100644 --- a/mimic/test/test_nova.py +++ b/mimic/test/test_nova.py @@ -10,7 +10,7 @@ from mimic.canned_responses.nova import server_template from mimic.core import MimicCore from mimic.resource import MimicRoot -from mimic.test.helpers import request +from mimic.test.helpers import json_request, request from mimic.rest.nova_api import NovaApi @@ -249,6 +249,32 @@ def test_list_servers_with_details(self): self.assertEqual(len(list_servers_detail_response_body['servers']), 1) self.assertEqual(list_servers_detail_response_body['servers'][0]['status'], 'ACTIVE') + def test_list_servers_with_details_with_args(self): + """ + :func:`list_servers_with_details` on + ``GET /v2.0//servers/detail`` when a server with the given + name exists + """ + response, body = self.successResultOf(json_request( + self, self.root, "GET", + "{0}/servers/detail?name={1}".format(self.uri, self.server_name))) + self.assertEqual(response.code, 200) + self.assertEqual(body['servers'][0]['id'], self.server_id) + self.assertEqual(len(body['servers']), 1) + self.assertEqual(body['servers'][0]['status'], 'ACTIVE') + + def test_list_servers_with_details_with_args_negative(self): + """ + :func:`list_servers_with_details` on + ``GET /v2.0//servers/detail`` when a server with the given + name does not exist + """ + response, body = self.successResultOf(json_request( + self, self.root, "GET", + '{0}/servers/detail?name=no_server'.format(self.uri))) + self.assertEqual(response.code, 200) + self.assertEqual(len(body['servers']), 0) + def test_delete_server(self): """ Test to verify :func:`delete_server` on ``DELETE /v2.0//servers/``