Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
 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