summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorBrian Waldon <bcwaldon@gmail.com>2012-01-28 19:43:45 -0800
committerBrian Waldon <bcwaldon@gmail.com>2012-01-28 19:43:45 -0800
commit9fa7db58c22b3a4ba238d3cb9d39233968439cb1 (patch)
tree7fd16518097a04faa992ed1073dde62d4d538009 /nova/api
parent02b872625b94c3c63674d8c64b23f80215b04a15 (diff)
Raise 400 if bad kepair data is provided
Fixes bug 902395 Change-Id: If04a0bf432ad4828ac1fc68f6d33dff5f9f57e24
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/compute/contrib/keypairs.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/nova/api/openstack/compute/contrib/keypairs.py b/nova/api/openstack/compute/contrib/keypairs.py
index 67a081c1a..512f8660a 100644
--- a/nova/api/openstack/compute/contrib/keypairs.py
+++ b/nova/api/openstack/compute/contrib/keypairs.py
@@ -99,7 +99,12 @@ class KeypairController(object):
# import if public_key is sent
if 'public_key' in params:
- fingerprint = crypto.generate_fingerprint(params['public_key'])
+ try:
+ fingerprint = crypto.generate_fingerprint(params['public_key'])
+ except exception.InvalidKeypair:
+ msg = _("Keypair data is invalid")
+ raise webob.exc.HTTPBadRequest(explanation=msg)
+
keypair['public_key'] = params['public_key']
keypair['fingerprint'] = fingerprint
else: