mirror of https://github.com/Aidaho12/haproxy-wi
64 lines
2.3 KiB
Python
64 lines
2.3 KiB
Python
#!/usr/bin/env python3
|
|
import distro
|
|
|
|
import modules.db.sql as sql
|
|
import modules.common.common as common
|
|
import modules.server.server as server_mod
|
|
import modules.roxywi.auth as roxywi_auth
|
|
import modules.roxywi.common as roxywi_common
|
|
|
|
from jinja2 import Environment, FileSystemLoader
|
|
env = Environment(loader=FileSystemLoader('templates/'), autoescape=True)
|
|
template = env.get_template('metrics.html')
|
|
form = common.form
|
|
service = form.getvalue('service')
|
|
service_desc = ''
|
|
|
|
print('Content-type: text/html\n')
|
|
|
|
user_params = roxywi_common.get_users_params()
|
|
|
|
roxywi_common.check_user_group()
|
|
|
|
try:
|
|
if distro.id() == 'ubuntu':
|
|
cmd = "apt list --installed 2>&1 |grep roxy-wi-metrics"
|
|
else:
|
|
cmd = "rpm -q roxy-wi-metrics-* |awk -F\"metrics\" '{print $2}' |awk -F\".noa\" '{print $1}' |sed 's/-//1' |sed 's/-/./'"
|
|
service_ver, stderr = server_mod.subprocess_execute(cmd)
|
|
services = '0'
|
|
|
|
if not stderr:
|
|
if service_ver[0] == ' is not installed' or service_ver == '':
|
|
servers = ''
|
|
else:
|
|
service_desc = sql.select_service(service)
|
|
|
|
if service == 'nginx':
|
|
if roxywi_auth.check_login(user_params['user_uuid'], user_params['token'], service=2):
|
|
user_params['servers'] = sql.select_nginx_servers_metrics_for_master()
|
|
elif service == 'apache':
|
|
if roxywi_auth.check_login(user_params['user_uuid'], user_params['token'], service=4):
|
|
user_params['servers'] = sql.select_apache_servers_metrics_for_master()
|
|
else:
|
|
if roxywi_auth.check_login(user_params['user_uuid'], user_params['token'], service=1):
|
|
group_id = roxywi_common.get_user_group(id=1)
|
|
user_params['servers'] = sql.select_servers_metrics(group_id)
|
|
service = 'haproxy'
|
|
services = '1'
|
|
except Exception:
|
|
pass
|
|
|
|
try:
|
|
user_subscription = roxywi_common.return_user_status()
|
|
except Exception as e:
|
|
user_subscription = roxywi_common.return_unsubscribed_user_status()
|
|
roxywi_common.logging('Roxy-WI server', f'Cannot get a user plan: {e}', roxywi=1)
|
|
|
|
template = template.render(
|
|
h2=1, autorefresh=1, role=user_params['role'], user=user_params['user'], servers=user_params['servers'],
|
|
services=services, user_services=user_params['user_services'], service=service, user_status=user_subscription['user_status'],
|
|
user_plan=user_subscription['user_plan'], token=user_params['token'], lang=user_params['lang'], service_desc=service_desc
|
|
)
|
|
print(template)
|