Пример #1
0
 def run(self):
     try:
         self.logger.debug("Running: %s" % self.name)
         res = self.__conn__[self.__db__].command('findandmodify', self.__collection__, query={'_id':self.__id__, 'status':self.IDLE}, update={'$set':{'status':self.RUNNING}}, upsert=False)           
         if res:
             res = res['value']
             trig = pickle.loads(res['trigger'])
             try:
                 cls = util.get_class("%s.%s" % (res['module'], res['cls']))
                 me = cls(id=self.__id__)
                 if self.args: res = me.work(**self.args) 
                 else: res = me.work()
                 me.last = datetime.datetime.utcnow()
                 me.next = trig.get_next_fire_time(me.last)
                 me.completions+=1
                 me.status = self.IDLE
                 me.save()
                 return True
             except Exception as e:
                 me.last = datetime.datetime.utcnow()
                 me.next = trig.get_next_fire_time(me.last)
                 me.errors+=1
                 me.last_error = e.message
                 me.status = self.IDLE
                 me.save()
                 self.logger.exception(e)
                 return False
     except Exception as e: 
         self.logger.exception(e)
         pass
Пример #2
0
 def get(self):
     popup = self.get_argument("popup", None)
     self.logger.debug(popup)
     kls = util.get_class("controllers.login.Login")
     inst = kls(session=self.session)
     if not popup:
         self.write(inst.login())
     else:
         self.write(tornado.escape._json_encode(inst.login_pop(), cls=JsonEncoders.ComplexEncoder))
Пример #3
0
 def spawn(self, session, params):    
     cls = util.get_class('models.reports.%s.%s' % (self.generator.lower(), self.generator))
     gen = cls()
     gen.report = self.__id__
     try:
         return gen.queue(session, params)
     except Exception as e:
         self.logger.exception(e)
         self.__errors__.update(gen.errors)
         raise e
Пример #4
0
 def post(self, method):
     try:
         kls = util.get_class('controllers.iso.%s.%s' % (method, method.capitalize()))
         inst = kls(session=None)
         self.logger.debug(self.request.body)
         res = getattr(inst, 'incoming')(data=self.request.body)
         self.logger.debug("good data from %s " % method)
         self.write(tornado.escape._json_encode(res, cls=JsonEncoders.ComplexEncoder))
     except Exception as e:
         self.logger.exception(e)
         self.write("something went horribly wrong")
Пример #5
0
 def post(self, method):
     try:
         kls = util.get_class('controllers.callback.Callback')
         data = tornado.escape.json_decode(self.request.body)
         self.logger.debug("CALLBACK SESSION ID: %s " % data['session_id'])
         session = settings.SESSION_TYPE(id=data['session_id'])
         inst = kls(session=session)
         res = getattr(inst, method)(result=data)
         return True
     except Exception as e:
         self.logger.exception(e)
         self.write("bad callback")
Пример #6
0
 def post(self):
     try:
         kls = util.get_class('controllers.merchants.Merchants')
         inst = kls(session=None)
         ars = {}
         for key,val in self.request.arguments.items(): 
             n_k = key.replace("-", "_")
             if len(val) > 1: ars[n_k]= val
             else: ars[n_k]= val[0]
         self.logger.debug(ars)
         res = inst.incoming_email(**ars)
         self.logger.debug(res)
         self.write("thanks ;)")
     except Exception as e:
         self.logger.exception(e)
         self.write("We got some bad data :(")
Пример #7
0
 def handle_request(self):
     try:
         cont = self.controller if self.controller else self.get_argument('controller', settings.DEFAULT_CONTROLLER)
         method = self.method if self.method else self.get_argument('method', settings.DEFAULT_METHOD)
         callback_key = self.get_argument('callback_key', None)
         callback_data = self.get_argument('callback_data', None)
         identifier = self.get_argument('identifier', None)
         kls = util.get_class('controllers.%s.%s' % (cont.lower(), cont.capitalize()))
         ars = {}
         print self.request.arguments.items()
         for key,val in self.request.arguments.items():
             if key not in self.protected: 
                 if len(val) > 1: ars[key]= val
                 else: ars[key]= val[0]
             elif key == 'form':
                 form = tornado.escape.json_decode(val[0])
                 ars['form'] = form        
         inst = kls(session=self.session, server=self)
         if inst.check_permissions(method): res = getattr(inst, method)(**ars)
         return {"identifier":identifier, "callback_key":callback_key, "result":res, 'callback_data':callback_data}
     except Exception as e:
         self.logger.exception(e)
         raise e
Пример #8
0
 def parameters_ui(self):
     cls = util.get_class('models.reports.%s.%s' % (self.generator.lower(), self.generator))
     return cls(report=self).parameters()