59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import time
|
|
|
|
import requests
|
|
|
|
# Wait
|
|
# time.sleep(90)
|
|
|
|
auth = requests.auth.HTTPBasicAuth("elastic", "changeme")
|
|
|
|
|
|
def check_elastic():
|
|
response = None
|
|
try:
|
|
response = requests.get("http://localhost:9200/_cluster/health", auth=auth)
|
|
except requests.ConnectionError:
|
|
return False
|
|
|
|
return response.status_code == 200
|
|
|
|
|
|
def set_index(url: str, file: str):
|
|
with open(file, 'r') as f:
|
|
data = f.read()
|
|
headers = {'Content-Type': 'application/json'}
|
|
response = requests.put(url, headers=headers, auth=auth, data=data)
|
|
|
|
return response.status_code == 200 and response.json()['acknowledged'] == True
|
|
|
|
|
|
# Wait for elastic ready
|
|
counter = 0
|
|
while counter < 100:
|
|
if not check_elastic():
|
|
time.sleep(1)
|
|
else:
|
|
break
|
|
|
|
print("Installing index")
|
|
|
|
data = [
|
|
{"url": "http://localhost:9200/_component_template/normalized_component",
|
|
"file": "../compose/config/elk/elasticsearch/mapping/normalized-component.json"},
|
|
{"url": "http://localhost:9200/_index_template/normalized",
|
|
"file": "../compose/config/elk/elasticsearch/mapping/normalized-index-template.json"},
|
|
{"url": "http://localhost:9200/_component_template/aggregated_component",
|
|
"file": "../compose/config/elk/elasticsearch/mapping/aggregated-component.json"},
|
|
{"url": "http://localhost:9200/_index_template/aggregated",
|
|
"file": "../compose/config/elk/elasticsearch/mapping/aggregated-index-teplate.json"},
|
|
]
|
|
|
|
for cur in data:
|
|
if not set_index(cur['url'], cur['file']):
|
|
print(f"Can't set index {cur['file']}")
|
|
exit(1)
|
|
|
|
print("All done")
|
|
exit(0)
|