Pavel Loginov 2022-05-25 16:55:45 +03:00
parent 4a2c235480
commit 64509d1fd4
4 changed files with 106 additions and 97 deletions

View File

@ -1,7 +1,7 @@
import os
import sys
import json
from bottle import route, run, hook, response, request, post
from bottle import request
sys.path.append(os.path.join(sys.path[0], '/var/www/haproxy-wi/app/'))
import sql
@ -171,9 +171,7 @@ def get_status(server_id, service):
apache_stats_port = sql.get_setting('apache_stats_port')
apache_stats_page = sql.get_setting('apache_stats_page')
cmd = "curl -s -u %s:%s http://%s:%s/%s?auto |grep 'ServerVersion\|Processes\|ServerUptime:'" % \
(
apache_stats_user, apache_stats_password, s[2], apache_stats_port, apache_stats_page
)
(apache_stats_user, apache_stats_password, s[2], apache_stats_port, apache_stats_page)
servers_with_status = list()
try:
out = funct.subprocess_execute(cmd)
@ -191,7 +189,6 @@ def get_status(server_id, service):
except Exception as e:
data = {server_id: {"error": "Cannot get status: " + str(e)}}
except Exception:
data = {server_id: {"error": "Cannot find the server"}}
return dict(error=data)
@ -231,7 +228,6 @@ def actions(server_id, action, service):
try:
servers = check_permit_to_server(server_id, service=service)
for s in servers:
if service == 'apache':
service = funct.get_correct_apache_service_name(server_ip=s[2])
@ -363,8 +359,10 @@ def edit_section(server_id):
os.system("/bin/cp %s %s" % (cfg, cfg_for_save))
out = funct.master_slave_upload_and_restart(ip, cfg, save, login=login)
funct.logging('localhost', " section " + section_name + " has been edited via API", login=login)
funct.logging(ip, 'Section ' + section_name + ' has been edited via API', haproxywi=1, login=login,
keep_history=1, service='haproxy')
funct.logging(
ip, 'Section ' + section_name + ' has been edited via API', haproxywi=1,
login=login, keep_history=1, service='haproxy'
)
if out:
return_mess = out
@ -432,8 +430,9 @@ def upload_config(server_id, **kwargs):
out = funct.master_slave_upload_and_restart(ip, cfg, save, login=login)
funct.logging('localhost', " config has been uploaded via API", login=login)
funct.logging(ip, 'Config has been uploaded via API', haproxywi=1, login=login,
keep_history=1, service=service_name)
funct.logging(
ip, 'Config has been uploaded via API', haproxywi=1, login=login, keep_history=1, service=service_name
)
if out:
return_mess = out

View File

@ -660,12 +660,12 @@ def show_installation_output(error, output, service):
print('error: ' + error)
return False
else:
for l in output:
if "UNREACHABLE" in l:
print(l + '<br />')
if "Traceback" in l or "FAILED" in l or "error" in l or "ERROR" in l:
for line in output:
if "UNREACHABLE" in line:
print(line + '<br />')
if ("Traceback", "FAILED", "error", "ERROR") in line:
try:
print(l)
print(line)
break
except Exception:
print(output)

View File

