def handle_select(self, request, sender, cc): try: if ((request["select"]["regex"] == "leela.xmpp") and (request["select"]["proc"] == "*")): data0 = yield self.redis.hgetall("leela.xmpp") tmp = [] for (key, data1) in data0.iteritems(): data = parser.parse_json(data1) sql = pp.render_select(data["request"]["select"]["proc"], data["request"]["select"]["regex"]) if (data["sender"] == sender.userhost()): tmp.append({"key": key, "cmd": sql }) cc(200, {"results": tmp}) else: hcode = hashlib.sha512() hcode.update(sender.userhost()) hcode.update(request["select"]["proc"]) hcode.update(request["select"]["regex"]) key = hcode.hexdigest() self.redis.hsetnx("leela.xmpp", key, pp.render_json({"request": request, "sender": sender.userhost()})) except: logger.exception() cc(500, {"reason": "internal server error"})
def test_render_select(): eq_("SELECT id FROM regex;", pp.render_select("id", "regex"))
def test_render_select(): eq_("SELECT id FROM regex;", pp.render_select("id", "regex"))
def _sendmsg(self, status, msg): xml = xmppim.Message(recipient=self.peer).toElement() sql = pp.render_select(self.query["proc"], self.query["regex"]) dbg = {"request": {"cmd": sql, "key": self.key}} self.xmpp.mkcc(xml, dbg)(status, msg)