summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-06-06 23:21:25 +0000
committerGerrit Code Review <review@openstack.org>2012-06-06 23:21:25 +0000
commit7b7febb02b37420c759eab59b07c7e3e2de9bab1 (patch)
treeb44bbdbf8a64b3278a4ca091fc7c1e27ef5e3cb7
parent25b665d6ec966f3b27af56e2085dda0923728bd5 (diff)
parent29baa0ec661c2578ad0aabd138a6b84e5c7a0b40 (diff)
Merge "Fix bug 1006664: describe non existent ec2 keypair"
-rw-r--r--nova/api/ec2/cloud.py5
-rw-r--r--nova/tests/api/ec2/test_cloud.py5
2 files changed, 10 insertions, 0 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index 723c7fca7..6f0d605ed 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -337,6 +337,11 @@ class CloudController(object):
if not key_name is None:
key_pairs = [x for x in key_pairs if x['name'] in key_name]
+ #If looking for non existent key pair
+ if key_name != None and key_pairs == []:
+ msg = _('Could not find key pair(s): %s') % ','.join(key_name)
+ raise exception.EC2APIError(msg)
+
result = []
for key_pair in key_pairs:
# filter out the vpn keys
diff --git a/nova/tests/api/ec2/test_cloud.py b/nova/tests/api/ec2/test_cloud.py
index 58cba6d15..3526f72e6 100644
--- a/nova/tests/api/ec2/test_cloud.py
+++ b/nova/tests/api/ec2/test_cloud.py
@@ -1525,6 +1525,11 @@ class CloudTestCase(test.TestCase):
self.assertTrue(filter(lambda k: k['keyName'] == 'test1', keys))
self.assertTrue(filter(lambda k: k['keyName'] == 'test2', keys))
+ def test_describe_bad_key_pairs(self):
+ self.assertRaises(exception.EC2APIError,
+ self.cloud.describe_key_pairs, self.context,
+ key_name=['DoesNotExist'])
+
def test_import_key_pair(self):
pubkey_path = os.path.join(os.path.dirname(__file__), 'public_key')
f = open(pubkey_path + '/dummy.pub', 'r')