AzureMonitorAgent/ama_tst/modules/syslog_tst/check_conf.py (32 lines of code) (raw):

import os from error_codes import * from errors import error_info from helpers import geninfo_lookup, run_cmd_output CONF_ACCESS_CMD = 'sudo -u syslog test -r {0}; echo "$?"' SOCKET_ACCESS_CMD = 'sudo -u syslog test -{0} {1}; echo "$?"' AMA_SOCKET = "/run/azuremonitoragent/default_syslog.socket" def check_conf_files(): # update syslog destination path with correct location syslog_dest = geninfo_lookup('SYSLOG_DEST') if (syslog_dest == None): return ERR_SYSLOG # verify syslog destination exists / not empty / accessible by syslog user if (not os.path.isfile(syslog_dest)): error_info.append(('file', syslog_dest)) return ERR_FILE_MISSING if (os.stat(syslog_dest).st_size == 0): error_info.append((syslog_dest,)) return ERR_FILE_EMPTY if (run_cmd_output(CONF_ACCESS_CMD.format(syslog_dest)).strip() != '0'): error_info.append(('file', syslog_dest, 'read')) return ERR_CONF_FILE_PERMISSION return NO_ERROR def check_socket(): if (not os.path.exists(AMA_SOCKET)): error_info.append(('socket', AMA_SOCKET)) return ERR_FILE_MISSING if (run_cmd_output(SOCKET_ACCESS_CMD.format('r', AMA_SOCKET)).strip() != '0'): error_info.append(('socket', AMA_SOCKET, 'read')) return ERR_CONF_FILE_PERMISSION if (run_cmd_output(SOCKET_ACCESS_CMD.format('w', AMA_SOCKET)).strip() != '0'): error_info.append(('socket', AMA_SOCKET, 'write')) return ERR_CONF_FILE_PERMISSION return NO_ERROR