X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fceph-volume%2Fceph_volume%2Fdecorators.py;fp=src%2Fceph%2Fsrc%2Fceph-volume%2Fceph_volume%2Fdecorators.py;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=d0be938172f99d912a6f71870bd1f46ae5e211e8;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/ceph-volume/ceph_volume/decorators.py b/src/ceph/src/ceph-volume/ceph_volume/decorators.py deleted file mode 100644 index d0be938..0000000 --- a/src/ceph/src/ceph-volume/ceph_volume/decorators.py +++ /dev/null @@ -1,90 +0,0 @@ -import os -import sys -from ceph_volume import terminal, exceptions -from functools import wraps - - -def needs_root(func): - """ - Check for super user privileges on functions/methods. Raise - ``SuperUserError`` with a nice message. - """ - @wraps(func) - def is_root(*a, **kw): - if not os.getuid() == 0: - raise exceptions.SuperUserError() - return func(*a, **kw) - return is_root - - -def catches(catch=None, handler=None, exit=True): - """ - Very simple decorator that tries any of the exception(s) passed in as - a single exception class or tuple (containing multiple ones) returning the - exception message and optionally handling the problem if it rises with the - handler if it is provided. - - So instead of douing something like this:: - - def bar(): - try: - some_call() - print "Success!" - except TypeError, exc: - print "Error while handling some call: %s" % exc - sys.exit(1) - - You would need to decorate it like this to have the same effect:: - - @catches(TypeError) - def bar(): - some_call() - print "Success!" - - If multiple exceptions need to be catched they need to be provided as a - tuple:: - - @catches((TypeError, AttributeError)) - def bar(): - some_call() - print "Success!" - """ - catch = catch or Exception - - def decorate(f): - - @wraps(f) - def newfunc(*a, **kw): - try: - return f(*a, **kw) - except catch as e: - import logging - logger = logging.getLogger('ceph_volume') - logger.exception('exception caught by decorator') - if os.environ.get('CEPH_VOLUME_DEBUG'): - raise - if handler: - return handler(e) - else: - sys.stderr.write(make_exception_message(e)) - if exit: - sys.exit(1) - return newfunc - - return decorate - -# -# Decorator helpers -# - - -def make_exception_message(exc): - """ - An exception is passed in and this function - returns the proper string depending on the result - so it is readable enough. - """ - if str(exc): - return '%s %s: %s\n' % (terminal.red_arrow, exc.__class__.__name__, exc) - else: - return '%s %s\n' % (terminal.red_arrow, exc.__class__.__name__)