summaryrefslogtreecommitdiffstats
path: root/nova/image/s3.py
diff options
context:
space:
mode:
authorRussell Bryant <rbryant@redhat.com>2012-05-07 14:13:44 -0400
committerRussell Bryant <rbryant@redhat.com>2012-05-17 12:16:12 -0400
commit1b6aa2d1af3d65f381aa9c57cc80531704c0ca8a (patch)
treeb870bc75efcafcc3fcab032f002ce131ce74c2ee /nova/image/s3.py
parent8ed3059cb4cb6ff777b59716db32c3133900b393 (diff)
downloadnova-1b6aa2d1af3d65f381aa9c57cc80531704c0ca8a.tar.gz
nova-1b6aa2d1af3d65f381aa9c57cc80531704c0ca8a.tar.xz
nova-1b6aa2d1af3d65f381aa9c57cc80531704c0ca8a.zip
Add version to the cert rpc API.
Part of blueprint versioned-rpc-apis. Change-Id: Iea00a2e82eef7ca7b3ffef438e81e5b4fcca7751
Diffstat (limited to 'nova/image/s3.py')
-rw-r--r--nova/image/s3.py19
1 files changed, 9 insertions, 10 deletions
diff --git a/nova/image/s3.py b/nova/image/s3.py
index 31dfa1916..9ed060464 100644
--- a/nova/image/s3.py
+++ b/nova/image/s3.py
@@ -30,6 +30,7 @@ import eventlet
from lxml import etree
from nova.api.ec2 import ec2utils
+import nova.cert.rpcapi
from nova import exception
from nova import flags
from nova import image
@@ -68,6 +69,7 @@ class S3ImageService(object):
"""Wraps an existing image service to support s3 based register."""
def __init__(self, service=None, *args, **kwargs):
+ self.cert_rpcapi = nova.cert.rpcapi.CertAPI()
self.service = service or image.get_default_image_service()
self.service.__init__(*args, **kwargs)
@@ -366,23 +368,20 @@ class S3ImageService(object):
return image
- @staticmethod
- def _decrypt_image(context, encrypted_filename, encrypted_key,
+ def _decrypt_image(self, context, encrypted_filename, encrypted_key,
encrypted_iv, decrypted_filename):
elevated = context.elevated()
try:
- key = rpc.call(elevated, FLAGS.cert_topic,
- {"method": "decrypt_text",
- "args": {"project_id": context.project_id,
- "text": base64.b64encode(encrypted_key)}})
+ key = self.cert_rpcapi.decrypt_text(elevated,
+ project_id=context.project_id,
+ text=base64.b64encode(encrypted_key))
except Exception, exc:
msg = _('Failed to decrypt private key: %s') % exc
raise exception.NovaException(msg)
try:
- iv = rpc.call(elevated, FLAGS.cert_topic,
- {"method": "decrypt_text",
- "args": {"project_id": context.project_id,
- "text": base64.b64encode(encrypted_iv)}})
+ iv = self.cert_rpcapi.decrypt_text(elevated,
+ project_id=context.project_id,
+ text=base64.b64encode(encrypted_iv))
except Exception, exc:
raise exception.NovaException(_('Failed to decrypt initialization '
'vector: %s') % exc)