#!python

import sys
import colorama

# from hci_framework.utils import Workers
# from hci_framework.workers import list_workers
from confluent_kafka import Consumer, KafkaError


# workers = Workers(swarm_advertise_addr='192.168.1.54')

# foundation_services = set([
    # 'kafka-service',
    # 'zookeeper-service',
    # 'kafka-logs-service',
    # 'zookeeper-logs-service',
    # 'timescaledb-service',
    # 'jupyterlab-service',
# ])

# system_workers = set([f'{worker}-service-worker' for worker in list_workers()])


########################################################################
class Logs:
    """"""

    # ----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        conf = {
            'bootstrap.servers': '192.168.1.54:19093',
            'group.id': 'foundation_logs',
            'auto.offset.reset': 'latest',
        }

        self.consumer = Consumer(conf)
        self.subscribe()

        try:
            while True:
                msg = self.consumer.poll(timeout=1)

                if msg:
                    print(f'{msg.value().decode("utf-8")}')

        except KeyboardInterrupt:
            pass
        finally:
            self.consumer.close()

    # ----------------------------------------------------------------------
    def subscribe(self):
        """"""
        topics = list(filter(lambda topic: not topic.startswith('__'), self.consumer.list_topics().topics.keys()))
        self.consumer.subscribe(topics)


if __name__ == '__main__':
    Logs()
