33 lines
807 B
Python
33 lines
807 B
Python
|
from datetime import datetime
|
||
|
|
||
|
from django.conf import settings
|
||
|
from elasticsearch import Elasticsearch
|
||
|
|
||
|
from core.util import logs
|
||
|
|
||
|
log = logs.get_logger(__name__)
|
||
|
|
||
|
client = None
|
||
|
|
||
|
|
||
|
def initialise_elasticsearch():
|
||
|
"""
|
||
|
Initialise the Elasticsearch client.
|
||
|
"""
|
||
|
auth = (settings.ELASTICSEARCH_USERNAME, settings.ELASTICSEARCH_PASSWORD)
|
||
|
client = Elasticsearch(
|
||
|
settings.ELASTICSEARCH_HOST, http_auth=auth, verify_certs=False
|
||
|
)
|
||
|
return client
|
||
|
|
||
|
|
||
|
def store_msg(index, msg):
|
||
|
global client
|
||
|
if not client:
|
||
|
client = initialise_elasticsearch()
|
||
|
if "ts" not in msg:
|
||
|
msg["ts"] = datetime.utcnow().isoformat()
|
||
|
result = client.index(index=index, body=msg)
|
||
|
if not result["result"] == "created":
|
||
|
log.error(f"Indexing of '{msg}' failed: {result}")
|