summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Meade <alex.meade@rackspace.com>2011-06-13 10:10:45 -0400
committerAlex Meade <alex.meade@rackspace.com>2011-06-13 10:10:45 -0400
commit67e11fa809c83f25af9d09eac1bbe1c69a22a311 (patch)
treeaefdcec2c8132698658ab2c7c72effe7c2b89b3a
parent91e34d37d2907295e892e96ca2c3039c7fbe14bf (diff)
downloadnova-67e11fa809c83f25af9d09eac1bbe1c69a22a311.tar.gz
nova-67e11fa809c83f25af9d09eac1bbe1c69a22a311.tar.xz
nova-67e11fa809c83f25af9d09eac1bbe1c69a22a311.zip
fixed bug 796619
-rw-r--r--nova/crypto.py3
-rw-r--r--nova/tests/test_crypto.py69
2 files changed, 71 insertions, 1 deletions
diff --git a/nova/crypto.py b/nova/crypto.py
index bdc32482a..8d535f426 100644
--- a/nova/crypto.py
+++ b/nova/crypto.py
@@ -176,7 +176,8 @@ def revoke_certs_by_project(project_id):
def revoke_certs_by_user_and_project(user_id, project_id):
"""Revoke certs for user in project."""
admin = context.get_admin_context()
- for cert in db.certificate_get_all_by_user(admin, user_id, project_id):
+ for cert in db.certificate_get_all_by_user_and_project(admin,
+ user_id, project_id):
revoke_cert(cert['project_id'], cert['file_name'])
diff --git a/nova/tests/test_crypto.py b/nova/tests/test_crypto.py
index 945d78794..1356ec8b8 100644
--- a/nova/tests/test_crypto.py
+++ b/nova/tests/test_crypto.py
@@ -16,7 +16,10 @@
Tests for Crypto module.
"""
+import mox
+
from nova import crypto
+from nova import db
from nova import test
@@ -46,3 +49,69 @@ class SymmetricKeyTestCase(test.TestCase):
plain = decrypt(cipher_text)
self.assertEquals(plain_text, plain)
+
+
+class RevokeCertsTest(test.TestCase):
+
+ def test_revoke_certs_by_user_and_project(self):
+ user_id = 'test_user'
+ project_id = 2
+ file_name = 'test_file'
+
+ certificates = [{"user_id": user_id, "project_id": project_id,
+ "file_name": file_name}]
+
+ self.mox.StubOutWithMock(db, 'certificate_get_all_by_user_and_project')
+ db.certificate_get_all_by_user_and_project(mox.IgnoreArg(), \
+ user_id, project_id).AndReturn(certificates)
+
+ self.mox.StubOutWithMock(crypto, 'revoke_cert')
+ crypto.revoke_cert(project_id, mox.IgnoreArg())
+
+ self.mox.ReplayAll()
+
+ crypto.revoke_certs_by_user_and_project(user_id, project_id)
+
+ self.mox.VerifyAll()
+
+ def test_revoke_certs_by_user(self):
+ user_id = 'test_user'
+ project_id = 2
+ file_name = 'test_file'
+
+ certificates = [{"user_id": user_id, "project_id": project_id,
+ "file_name": file_name}]
+
+ self.mox.StubOutWithMock(db, 'certificate_get_all_by_user')
+ db.certificate_get_all_by_user(mox.IgnoreArg(), \
+ user_id).AndReturn(certificates)
+
+ self.mox.StubOutWithMock(crypto, 'revoke_cert')
+ crypto.revoke_cert(project_id, mox.IgnoreArg())
+
+ self.mox.ReplayAll()
+
+ crypto.revoke_certs_by_user(user_id)
+
+ self.mox.VerifyAll()
+
+ def test_revoke_certs_by_project(self):
+ user_id = 'test_user'
+ project_id = 2
+ file_name = 'test_file'
+
+ certificates = [{"user_id": user_id, "project_id": project_id,
+ "file_name": file_name}]
+
+ self.mox.StubOutWithMock(db, 'certificate_get_all_by_project')
+ db.certificate_get_all_by_project(mox.IgnoreArg(), \
+ project_id).AndReturn(certificates)
+
+ self.mox.StubOutWithMock(crypto, 'revoke_cert')
+ crypto.revoke_cert(project_id, mox.IgnoreArg())
+
+ self.mox.ReplayAll()
+
+ crypto.revoke_certs_by_project(project_id)
+
+ self.mox.VerifyAll()