Resolve oauth dependency after paste pipeline is loaded
When trying to authenticate with the oauth plugin, it is possible that the dependency is not yet loaded, and as a result the user will receive an error message: "Oauth is disabled" This patch will ensure the dependency is loaded after the pipeline Fixes: bug #1264803 Change-Id: I37484bf844896b1a1b560923a8afaf99e91635e4
This commit is contained in:
parent
f33ec9e5bc
commit
8bf22c34fa
|
@ -42,6 +42,7 @@ from keystone.openstack.common import gettextutils
|
||||||
# contain static translated strings.
|
# contain static translated strings.
|
||||||
gettextutils.install('keystone')
|
gettextutils.install('keystone')
|
||||||
|
|
||||||
|
from keystone.common import dependency
|
||||||
from keystone.common import environment
|
from keystone.common import environment
|
||||||
from keystone.common import sql
|
from keystone.common import sql
|
||||||
from keystone.common import utils
|
from keystone.common import utils
|
||||||
|
@ -137,4 +138,6 @@ if __name__ == '__main__':
|
||||||
'main',
|
'main',
|
||||||
CONF.public_bind_host,
|
CONF.public_bind_host,
|
||||||
int(CONF.public_port)))
|
int(CONF.public_port)))
|
||||||
|
|
||||||
|
dependency.resolve_future_dependencies()
|
||||||
serve(*servers)
|
serve(*servers)
|
||||||
|
|
|
@ -26,6 +26,7 @@ from keystone.openstack.common import gettextutils
|
||||||
# contain static translated strings.
|
# contain static translated strings.
|
||||||
gettextutils.install('keystone')
|
gettextutils.install('keystone')
|
||||||
|
|
||||||
|
from keystone.common import dependency
|
||||||
from keystone.common import environment
|
from keystone.common import environment
|
||||||
from keystone.common import sql
|
from keystone.common import sql
|
||||||
from keystone import config
|
from keystone import config
|
||||||
|
@ -54,3 +55,5 @@ drivers = service.load_backends()
|
||||||
# http://pythonpaste.org/deploy/
|
# http://pythonpaste.org/deploy/
|
||||||
application = deploy.loadapp('config:%s' % config.find_paste_config(),
|
application = deploy.loadapp('config:%s' % config.find_paste_config(),
|
||||||
name=name)
|
name=name)
|
||||||
|
|
||||||
|
dependency.resolve_future_dependencies()
|
||||||
|
|
|
@ -21,7 +21,6 @@ from keystone import assignment
|
||||||
from keystone import auth
|
from keystone import auth
|
||||||
from keystone import catalog
|
from keystone import catalog
|
||||||
from keystone.common import cache
|
from keystone.common import cache
|
||||||
from keystone.common import dependency
|
|
||||||
from keystone.common import wsgi
|
from keystone.common import wsgi
|
||||||
from keystone import config
|
from keystone import config
|
||||||
from keystone.contrib import endpoint_filter
|
from keystone.contrib import endpoint_filter
|
||||||
|
@ -43,7 +42,7 @@ LOG = logging.getLogger(__name__)
|
||||||
cache.configure_cache_region(cache.REGION)
|
cache.configure_cache_region(cache.REGION)
|
||||||
|
|
||||||
|
|
||||||
def load_backends(include_oauth1=False):
|
def load_backends():
|
||||||
|
|
||||||
# Ensure that the identity driver is created before the assignment manager.
|
# Ensure that the identity driver is created before the assignment manager.
|
||||||
# The default assignment driver is determined by the identity driver, so
|
# The default assignment driver is determined by the identity driver, so
|
||||||
|
@ -61,12 +60,6 @@ def load_backends(include_oauth1=False):
|
||||||
trust_api=trust.Manager(),
|
trust_api=trust.Manager(),
|
||||||
token_provider_api=token.provider.Manager())
|
token_provider_api=token.provider.Manager())
|
||||||
|
|
||||||
if include_oauth1:
|
|
||||||
from keystone.contrib import oauth1
|
|
||||||
DRIVERS['oauth1_api'] = oauth1.Manager()
|
|
||||||
|
|
||||||
dependency.resolve_future_dependencies()
|
|
||||||
|
|
||||||
return DRIVERS
|
return DRIVERS
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -349,7 +349,14 @@ class TestCase(testtools.TestCase):
|
||||||
# should eventually be removed once testing has been cleaned up.
|
# should eventually be removed once testing has been cleaned up.
|
||||||
kvs_core.KEY_VALUE_STORE_REGISTRY.clear()
|
kvs_core.KEY_VALUE_STORE_REGISTRY.clear()
|
||||||
|
|
||||||
drivers = service.load_backends(include_oauth1=True)
|
drivers = service.load_backends()
|
||||||
|
|
||||||
|
# TODO(stevemar): currently, load oauth1 driver as well, eventually
|
||||||
|
# we need to have this as optional.
|
||||||
|
from keystone.contrib import oauth1
|
||||||
|
drivers['oauth1_api'] = oauth1.Manager()
|
||||||
|
|
||||||
|
dependency.resolve_future_dependencies()
|
||||||
|
|
||||||
for manager_name, manager in drivers.iteritems():
|
for manager_name, manager in drivers.iteritems():
|
||||||
setattr(self, manager_name, manager)
|
setattr(self, manager_name, manager)
|
||||||
|
|
Loading…
Reference in New Issue