From 1cd69350fc3450a9df72cc420c96a93cb6e85702 Mon Sep 17 00:00:00 2001 From: Pavel Loginov Date: Sun, 29 Aug 2021 20:27:01 +0600 Subject: [PATCH] v5.2.4.0 Changelog: https://haproxy-wi.org/changelog.py#5_2_4 --- app/funct.py | 17 ++++++++++++++--- app/hapservers.py | 6 +++++- app/metrics.py | 8 ++++++-- config_other/requirements_deb.txt | 1 + requirements.txt | 1 + 5 files changed, 27 insertions(+), 6 deletions(-) diff --git a/app/funct.py b/app/funct.py index ed87d889..1eb30c0e 100644 --- a/app/funct.py +++ b/app/funct.py @@ -124,7 +124,10 @@ def logging(serv, action, **kwargs): try: os.system('sudo chown apache:apache -R ' + log_path) except Exception as e: - pass + try: + os.system('sudo chown www-data:www-data -R ' + log_path) + except Exception: + pass if kwargs.get('alerting') == 1: mess = get_data('date_in_log') + action + "\n" @@ -737,7 +740,11 @@ def update_haproxy_wi(service): service = service.split('_')[0] except Exception: pass - cmd = 'sudo -S yum -y update ' + service +' && sudo systemctl restart ' + service + import distro + if distro.id() == 'ubuntu': + cmd = 'sudo apt-get update && sudo apt-get install ' + service +' && sudo systemctl restart ' + service + else: + cmd = 'sudo -S yum -y update ' + service +' && sudo systemctl restart ' + service output, stderr = subprocess_execute(cmd) print(output) print(stderr) @@ -1341,7 +1348,11 @@ def get_services_status(): if service_name == 'prometheus': cmd = "prometheus --version 2>&1 |grep prometheus|awk '{print $3}'" else: - cmd = "rpm -q " + service_name + "|awk -F\"" + service_name + "\" '{print $2}' |awk -F\".noa\" '{print $1}' |sed 's/-//1' |sed 's/-/./'" + import distro + if distro.id() == 'ubuntu': + cmd = "apt list --installed 2>&1 |grep " + service_name + "|awk '{print $2}'|sed 's/-/./'" + else: + cmd = "rpm -q " + service_name + "|awk -F\"" + service_name + "\" '{print $2}' |awk -F\".noa\" '{print $1}' |sed 's/-//1' |sed 's/-/./'" service_ver, stderr = subprocess_execute(cmd) if service_ver[0] == 'command': diff --git a/app/hapservers.py b/app/hapservers.py index 0193ad57..816e0fb2 100644 --- a/app/hapservers.py +++ b/app/hapservers.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 import funct import sql +import distro from jinja2 import Environment, FileSystemLoader env = Environment(loader=FileSystemLoader('templates/'), autoescape=True) @@ -59,7 +60,10 @@ for s, v in services_name.items(): service_name = s.split('_')[0] else: service_name = s - cmd = "rpm --query " + service_name + "-* |awk -F\"" + service_name + "\" '{print $2}' |awk -F\".noa\" '{print $1}' |sed 's/-//1' |sed 's/-/./'" + if distro.id() == 'ubuntu': + cmd = "apt list --installed 2>&1 |grep " + service_name + else: + cmd = "rpm --query " + 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) try: services.append([s, service_ver[0]]) diff --git a/app/metrics.py b/app/metrics.py index 36aacdff..7877c630 100644 --- a/app/metrics.py +++ b/app/metrics.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 import funct import sql +import distro from jinja2 import Environment, FileSystemLoader env = Environment(loader=FileSystemLoader('templates/'), autoescape=True) template = env.get_template('metrics.html') @@ -12,12 +13,15 @@ print('Content-type: text/html\n') try: user, user_id, role, token, servers, user_services = funct.get_users_params() - cmd = "rpm --query roxy-wi-metrics-* |awk -F\"metrics\" '{print $2}' |awk -F\".noa\" '{print $1}' |sed 's/-//1' |sed 's/-/./'" + 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 = funct.subprocess_execute(cmd) services = '0' if not stderr: - if service_ver[0] == '* is not installed': + if service_ver[0] == '* is not installed' or service_ver == '': servers = '' else: if service == 'nginx': diff --git a/config_other/requirements_deb.txt b/config_other/requirements_deb.txt index 2cf19516..fd15b19f 100644 --- a/config_other/requirements_deb.txt +++ b/config_other/requirements_deb.txt @@ -3,3 +3,4 @@ paramiko-ng>=2.5.0 pytz>=2017.3 pyTelegramBotAPI>=3.6.3 slack-sdk>=3.4.0 +distro>=1.2.0 diff --git a/requirements.txt b/requirements.txt index a11a55b4..61e21805 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,3 +10,4 @@ jinja2>=2.10.1 slack-sdk>=3.4.0 peewee>=3.14.4 PyMySQL>=1.0.2 +distro>=1.2.0