32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
import os
|
|
from pathlib import Path
|
|
|
|
from django.conf import settings
|
|
from django.core.management.base import BaseCommand
|
|
from django.template import Template, Context
|
|
|
|
ELK_URL = getattr(settings, 'ELASTIC_URL', 'localhost:9200')
|
|
ELK_LOGIN = getattr(settings, 'ELK_LOGIN', 'elastic')
|
|
ELK_PASS = getattr(settings, 'ELK_PASS', 'changeme')
|
|
VECTOR_CONFIG_DIR = getattr(settings, 'LOGSTASH_CONFIG_DIR')
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = 'Load default Vector configs'
|
|
|
|
def handle(self, *args, **options):
|
|
templates_path = Path(os.path.abspath(__file__)).parents[0] / 'templates'
|
|
context = Context({
|
|
"elastic_url": ELK_URL,
|
|
"elastic_login": ELK_LOGIN,
|
|
"elastic_password": ELK_PASS,
|
|
})
|
|
Path(VECTOR_CONFIG_DIR).mkdir(exist_ok=True)
|
|
|
|
for template in os.listdir(templates_path):
|
|
with open(f"{templates_path}/{template}", 'r') as template_file:
|
|
template_text = template_file.read()
|
|
config_content = Template(template_text).render(context)
|
|
with open(os.path.join(VECTOR_CONFIG_DIR, template), 'w') as f:
|
|
f.write(config_content)
|
|
print(f'Created {template}')
|