#!/usr/bin/env python3 # -*- coding: utf-8 -*- import funct import sql from jinja2 import Environment, FileSystemLoader env = Environment(loader=FileSystemLoader('templates/'), autoescape=True) template = env.get_template('admin.html') form = funct.form print('Content-type: text/html\n') funct.check_login() funct.page_for_admin() try: user, user_id, role, token, servers = funct.get_users_params() users = sql.select_users() settings = sql.get_setting('', all=1) ldap_enable = sql.get_setting('ldap_enable') grafana, stderr = funct.subprocess_execute("service grafana-server status |grep Active |awk '{print $1}'") services = [] services_name = {'checker_haproxy':'Master backends checker service', 'keep_alive':'Auto start service', 'metrics_haproxy':'Master metrics service', 'prometheus':'Prometheus service', 'grafana-server':'Grafana service', 'smon':'Simple monitoring network ports', 'fail2ban': 'Fail2ban service'} for s, v in services_name.items(): cmd = "systemctl status %s |grep Act |awk '{print $2}'" %s status, stderr = funct.subprocess_execute(cmd) if s != 'keep_alive': service_name = s.split('_')[0] else: service_name = s cmd = "rpm --query haproxy-wi-"+service_name+"-* |awk -F\""+service_name+"\" '{print $2}' |awk -F\".noa\" '{print $1}' |sed 's/-//1' |sed 's/-/./'" service_ver, stderr = funct.subprocess_execute(cmd) services.append([s, status, v, service_ver[0]]) except: pass template = template.render(title = "Admin area: Manage users", role = role, user = user, users = users, groups = sql.select_groups(), servers = sql.select_servers(full=1), roles = sql.select_roles(), masters = sql.select_servers(get_master_servers=1), sshs = sql.select_ssh(), telegrams = sql.select_telegram(), token = token, versions = funct.versions(), checker_ver = funct.check_new_version(service='checker'), smon_ver = funct.check_new_version(service='smon'), metrics_ver = funct.check_new_version(service='metrics'), keep_ver = funct.check_new_version(service='keep'), settings = settings, backups = sql.select_backups(), services = services, grafana = ''.join(grafana), page = "users.py", ldap_enable = ldap_enable) print(template)