Ejemplo n.º 1
0
 def handle_message(self, message, address=['*']):
     if self.filter and message.startswith(self.filter):
         message = aes.decrypt(message[len(self.filter):], settings.KEY)
     elif self.filter: return
     elif self.parse_message: message = self.parse_message(message)
     ob = json.loads(message)
     ob['address'] = address[0]
     ob['timestamp'] = datetime.datetime.utcnow()
     self.logger.info("Got Message: %s" % ob)
     if not self.callback(ob, **self.kwargs): self.stop()
Ejemplo n.º 2
0
    def parse_message(self, message):
        for k,n in self.nodes.iteritems():
            try:
                return n.parse_message(message)
            except Exception as e:
                self.logger.exception(e)

        try:
            return aes.decrypt(message, settings.KEY)
        except Exception as e:
            self.logger.exception(e)
            return message
Ejemplo n.º 3
0
    def initialize_rpc(self, obj, **kwargs):
        rpc = zmq.Context()
        rpc_socket = rpc.socket(zmq.REP)
        rpc_socket.bind("tcp://*:%s" % obj.get('port'))
        self.logger.info("RPC listening on: %s" % obj.get('port'))
        settings.KEY = base64.urlsafe_b64decode(str(obj.get('key')))
        self.logger.info("%s Initialized" % self.name)        
        while True:                    
            if self.initializing:
                self.initializing = False
                self.publish(dict(method='initialized'))

            message = aes.decrypt(rpc_socket.recv(), settings.KEY)
            ob = json.loads(message)
            try:
                res = getattr(self, ob.get("method"))(ob)
                st = json.dumps(res, cls=ComplexEncoder)
                rpc_socket.send(aes.encrypt(st, settings.KEY))
            except Exception as e:
                self.logger.exception(e)
            gevent.sleep(.1)
Ejemplo n.º 4
0
 def run(self):
     rpc = zmq.Context()
     rpc_socket = rpc.socket(zmq.REP)
     rpc_socket.bind("tcp://*:%s" % settings.CLIENT_RPC)
     self.logger.info("RPC listening on: %s" % settings.CLIENT_RPC)
     while True: 
         try:
             self.logger.info("Waiting for RPC")
             message = rpc_socket.recv()
             self.logger.info("RPC Got: %s" % message)
             message = aes.decrypt(message, settings.KEY)
             ob = json.loads(message)
             res = getattr(self, ob.get("method"))(ob)
             self.logger.info("Result: %s" % res)
             st = json.dumps(res, cls=ComplexEncoder)
             st = aes.encrypt(st, settings.KEY)
             self.logger.info("Result: %s" % st)
             rpc_socket.send(st)
         except Exception as e:
             rpc_socket.send("{'error':true}")
             self.logger.exception(e)
Ejemplo n.º 5
0
 def parse_message(self, message):
     return aes.decrypt(message, settings.KEY)
Ejemplo n.º 6
0
 def parse_message(self, message):
     return aes.decrypt(message, self.key)