#!/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()