def main(): from optparse import OptionParser parser = OptionParser(usage=usage()) parser.add_option('-E', '--exchange', type='string', dest='exchange', help="Exchange to push to", action='store') parser.add_option('-T', '--type', type='string', dest='messageType', help="Type of message to create", action='store') parser.add_option('-R', '--routingkey', type='string', dest='routingKey', help="Routing key for message", action='store') parser.add_option('-D', '--data', type='string', dest='data', help="Message data as JSON, use '-' to read from stdin", action='store') parser.add_option('-M', '--mandatory', dest='mandatory', help="Publish message with mandatory flag set.", action='store_true') parser = AMQPConfig.addOptionsToParser(parser) parser = addLoggingOptions(parser) options, args = parser.parse_args() if not options.data: parser.error('You must supply input data.') elif not options.exchange: parser.error('You must supply an exchange.') elif not options.messageType: parser.error('You must supply a message type.') elif not options.routingKey: parser.error('You must supply a routing key.') schemas = [SCHEMA] schemas.extend(get_zenpack_schemas()) amqpConnectionInfo = AMQPConfig() amqpConnectionInfo.update(options) schema = Schema(*schemas) publisher = Publisher(amqpConnectionInfo, schema) initLogging(options) pusher = Pusher(options.exchange, options.messageType, schema, publisher) if options.data == '-': data = loads(sys.stdin.read()) else: data = loads(options.data) published = pusher.push(data=data, routingKey=options.routingKey, mandatory=options.mandatory) if not published: sys.exit(1)
def main(): from optparse import OptionParser import sys parser = OptionParser(usage=usage()) parser.add_option( "-A", '--ack', action="store_true", dest="acknowledge", help= "Acknowledge the message, acknowledging a message will remove it from the queue" ) parser.add_option('-F', '--format', type='string', dest='format', default='json', help='Format to dump the messages in (%s)' % ', '.join(_FORMATTERS.keys())) parser.add_option('-M', '--max', type='int', dest='max_items', help='Maximum items to dump') parser.add_option( '-S', '--skip', action="store_true", dest="skip", help= "Skip processing messages on the queue - use with --ack to clear a queue." ) parser = AMQPConfig.addOptionsToParser(parser) parser = addLoggingOptions(parser) options, args = parser.parse_args() if not args: parser.error("Require one or more queues as arguments") if options.skip and not options.acknowledge: parser.error("Option --skip must be used with --ack") schemas = [SCHEMA] schemas.extend(get_zenpack_schemas()) amqpConnectionInfo = AMQPConfig() amqpConnectionInfo.update(options) schema = Schema(*schemas) try: formatter = _FORMATTERS[options.format.lower()] except KeyError: parser.error('Invalid format "%s"' % options.format) initLogging(options) publisher = Publisher(amqpConnectionInfo, schema) dumper = Dumper(sys.stdout, formatter, publisher.getChannel(), schema, acknowledge=options.acknowledge, skip=options.skip) dumper.dumpQueues(args, limit=options.max_items)