#!/usr/bin/env python3
'''
Docker helper script. Blocks until the ElasticSearch service is ready.
'''
import logging
import time
import elasticsearch
from szurubooru import config, errors


def main():
    print('Looking for ElasticSearch connection...')
    logging.basicConfig(level=logging.ERROR)
    es = elasticsearch.Elasticsearch([{
        'host': config.config['elasticsearch']['host'],
        'port': config.config['elasticsearch']['port'],
    }])

    TIMEOUT = 30
    DELAY = 0.1
    for _ in range(int(TIMEOUT / DELAY)):
        try:
            es.cluster.health(wait_for_status='yellow')
            print('Connected to ElasticSearch!')
            return
        except Exception:
            time.sleep(DELAY)
            pass
    raise errors.ThirdPartyError('Error connecting to ElasticSearch')


if __name__ == '__main__':
    main()