@ -1,8 +1,8 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import sys
import funct
import sql
@ -10,14 +10,16 @@ form = funct.form
serv = funct.is_ip_or_dns(form.getvalue('serv'))
act = form.getvalue("act")
if (form.getvalue('new_metrics') or
form.getvalue('new_http_metrics') or
form.getvalue('new_waf_metrics') or
form.getvalue('new_nginx_metrics') or
form.getvalue('metrics_hapwi_ram') or
form.getvalue('metrics_hapwi_cpu') or
form.getvalue('getoption') or
form.getvalue('getsavedserver')):
if (
form.getvalue('new_metrics')
or form.getvalue('new_http_metrics')
or form.getvalue('new_waf_metrics')
or form.getvalue('new_nginx_metrics')
or form.getvalue('metrics_hapwi_ram')
or form.getvalue('metrics_hapwi_cpu')
or form.getvalue('getoption')
or form.getvalue('getsavedserver')
):
print('Content-type: application/json\n')
else:
print('Content-type: text/html\n')
@ -670,8 +672,10 @@ if act == "overviewwaf":
import http.cookies
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates/ajax'), autoescape=True,
extensions=['jinja2.ext.loopcontrols', 'jinja2.ext.do'])
env = Environment(
loader=FileSystemLoader('templates/ajax'), autoescape=True,
extensions=['jinja2.ext.loopcontrols', 'jinja2.ext.do']
)
template = env.get_template('overivewWaf.html')
servers = sql.select_servers(server=serv)
@ -1466,10 +1470,10 @@ if form.getvalue('install_grafana'):
print(
'success: Grafana and Prometheus servers were installed. You can find Grafana on http://' + socket.gethostname() + ':3000<br>')
else:
for l in output:
if "Traceback" in l or "FAILED" in l:
for line in output:
if ("Traceback", "FAILED") in line:
try:
print(l)
print(line)
break
except Exception:
print(output)
@ -1639,10 +1643,10 @@ if form.getvalue('backup') or form.getvalue('deljob') or form.getvalue('backupup
output, error = funct.subprocess_execute(commands[0])
for l in output:
if "Traceback" in l or "FAILED" in l:
for line in output:
if ("Traceback", "FAILED") in line:
try:
print('error: ' + l)
print('error: ' + line)
break
except Exception:
print('error: ' + output)
@ -1716,10 +1720,10 @@ if form.getvalue('git_backup'):
output, error = funct.subprocess_execute(commands[0])
for l in output:
if "Traceback" in l or "FAILED" in l:
for line in output:
if ("Traceback", "FAILED") in line:
try:
print('error: ' + l)
print('error: ' + line)
break
except Exception:
print('error: ' + output)
@ -1740,8 +1744,10 @@ if form.getvalue('git_backup'):
template = template.render(gits=gits, sshs=sshs, servers=servers, services=services, new_add=1)
print(template)
print('success: Git job has been created')
funct.logging(server_ip, ' A new git job has been created', haproxywi=1, login=1,
keep_history=1, service=service_name)
funct.logging(
server_ip, ' A new git job has been created', haproxywi=1, login=1,
keep_history=1, service=service_name
)
else:
if sql.delete_git(form.getvalue('git_backup')):
print('Ok')
@ -2077,8 +2083,8 @@ if form.getvalue('bwlists_delete'):
if form.getvalue('get_lists'):
list_path = os.path.dirname(os.getcwd()) + "/" + sql.get_setting('lists_path') + "/" + form.getvalue('group') + "/" + form.getvalue('color')
lists = funct.get_files(dir=list_path, format="lst")
for l in lists:
print(l)
for list in lists:
print(list)
if form.getvalue('get_ldap_email'):
username = form.getvalue('get_ldap_email')
@ -2860,12 +2866,12 @@ if form.getvalue('lets_domain'):
funct.logging('localhost', error, haproxywi=1)
print(error)
else:
for l in output:
if "msg" in l or "FAILED" in l:
for line in output:
if "msg" in line or "FAILED" in line:
try:
l = l.split(':')[1]
l = l.split('"')[1]
print(l + "<br>")
line = line.split(':')[1]
line = line.split('"')[1]
print(line + "<br>")
break
except Exception:
print(output)
@ -3736,8 +3742,10 @@ if form.getvalue('gcoreworkspace'):
sql.update_provisioning_server_error(stderr, group, workspace, provider)
print('error: ' + stderr)
else:
if sql.add_server_gcore(project, region, size, network_type, network_name, volume_size, ssh_name, workspace, oss, firewall,
provider, group, 'Creating', delete_on_termination, volume_type):
if sql.add_server_gcore(
project, region, size, network_type, network_name, volume_size, ssh_name, workspace, oss, firewall,
provider, group, 'Creating', delete_on_termination, volume_type
):
from jinja2 import Environment, FileSystemLoader
@ -3771,8 +3779,10 @@ if form.getvalue('gcoreeditworkspace'):
network_name = form.getvalue('gcore_edit_network_name')
server_id = form.getvalue('server_id')
if sql.update_server_gcore(region, size, network_type, network_name, volume_size, ssh_name, workspace, oss, firewall,
provider, group, 'Editing', server_id, delete_on_termination, volume_type, project):
if sql.update_server_gcore(
region, size, network_type, network_name, volume_size, ssh_name, workspace, oss, firewall,
provider, group, 'Editing', server_id, delete_on_termination, volume_type, project
):
try:
cmd = 'cd scripts/terraform/ && sudo terraform workspace select ' + workspace + '_' + group + '_gcore'

View File

@ -305,8 +305,7 @@ def update_hapwi_server(server_id, alert, metrics, active, service_name):
def update_server(
hostname, group, typeip, enable, master, server_id, cred, port, desc, haproxy, nginx, apache,
firewall, protected
hostname, group, typeip, enable, master, server_id, cred, port, desc, haproxy, nginx, apache, firewall, protected
):
try:
server_update = Server.update(
@ -703,9 +702,10 @@ def get_user_id_by_username(username: str):
def get_user_role_by_uuid(uuid):
query = (Role.select(Role.role_id).join(User, on=(Role.name == User.role)).join(UUID, on=(
User.user_id == UUID.user_id
)).where(UUID.uuid == uuid))
query = (
Role.select(Role.role_id).join(User, on=(Role.name == User.role)).join(
UUID, on=(User.user_id == UUID.user_id)
).where(UUID.uuid == uuid))
try:
query_res = query.execute()
except Exception as e:
@ -2780,9 +2780,9 @@ def update_provisioning_server_status(status, user_group_id, name, provider_id,
)
else:
query = ProvisionedServers.update(status=status).where(
(ProvisionedServers.name == name) &
(ProvisionedServers.group_id == user_group_id) &
(ProvisionedServers.provider_id == provider_id)
(ProvisionedServers.name == name)
& (ProvisionedServers.group_id == user_group_id)
& (ProvisionedServers.provider_id == provider_id)
)
try:
query.execute()
@ -2882,9 +2882,9 @@ def select_provisioned_servers(**kwargs):
prov_serv.instance_type, prov_serv.status, prov_serv.date, prov_serv.region, prov_serv.os,
prov_serv.IP, prov_serv.last_error, prov_serv.name_template
).where(
(prov_serv.name == kwargs.get('new')) &
(prov_serv.group_id == kwargs.get('group')) &
(prov_serv.type == kwargs.get('type'))
(prov_serv.name == kwargs.get('new'))
& (prov_serv.group_id == kwargs.get('group'))
& (prov_serv.type == kwargs.get('type'))
)
)
else: