%PDF- %PDF-
Direktori : /lib/python2.7/site-packages/salt/utils/ |
Current File : //lib/python2.7/site-packages/salt/utils/error.py |
# -*- coding: utf-8 -*- ''' Utilities to enable exception reraising across the master commands ''' from __future__ import absolute_import, unicode_literals, print_function # Import salt libs import salt.exceptions import salt.utils.event # Import 3rd-party libs from salt.ext.six.moves import builtins as exceptions def raise_error(name=None, args=None, message=''): ''' Raise an exception with __name__ from name, args from args If args is None Otherwise message from message\ If name is empty then use "Exception" ''' name = name or 'Exception' if hasattr(salt.exceptions, name): ex = getattr(salt.exceptions, name) elif hasattr(exceptions, name): ex = getattr(exceptions, name) else: name = 'SaltException' ex = getattr(salt.exceptions, name) if args is not None: raise ex(*args) else: raise ex(message) def pack_exception(exc): if hasattr(exc, 'pack'): packed_exception = exc.pack() else: packed_exception = {'message': exc.__unicode__(), 'args': exc.args} return packed_exception def fire_exception(exc, opts, job=None, node='minion'): ''' Fire raw exception across the event bus ''' if job is None: job = {} event = salt.utils.event.SaltEvent(node, opts=opts, listen=False) event.fire_event(pack_exception(exc), '_salt_error')