34 lines
856 B
Plaintext
34 lines
856 B
Plaintext
|
#!/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()
|