def main(): conf = configfetcher.ConfigFetcher() queue = rqueue.RedisQueue(conf.get('REDIS_QUEUE_NAME'), conf.get('REDIS_HOST')) ssh = subprocess.Popen( [ 'ssh', '*****@*****.**', '-i', os.path.join(os.path.dirname(__file__), 'id_rsa'), '-p', '29418', 'gerrit', 'stream-events' ], shell=False, bufsize=1, # line buffered stdout=subprocess.PIPE, stderr=subprocess.STDOUT) logger.info('Opened SSH connection') for line in ssh.stdout: logger.info(line.decode()) parsed = json.loads(line.decode()) processed = process_event(parsed) if processed: logger.info(json.dumps(processed)) try: msg = build_message(processed) channels = channel_filter(processed['repo'], processed['branch']) queue.put({ 'raw': True, 'msg': msg, 'channels': list(channels) }) except: logger.exception('Error queuing message') ssh.stdout.flush()
def __init__(self, conf, builder, channelfilter): """ :type conf: configfetcher.ConfigFetcher :type builder: messagebuilder.IRCMessageBuilder :type channelfilter: channelfilter.ChannelFilter """ self.rqueue = rqueue.RedisQueue(conf.get('REDIS_QUEUE_NAME'), conf.get('REDIS_HOST')) self.conf = conf self.builder = builder self.connected = False self.channelfilter = channelfilter
def __init__(self, conf): """ :param conf: Config :type conf: configfetcher.ConfigFetcher """ self.conf = conf self.phab = phabricator.Phabricator(self.conf.get('PHAB_HOST'), self.conf.get('PHAB_USER'), self.conf.get('PHAB_CERT')) self.rqueue = rqueue.RedisQueue(conf.get('REDIS_QUEUE_NAME'), conf.get('REDIS_HOST')) self.poll_last_seen_chrono_key = 0 self.raise_errors = False