def from_jmessage(cls, jmsg): sender = jmsg.sender.full() messageType = jmsg.headers['rmake-type'] messageClass = _MessageTypeRegistrar.messageTypes.get(messageType) if not messageClass: log.warning("Unknown message type %s from %s", messageType, sender) return None msg = messageClass() payloadType = jmsg.headers.get('content-type') if payloadType is None: msg.payload = None else: if payloadType == 'application/python-pickle': try: msg.payload = chutney.loads(jmsg.payload) except: log.warning("Failed to unpickle message from %s:", sender, exc_info=1) return None else: log.warning("Unknown payload type %s from %s", payloadType, sender) return None msg.info.sender = jmsg.sender msg.info.id = jmsg.seq return msg
def _thaw(self): idx = self.data.index(':') kind = self.data[:idx] if kind == 'pickle': return chutney.loads(self.data[idx+1:]) else: raise RuntimeError("Unrecognized serialization format %s" % kind)
def _filter_response(response): return chutney.loads(response.read())