summaryrefslogtreecommitdiffstats
path: root/keystone/service.py
diff options
context:
space:
mode:
Diffstat (limited to 'keystone/service.py')
-rw-r--r--keystone/service.py29
1 files changed, 23 insertions, 6 deletions
diff --git a/keystone/service.py b/keystone/service.py
index ce64aba8..f2c95f78 100644
--- a/keystone/service.py
+++ b/keystone/service.py
@@ -14,19 +14,20 @@
# License for the specific language governing permissions and limitations
# under the License.
+import functools
import routes
from keystone import assignment
from keystone import auth
from keystone import catalog
from keystone.common import dependency
-from keystone.common import logging
from keystone.common import wsgi
from keystone import config
from keystone.contrib import ec2
from keystone import controllers
from keystone import credential
from keystone import identity
+from keystone.openstack.common import log as logging
from keystone import policy
from keystone import routers
from keystone import token
@@ -56,7 +57,23 @@ DRIVERS = dict(
dependency.resolve_future_dependencies()
-@logging.fail_gracefully
+def fail_gracefully(f):
+ """Logs exceptions and aborts."""
+ @functools.wraps(f)
+ def wrapper(*args, **kw):
+ try:
+ return f(*args, **kw)
+ except Exception as e:
+ LOG.debug(e, exc_info=True)
+
+ # exception message is printed to all logs
+ LOG.critical(e)
+
+ exit(1)
+ return wrapper
+
+
+@fail_gracefully
def public_app_factory(global_conf, **local_conf):
controllers.register_version('v2.0')
conf = global_conf.copy()
@@ -68,7 +85,7 @@ def public_app_factory(global_conf, **local_conf):
routers.Extension(False)])
-@logging.fail_gracefully
+@fail_gracefully
def admin_app_factory(global_conf, **local_conf):
conf = global_conf.copy()
conf.update(local_conf)
@@ -79,7 +96,7 @@ def admin_app_factory(global_conf, **local_conf):
routers.Extension()])
-@logging.fail_gracefully
+@fail_gracefully
def public_version_app_factory(global_conf, **local_conf):
conf = global_conf.copy()
conf.update(local_conf)
@@ -87,7 +104,7 @@ def public_version_app_factory(global_conf, **local_conf):
[routers.Versions('public')])
-@logging.fail_gracefully
+@fail_gracefully
def admin_version_app_factory(global_conf, **local_conf):
conf = global_conf.copy()
conf.update(local_conf)
@@ -95,7 +112,7 @@ def admin_version_app_factory(global_conf, **local_conf):
[routers.Versions('admin')])
-@logging.fail_gracefully
+@fail_gracefully
def v3_app_factory(global_conf, **local_conf):
controllers.register_version('v3')
conf = global_conf.copy()