def load(self): for i, (exchange, routingKey, proto) in enumerate(self.formatter.read(self.schema, self.stream)): log.info('Publishing message %d to %s with routing key %s' % (i + 1, exchange, routingKey)) log.debug('Message: %s' % to_json(proto)) self.publisher.publish(Publishable( message = proto, exchange = exchange, routingKey = routingKey, mandatory = True ))
def load(self): for i, (exchange, routingKey, proto) in enumerate( self.formatter.read(self.schema, self.stream)): log.info('Publishing message %d to %s with routing key %s' % (i + 1, exchange, routingKey)) log.debug('Message: %s' % to_json(proto)) self.publisher.publish( Publishable(message=proto, exchange=exchange, routingKey=routingKey, mandatory=True))
def dump(self, message, schema, queueName, stream): # Make sure we can read it in, then convert back to string routing_key = message.delivery_info['routing_key'] exchange = message.delivery_info['exchange'] proto = hydrateQueueMessage(message, schema) type = proto.DESCRIPTOR.full_name payload = proto.SerializeToString() log.debug(to_json(proto)) self._write_shortstr(stream, type) self._write_shortstr(stream, exchange) self._write_shortstr(stream, routing_key) size = len(payload) stream.write(pack('>I%dsB' % size, size, payload, 0xce))
def dump(self, message, schema, queueName, stream): try: proto = hydrateQueueMessage(message, schema) except SchemaException: log.error("Unable to hydrate protobuf %s with headers %s " % (message.body, message.properties.get('application_headers'))) return self.dumpHeaders(message, stream) self.dumpHeader(HEADER_QUEUE_NAME, queueName, stream) self.dumpCommonHeaders(message, stream) self.dumpHeader(HEADER_CONTENT_TYPE, CONTENT_TYPE_JSON, stream) data = to_json(proto, indent=2) self.dumpHeader(HEADER_CONTENT_LENGTH, len(data), stream) stream.write('\n') stream.write(data) stream.write('\n\n')
def dump(self, message, schema, queueName, stream): try: proto = hydrateQueueMessage(message, schema) except SchemaException: log.error( "Unable to hydrate protobuf %s with headers %s " % (message.body, message.properties.get('application_headers'))) return self.dumpHeaders(message, stream) self.dumpHeader(HEADER_QUEUE_NAME, queueName, stream) self.dumpCommonHeaders(message, stream) self.dumpHeader(HEADER_CONTENT_TYPE, CONTENT_TYPE_JSON, stream) data = to_json(proto, indent=2) self.dumpHeader(HEADER_CONTENT_LENGTH, len(data), stream) stream.write('\n') stream.write(data) stream.write('\n\n')
def testToJson(self): json = dumps(self.data) jsonified = to_json(self.message) # Can't test json strings, need to turn it back to dicts assert(loads(json) == loads(jsonified))