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}")
|