AzureMonitorAgent/ama_tst/modules/install/install.py (74 lines of code) (raw):

import os from error_codes import * from errors import error_info, is_error, print_errors from .check_os import check_os from .check_pkgs import check_packages, check_syslog from .check_ama import check_ama from helpers import find_package_manager def check_space(): """ check space in MB for each main directory """ dirnames = ["/etc", "/opt", "/var"] for dirname in dirnames: space = os.statvfs(dirname) free_space = space.f_bavail * space.f_frsize / 1024 / 1024 if (free_space < 500): error_info.append((dirname, free_space)) return ERR_FREE_SPACE return NO_ERROR def check_pkg_manager(): pkg_manager = find_package_manager() if (pkg_manager == ""): return ERR_PKG_MANAGER return NO_ERROR def check_syslog_user(): with open('/etc/passwd', 'r') as fp: for line in fp: if line.startswith('syslog:'): return NO_ERROR return ERR_SYSLOG_USER def check_installation(interactive, err_codes=True, prev_success=NO_ERROR): """ check all packages are installed """ print("CHECKING INSTALLATION...") success = prev_success # check Supported OS / version print("Checking if running a supported OS version...") checked_os = check_os() if (is_error(checked_os)): return print_errors(checked_os) else: success = print_errors(checked_os) # check Available disk space print("Checking if enough disk space is available...") checked_space = check_space() if (is_error(checked_space)): return print_errors(checked_space) else: success = print_errors(checked_space) # check Package manager (dpkg/rpm) print("Checking if machine has a supported package manager...") checked_pkg_manager = check_pkg_manager() if (is_error(checked_pkg_manager)): return print_errors(checked_pkg_manager) else: success = print_errors(checked_pkg_manager) # check package + subcomponents installation states print("Checking if packages and subcomponents are installed correctly...") checked_packages = check_packages() if (is_error(checked_packages)): return print_errors(checked_packages) else: success = print_errors(checked_packages) # check AMA version installed print("Checking if running a supported version of AMA...") checked_ama = check_ama(interactive) if (is_error(checked_ama)): return print_errors(checked_ama) else: success = print_errors(checked_ama) # check Existence of rsyslog or syslog-ng print("Checking if rsyslog or syslog-ng exists...") checked_syslog = check_syslog() if (is_error(checked_syslog)): return print_errors(checked_syslog) else: success = print_errors(checked_syslog) # check Syslog user created successfully print("Checking if syslog user exists...") checked_syslog_user = check_syslog_user() if (is_error(checked_syslog_user)): return print_errors(checked_syslog_user) else: success = print_errors(checked_syslog_user) print("============================================") return success