AzureMonitorAgent/ama_tst/modules/custom_logs/check_clconf.py (43 lines of code) (raw):
import os
from error_codes import *
from errors import error_info
from helpers import general_info, geninfo_lookup, run_cmd_output
CLCONF_PATH = "/etc/opt/microsoft/azuremonitoragent/config-cache/fluentbit/td-agent.conf"
def check_customlog_input():
cl_input = geninfo_lookup('CL_INPUT')
if (cl_input == None or len(cl_input) == 0):
error_info.append(("No custom logs file path",))
return ERR_CL_INPUT
for path in cl_input:
try:
check_path = run_cmd_output('ls {0}'.format(path)).strip()
if check_path.endswith('No such file or directory'):
error_info.append((check_path,))
return ERR_CL_INPUT
except Exception as e:
error_info.append((e,))
return ERR_CL_INPUT
return NO_ERROR
def check_customlog_conf():
global general_info
# verify td-agent.conf exists / not empty
if (not os.path.isfile(CLCONF_PATH)):
error_info.append(('file', CLCONF_PATH))
return ERR_FILE_MISSING
if (os.stat(CLCONF_PATH).st_size == 0):
error_info.append((CLCONF_PATH,))
return ERR_FILE_EMPTY
general_info['CL_INPUT'] = []
try:
with open(CLCONF_PATH, 'r') as cl_file:
cl_lines = cl_file.readlines()
for cl_line in cl_lines:
if (cl_line.strip().startswith('log_file')):
cl_log_file = cl_line.strip().split('log_file')[1]
general_info['CL_LOG'] = cl_log_file
if (cl_line.strip().startswith('Path')):
cl_input_path = cl_line.strip().split('Path')[1].strip()
general_info['CL_INPUT'].append(cl_input_path)
except Exception as e:
error_info.append((e,))
return ERR_CL_CONF
return NO_ERROR