old_console/inputs/services/delete_input.py
2024-11-02 14:12:45 +03:00

30 lines
1.1 KiB
Python

import logging
import os
from rest_framework import status
from rest_framework.response import Response
from inputs.constants import LOGSTASH_CONFIG_DIR
from inputs.models import LogInput
_log = logging.getLogger(__name__)
def delete_input(kwargs):
try:
log_input = LogInput.objects.get(pk=kwargs.get('pk'))
if log_input.config_file_name:
log_input.delete()
try:
os.remove(os.path.join(LOGSTASH_CONFIG_DIR,
log_input.config_file_name))
_log.info(f'Removed file [{log_input.config_file_name}]')
return Response(status=status.HTTP_200_OK)
except IOError:
_log.warning(
f'Try to remove log input pk {log_input.pk} but file {log_input.config_file_name} does not exist')
return Response(status=status.HTTP_417_EXPECTATION_FAILED)
except LogInput.DoesNotExist:
_log.error(f"Loginput with pk {kwargs.get('pk')} did not find")
return Response(status=status.HTTP_404_NOT_FOUND)