components/openstack/keystone/patches/02-remove-nova-depend.patch
changeset 1760 353323c7bdc1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/openstack/keystone/patches/02-remove-nova-depend.patch	Mon Mar 17 09:51:44 2014 -0600
@@ -0,0 +1,70 @@
+Upstream patch fixed in Icehouse-1
+
+commit 4f800bbe7f5ba07895a4cb32c14007e2f1818bd7
+Author: Lei Zhang <[email protected]>
+Date:   Tue Oct 8 17:40:37 2013 +0800
+
+    remove the nova dependency in the ec2_token middleware
+    
+    Change-Id: I34812522b55e38d3ea030638bbae75d65f507c90
+    Closes-Bug: #1178740
+
+diff --git a/keystone/middleware/ec2_token.py b/keystone/middleware/ec2_token.py
+index 0cd5841..4e58eac 100644
+--- a/keystone/middleware/ec2_token.py
++++ b/keystone/middleware/ec2_token.py
+@@ -25,18 +25,22 @@ Starting point for routing EC2 requests.
+ import urlparse
+ 
+ from eventlet.green import httplib
++from oslo.config import cfg
+ import webob.dec
+ import webob.exc
+ 
+-from nova import flags
+-from nova import utils
+-from nova import wsgi
++from keystone.common import config
++from keystone.common import wsgi
++from keystone.openstack.common import jsonutils
+ 
++keystone_ec2_opts = [
++    cfg.StrOpt('keystone_ec2_url',
++               default='http://localhost:5000/v2.0/ec2tokens',
++               help='URL to get token from ec2 request.'),
++]
+ 
+-FLAGS = flags.FLAGS
+-flags.DEFINE_string('keystone_ec2_url',
+-                    'http://localhost:5000/v2.0/ec2tokens',
+-                    'URL to get token from ec2 request.')
++CONF = config.CONF
++CONF.register_opts(keystone_ec2_opts)
+ 
+ 
+ class EC2Token(wsgi.Middleware):
+@@ -67,13 +71,13 @@ class EC2Token(wsgi.Middleware):
+                 'params': auth_params,
+             }
+         }
+-        creds_json = utils.dumps(creds)
++        creds_json = jsonutils.dumps(creds)
+         headers = {'Content-Type': 'application/json'}
+ 
+         # Disable 'has no x member' pylint error
+         # for httplib and urlparse
+         # pylint: disable-msg=E1101
+-        o = urlparse.urlparse(FLAGS.keystone_ec2_url)
++        o = urlparse.urlparse(CONF.keystone_ec2_url)
+         if o.scheme == 'http':
+             conn = httplib.HTTPConnection(o.netloc)
+         else:
+@@ -86,7 +90,7 @@ class EC2Token(wsgi.Middleware):
+         #             having keystone return token, tenant,
+         #             user, and roles from this call.
+ 
+-        result = utils.loads(response)
++        result = jsonutils.loads(response)
+         try:
+             token_id = result['access']['token']['id']
+         except (AttributeError, KeyError):