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
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))
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
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")
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")
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 :(")
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
def parameters_ui(self): cls = util.get_class('models.reports.%s.%s' % (self.generator.lower(), self.generator)) return cls(report=self).parameters()