diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-06-10 17:58:54 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-06-10 17:58:54 +0000 |
| commit | e6393e560b1910743bce6dbe23c9bb4c3a244a0b (patch) | |
| tree | 4a1b36554b4c6b801d2e06c156960528f7dca4bb | |
| parent | 936f9839a49d8be9b6f9a5af3c4fb7757fa1f9ed (diff) | |
| parent | 364a00019daea8e2c8006de6e0fafc2193808659 (diff) | |
Merge "Fix Keypair exception messages"
| -rw-r--r-- | nova/compute/api.py | 14 | ||||
| -rw-r--r-- | nova/tests/compute/test_keypairs.py | 35 |
2 files changed, 28 insertions, 21 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py index e268cf2d9..1b6938011 100644 --- a/nova/compute/api.py +++ b/nova/compute/api.py @@ -2788,12 +2788,12 @@ class KeypairAPI(base.Base): safechars = "_- " + string.digits + string.ascii_letters clean_value = "".join(x for x in key_name if x in safechars) if clean_value != key_name: - msg = _("Keypair name contains unsafe characters") - raise exception.InvalidKeypair(explanation=msg) + raise exception.InvalidKeypair( + _("Keypair name contains unsafe characters")) if not 0 < len(key_name) < 256: - msg = _('Keypair name must be between 1 and 255 characters long') - raise exception.InvalidKeypair(explanation=msg) + raise exception.InvalidKeypair( + _('Keypair name must be between 1 and 255 characters long')) def import_key_pair(self, context, user_id, key_name, public_key): """Import a key pair using an existing public key.""" @@ -2805,11 +2805,7 @@ class KeypairAPI(base.Base): except exception.OverQuota: raise exception.KeypairLimitExceeded() - try: - fingerprint = crypto.generate_fingerprint(public_key) - except exception.InvalidKeypair: - msg = _("Keypair data is invalid") - raise exception.InvalidKeypair(explanation=msg) + fingerprint = crypto.generate_fingerprint(public_key) keypair = {'user_id': user_id, 'name': key_name, diff --git a/nova/tests/compute/test_keypairs.py b/nova/tests/compute/test_keypairs.py index 82ac2c612..a6fbda71b 100644 --- a/nova/tests/compute/test_keypairs.py +++ b/nova/tests/compute/test_keypairs.py @@ -83,32 +83,39 @@ class CreateImportSharedTestMixIn(object): up by the test runner unless they are part of a 'concrete' test case. """ - def assertKeyNameRaises(self, exc_class, name): + def assertKeyNameRaises(self, exc_class, expected_message, name): func = getattr(self.keypair_api, self.func_name) args = [] if self.func_name == 'import_key_pair': args.append(self.pub_key) - self.assertRaises(exc_class, func, self.ctxt, self.ctxt.user_id, - name, *args) + exc = self.assertRaises(exc_class, func, self.ctxt, self.ctxt.user_id, + name, *args) + self.assertEqual(expected_message, unicode(exc)) def test_name_too_short(self): - self.assertKeyNameRaises(exception.InvalidKeypair, '') + msg = _('Keypair name must be between 1 and 255 characters long') + self.assertKeyNameRaises(exception.InvalidKeypair, msg, '') def test_name_too_long(self): - self.assertKeyNameRaises(exception.InvalidKeypair, 'x' * 256) + msg = _('Keypair name must be between 1 and 255 characters long') + self.assertKeyNameRaises(exception.InvalidKeypair, msg, 'x' * 256) def test_invalid_chars(self): - self.assertKeyNameRaises(exception.InvalidKeypair, - '* BAD CHARACTERS! *') + msg = _("Keypair name contains unsafe characters") + self.assertKeyNameRaises(exception.InvalidKeypair, msg, + '* BAD CHARACTERS! *') def test_already_exists(self): def db_key_pair_create_duplicate(context, keypair): raise exception.KeyPairExists(key_name=keypair.get('name', '')) self.stubs.Set(db, "key_pair_create", db_key_pair_create_duplicate) - self.assertKeyNameRaises(exception.KeyPairExists, + + msg = (_("Key pair %(key_name)s already exists.") % + {'key_name': self.existing_key_name}) + self.assertKeyNameRaises(exception.KeyPairExists, msg, self.existing_key_name) def test_quota_limit(self): @@ -116,7 +123,9 @@ class CreateImportSharedTestMixIn(object): return CONF.quota_key_pairs self.stubs.Set(QUOTAS, "count", fake_quotas_count) - self.assertKeyNameRaises(exception.KeypairLimitExceeded, 'foo') + + msg = _("Maximum number of key pairs exceeded") + self.assertKeyNameRaises(exception.KeypairLimitExceeded, msg, 'foo') class CreateKeypairTestCase(KeypairAPITestCase, CreateImportSharedTestMixIn): @@ -141,9 +150,11 @@ class ImportKeypairTestCase(KeypairAPITestCase, CreateImportSharedTestMixIn): self.assertEqual(self.pub_key, keypair['public_key']) def test_bad_key_data(self): - self.assertRaises(exception.InvalidKeypair, - self.keypair_api.import_key_pair, - self.ctxt, self.ctxt.user_id, 'foo', 'bad key data') + exc = self.assertRaises(exception.InvalidKeypair, + self.keypair_api.import_key_pair, + self.ctxt, self.ctxt.user_id, 'foo', + 'bad key data') + self.assertEqual(u'Keypair data is invalid', unicode(exc)) class GetKeypairTestCase(KeypairAPITestCase): |
