From 9fa7db58c22b3a4ba238d3cb9d39233968439cb1 Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Sat, 28 Jan 2012 19:43:45 -0800 Subject: Raise 400 if bad kepair data is provided Fixes bug 902395 Change-Id: If04a0bf432ad4828ac1fc68f6d33dff5f9f57e24 --- nova/api/openstack/compute/contrib/keypairs.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'nova/api') 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: -- cgit