Ejemplo n.º 1
0
 def get_user_exit(self, request, context):
     if self.module:
         user_exit = getattr(self.module, USER_EXIT_ENTRY_POINT, None)
         if not user_exit:
             raise TransformError(
                 code=400,
                 title=
                 "Error in transform get_user_exit, user exit module={0}, should have an 'exits' function"
                 .format(str(self.module)))
         return user_exit(request, context)
Ejemplo n.º 2
0
def transform(stub, request, **kwargs):
    function = kwargs['function']
    stage = kwargs.get('stage')
    url_args = kwargs['url_args']
    trace = kwargs['trace']
    hooks = kwargs.pop('hooks')
    module_system_date = kwargs.get('module_system_date')
    try:
        transformer = hooks.make_transformer(stub)
        if module_system_date and isinstance(module_system_date, basestring):
            module_system_date = as_date(module_system_date)
        system_date = kwargs.get('system_date')
        if isinstance(system_date, basestring):
            system_date = as_date('system_date')
        unsafevars = ('request', 'function', 'cache', 'stage',
                      'module_system_date', 'system_date', 'trace')
        url_args.update(x for x in stub.args().iteritems()
                        if x[0] not in ('session', ))
        for var in unsafevars:
            url_args.pop(var, None)

        return transformer.transform(request,
                                     module_system_date=module_system_date,
                                     system_date=system_date,
                                     function=function,
                                     cache=kwargs['cache'],
                                     stage=stage,
                                     trace=trace,
                                     **url_args)
    except Exception, e:
        _, t, v, tbinfo = compact_traceback()
        msg = u'error={0}, traceback is: ({1}: {2} {3})'.format(
            e, t, v, tbinfo)
        log.error(msg)
        raise TransformError(code=400,
                             title='Error transforming during '
                             '{0} stage:{1}'.format(function, stage),
                             traceback=msg)