mirror of https://github.com/Aidaho12/haproxy-wi
parent
4a2c235480
commit
64509d1fd4
|
@ -1,7 +1,7 @@
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import json
|
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/'))
|
sys.path.append(os.path.join(sys.path[0], '/var/www/haproxy-wi/app/'))
|
||||||
|
|
||||||
import sql
|
import sql
|
||||||
|
@ -171,9 +171,7 @@ def get_status(server_id, service):
|
||||||
apache_stats_port = sql.get_setting('apache_stats_port')
|
apache_stats_port = sql.get_setting('apache_stats_port')
|
||||||
apache_stats_page = sql.get_setting('apache_stats_page')
|
apache_stats_page = sql.get_setting('apache_stats_page')
|
||||||
cmd = "curl -s -u %s:%s http://%s:%s/%s?auto |grep 'ServerVersion\|Processes\|ServerUptime:'" % \
|
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()
|
servers_with_status = list()
|
||||||
try:
|
try:
|
||||||
out = funct.subprocess_execute(cmd)
|
out = funct.subprocess_execute(cmd)
|
||||||
|
@ -191,7 +189,6 @@ def get_status(server_id, service):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
data = {server_id: {"error": "Cannot get status: " + str(e)}}
|
data = {server_id: {"error": "Cannot get status: " + str(e)}}
|
||||||
|
|
||||||
|
|
||||||
except Exception:
|
except Exception:
|
||||||
data = {server_id: {"error": "Cannot find the server"}}
|
data = {server_id: {"error": "Cannot find the server"}}
|
||||||
return dict(error=data)
|
return dict(error=data)
|
||||||
|
@ -231,7 +228,6 @@ def actions(server_id, action, service):
|
||||||
try:
|
try:
|
||||||
servers = check_permit_to_server(server_id, service=service)
|
servers = check_permit_to_server(server_id, service=service)
|
||||||
|
|
||||||
|
|
||||||
for s in servers:
|
for s in servers:
|
||||||
if service == 'apache':
|
if service == 'apache':
|
||||||
service = funct.get_correct_apache_service_name(server_ip=s[2])
|
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))
|
os.system("/bin/cp %s %s" % (cfg, cfg_for_save))
|
||||||
out = funct.master_slave_upload_and_restart(ip, cfg, save, login=login)
|
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('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,
|
funct.logging(
|
||||||
keep_history=1, service='haproxy')
|
ip, 'Section ' + section_name + ' has been edited via API', haproxywi=1,
|
||||||
|
login=login, keep_history=1, service='haproxy'
|
||||||
|
)
|
||||||
|
|
||||||
if out:
|
if out:
|
||||||
return_mess = 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)
|
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('localhost', " config has been uploaded via API", login=login)
|
||||||
funct.logging(ip, 'Config has been uploaded via API', haproxywi=1, login=login,
|
funct.logging(
|
||||||
keep_history=1, service=service_name)
|
ip, 'Config has been uploaded via API', haproxywi=1, login=login, keep_history=1, service=service_name
|
||||||
|
)
|
||||||
|
|
||||||
if out:
|
if out:
|
||||||
return_mess = out
|
return_mess = out
|
||||||
|
|
10
app/funct.py
10
app/funct.py
|
@ -660,12 +660,12 @@ def show_installation_output(error, output, service):
|
||||||
print('error: ' + error)
|
print('error: ' + error)
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
for l in output:
|
for line in output:
|
||||||
if "UNREACHABLE" in l:
|
if "UNREACHABLE" in line:
|
||||||
print(l + '<br />')
|
print(line + '<br />')
|
||||||
if "Traceback" in l or "FAILED" in l or "error" in l or "ERROR" in l:
|
if ("Traceback", "FAILED", "error", "ERROR") in line:
|
||||||
try:
|
try:
|
||||||
print(l)
|
print(line)
|
||||||
break
|
break
|
||||||
except Exception:
|
except Exception:
|
||||||
print(output)
|
print(output)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import funct
|
import funct
|
||||||
import sql
|
import sql
|
||||||
|
|
||||||
|
@ -10,14 +10,16 @@ form = funct.form
|
||||||
serv = funct.is_ip_or_dns(form.getvalue('serv'))
|
serv = funct.is_ip_or_dns(form.getvalue('serv'))
|
||||||
act = form.getvalue("act")
|
act = form.getvalue("act")
|
||||||
|
|
||||||
if (form.getvalue('new_metrics') or
|
if (
|
||||||
form.getvalue('new_http_metrics') or
|
form.getvalue('new_metrics')
|
||||||
form.getvalue('new_waf_metrics') or
|
or form.getvalue('new_http_metrics')
|
||||||
form.getvalue('new_nginx_metrics') or
|
or form.getvalue('new_waf_metrics')
|
||||||
form.getvalue('metrics_hapwi_ram') or
|
or form.getvalue('new_nginx_metrics')
|
||||||
form.getvalue('metrics_hapwi_cpu') or
|
or form.getvalue('metrics_hapwi_ram')
|
||||||
form.getvalue('getoption') or
|
or form.getvalue('metrics_hapwi_cpu')
|
||||||
form.getvalue('getsavedserver')):
|
or form.getvalue('getoption')
|
||||||
|
or form.getvalue('getsavedserver')
|
||||||
|
):
|
||||||
print('Content-type: application/json\n')
|
print('Content-type: application/json\n')
|
||||||
else:
|
else:
|
||||||
print('Content-type: text/html\n')
|
print('Content-type: text/html\n')
|
||||||
|
@ -670,8 +672,10 @@ if act == "overviewwaf":
|
||||||
import http.cookies
|
import http.cookies
|
||||||
|
|
||||||
from jinja2 import Environment, FileSystemLoader
|
from jinja2 import Environment, FileSystemLoader
|
||||||
env = Environment(loader=FileSystemLoader('templates/ajax'), autoescape=True,
|
env = Environment(
|
||||||
extensions=['jinja2.ext.loopcontrols', 'jinja2.ext.do'])
|
loader=FileSystemLoader('templates/ajax'), autoescape=True,
|
||||||
|
extensions=['jinja2.ext.loopcontrols', 'jinja2.ext.do']
|
||||||
|
)
|
||||||
template = env.get_template('overivewWaf.html')
|
template = env.get_template('overivewWaf.html')
|
||||||
|
|
||||||
servers = sql.select_servers(server=serv)
|
servers = sql.select_servers(server=serv)
|
||||||
|
@ -1466,10 +1470,10 @@ if form.getvalue('install_grafana'):
|
||||||
print(
|
print(
|
||||||
'success: Grafana and Prometheus servers were installed. You can find Grafana on http://' + socket.gethostname() + ':3000<br>')
|
'success: Grafana and Prometheus servers were installed. You can find Grafana on http://' + socket.gethostname() + ':3000<br>')
|
||||||
else:
|
else:
|
||||||
for l in output:
|
for line in output:
|
||||||
if "Traceback" in l or "FAILED" in l:
|
if ("Traceback", "FAILED") in line:
|
||||||
try:
|
try:
|
||||||
print(l)
|
print(line)
|
||||||
break
|
break
|
||||||
except Exception:
|
except Exception:
|
||||||
print(output)
|
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])
|
output, error = funct.subprocess_execute(commands[0])
|
||||||
|
|
||||||
for l in output:
|
for line in output:
|
||||||
if "Traceback" in l or "FAILED" in l:
|
if ("Traceback", "FAILED") in line:
|
||||||
try:
|
try:
|
||||||
print('error: ' + l)
|
print('error: ' + line)
|
||||||
break
|
break
|
||||||
except Exception:
|
except Exception:
|
||||||
print('error: ' + output)
|
print('error: ' + output)
|
||||||
|
@ -1716,10 +1720,10 @@ if form.getvalue('git_backup'):
|
||||||
|
|
||||||
output, error = funct.subprocess_execute(commands[0])
|
output, error = funct.subprocess_execute(commands[0])
|
||||||
|
|
||||||
for l in output:
|
for line in output:
|
||||||
if "Traceback" in l or "FAILED" in l:
|
if ("Traceback", "FAILED") in line:
|
||||||
try:
|
try:
|
||||||
print('error: ' + l)
|
print('error: ' + line)
|
||||||
break
|
break
|
||||||
except Exception:
|
except Exception:
|
||||||
print('error: ' + output)
|
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)
|
template = template.render(gits=gits, sshs=sshs, servers=servers, services=services, new_add=1)
|
||||||
print(template)
|
print(template)
|
||||||
print('success: Git job has been created')
|
print('success: Git job has been created')
|
||||||
funct.logging(server_ip, ' A new git job has been created', haproxywi=1, login=1,
|
funct.logging(
|
||||||
keep_history=1, service=service_name)
|
server_ip, ' A new git job has been created', haproxywi=1, login=1,
|
||||||
|
keep_history=1, service=service_name
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
if sql.delete_git(form.getvalue('git_backup')):
|
if sql.delete_git(form.getvalue('git_backup')):
|
||||||
print('Ok')
|
print('Ok')
|
||||||
|
@ -2077,8 +2083,8 @@ if form.getvalue('bwlists_delete'):
|
||||||
if form.getvalue('get_lists'):
|
if form.getvalue('get_lists'):
|
||||||
list_path = os.path.dirname(os.getcwd()) + "/" + sql.get_setting('lists_path') + "/" + form.getvalue('group') + "/" + form.getvalue('color')
|
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")
|
lists = funct.get_files(dir=list_path, format="lst")
|
||||||
for l in lists:
|
for list in lists:
|
||||||
print(l)
|
print(list)
|
||||||
|
|
||||||
if form.getvalue('get_ldap_email'):
|
if form.getvalue('get_ldap_email'):
|
||||||
username = 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)
|
funct.logging('localhost', error, haproxywi=1)
|
||||||
print(error)
|
print(error)
|
||||||
else:
|
else:
|
||||||
for l in output:
|
for line in output:
|
||||||
if "msg" in l or "FAILED" in l:
|
if "msg" in line or "FAILED" in line:
|
||||||
try:
|
try:
|
||||||
l = l.split(':')[1]
|
line = line.split(':')[1]
|
||||||
l = l.split('"')[1]
|
line = line.split('"')[1]
|
||||||
print(l + "<br>")
|
print(line + "<br>")
|
||||||
break
|
break
|
||||||
except Exception:
|
except Exception:
|
||||||
print(output)
|
print(output)
|
||||||
|
@ -3736,8 +3742,10 @@ if form.getvalue('gcoreworkspace'):
|
||||||
sql.update_provisioning_server_error(stderr, group, workspace, provider)
|
sql.update_provisioning_server_error(stderr, group, workspace, provider)
|
||||||
print('error: ' + stderr)
|
print('error: ' + stderr)
|
||||||
else:
|
else:
|
||||||
if sql.add_server_gcore(project, region, size, network_type, network_name, volume_size, ssh_name, workspace, oss, firewall,
|
if sql.add_server_gcore(
|
||||||
provider, group, 'Creating', delete_on_termination, volume_type):
|
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
|
from jinja2 import Environment, FileSystemLoader
|
||||||
|
|
||||||
|
@ -3771,8 +3779,10 @@ if form.getvalue('gcoreeditworkspace'):
|
||||||
network_name = form.getvalue('gcore_edit_network_name')
|
network_name = form.getvalue('gcore_edit_network_name')
|
||||||
server_id = form.getvalue('server_id')
|
server_id = form.getvalue('server_id')
|
||||||
|
|
||||||
if sql.update_server_gcore(region, size, network_type, network_name, volume_size, ssh_name, workspace, oss, firewall,
|
if sql.update_server_gcore(
|
||||||
provider, group, 'Editing', server_id, delete_on_termination, volume_type, project):
|
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:
|
try:
|
||||||
cmd = 'cd scripts/terraform/ && sudo terraform workspace select ' + workspace + '_' + group + '_gcore'
|
cmd = 'cd scripts/terraform/ && sudo terraform workspace select ' + workspace + '_' + group + '_gcore'
|
||||||
|
|
22
app/sql.py
22
app/sql.py
|
@ -305,8 +305,7 @@ def update_hapwi_server(server_id, alert, metrics, active, service_name):
|
||||||
|
|
||||||
|
|
||||||
def update_server(
|
def update_server(
|
||||||
hostname, group, typeip, enable, master, server_id, cred, port, desc, haproxy, nginx, apache,
|
hostname, group, typeip, enable, master, server_id, cred, port, desc, haproxy, nginx, apache, firewall, protected
|
||||||
firewall, protected
|
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
server_update = Server.update(
|
server_update = Server.update(
|
||||||
|
@ -703,9 +702,10 @@ def get_user_id_by_username(username: str):
|
||||||
|
|
||||||
|
|
||||||
def get_user_role_by_uuid(uuid):
|
def get_user_role_by_uuid(uuid):
|
||||||
query = (Role.select(Role.role_id).join(User, on=(Role.name == User.role)).join(UUID, on=(
|
query = (
|
||||||
User.user_id == UUID.user_id
|
Role.select(Role.role_id).join(User, on=(Role.name == User.role)).join(
|
||||||
)).where(UUID.uuid == uuid))
|
UUID, on=(User.user_id == UUID.user_id)
|
||||||
|
).where(UUID.uuid == uuid))
|
||||||
try:
|
try:
|
||||||
query_res = query.execute()
|
query_res = query.execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -2780,9 +2780,9 @@ def update_provisioning_server_status(status, user_group_id, name, provider_id,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
query = ProvisionedServers.update(status=status).where(
|
query = ProvisionedServers.update(status=status).where(
|
||||||
(ProvisionedServers.name == name) &
|
(ProvisionedServers.name == name)
|
||||||
(ProvisionedServers.group_id == user_group_id) &
|
& (ProvisionedServers.group_id == user_group_id)
|
||||||
(ProvisionedServers.provider_id == provider_id)
|
& (ProvisionedServers.provider_id == provider_id)
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
query.execute()
|
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.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
|
prov_serv.IP, prov_serv.last_error, prov_serv.name_template
|
||||||
).where(
|
).where(
|
||||||
(prov_serv.name == kwargs.get('new')) &
|
(prov_serv.name == kwargs.get('new'))
|
||||||
(prov_serv.group_id == kwargs.get('group')) &
|
& (prov_serv.group_id == kwargs.get('group'))
|
||||||
(prov_serv.type == kwargs.get('type'))
|
& (prov_serv.type == kwargs.get('type'))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue