mirror of https://github.com/Aidaho12/haproxy-wi
parent
85a59b6b2b
commit
56b2c8639b
63
api/api.py
63
api/api.py
|
@ -1,15 +1,15 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
import json
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from bottle import route, run, template, hook, response, request, error
|
from bottle import route, run, hook, response, request, error
|
||||||
|
|
||||||
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||||||
os.chdir(os.path.dirname(os.path.abspath(__file__)))
|
os.chdir(os.path.dirname(os.path.abspath(__file__)))
|
||||||
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 api_funct
|
import api_funct
|
||||||
import json
|
|
||||||
import sql
|
import sql
|
||||||
|
|
||||||
_error_auth = '403 Auth before'
|
_error_auth = '403 Auth before'
|
||||||
|
@ -44,23 +44,23 @@ def index():
|
||||||
data = {
|
data = {
|
||||||
'help': 'show all available endpoints',
|
'help': 'show all available endpoints',
|
||||||
'login': 'get temporarily token. Must be JSON body: login, password and group for which getting token. METHOD: POST',
|
'login': 'get temporarily token. Must be JSON body: login, password and group for which getting token. METHOD: POST',
|
||||||
'servers':'show info about all servers. METHOD: GET',
|
'servers': 'show info about all servers. METHOD: GET',
|
||||||
'servers/status':'show status all HAProxyes. METHOD: GET',
|
'servers/status': 'show status all HAProxyes. METHOD: GET',
|
||||||
'haproxy/<id,hostname,ip>':'show info about the HAProxy by id or hostname or ip. METHOD: GET',
|
'haproxy/<id,hostname,ip>': 'show info about the HAProxy by id or hostname or ip. METHOD: GET',
|
||||||
'haproxy/<id,hostname,ip>/status':'show HAProxy status by id or hostname or ip. METHOD: GET',
|
'haproxy/<id,hostname,ip>/status': 'show HAProxy status by id or hostname or ip. METHOD: GET',
|
||||||
'haproxy/<id,hostname,ip>/runtime':'exec HAProxy runtime commands by id or hostname or ip. Must be JSON body: "command". METHOD: POST',
|
'haproxy/<id,hostname,ip>/runtime': 'exec HAProxy runtime commands by id or hostname or ip. Must be JSON body: "command". METHOD: POST',
|
||||||
'haproxy/<id,hostname,ip>/backends':'show backends by id or hostname or ip. METHOD: GET',
|
'haproxy/<id,hostname,ip>/backends': 'show backends by id or hostname or ip. METHOD: GET',
|
||||||
'haproxy/<id,hostname,ip>/action/start':'start HAProxy service by id or hostname or ip. METHOD: GET',
|
'haproxy/<id,hostname,ip>/action/start': 'start HAProxy service by id or hostname or ip. METHOD: GET',
|
||||||
'haproxy/<id,hostname,ip>/action/stop':'stop HAProxy service by id or hostname or ip. METHOD: GET',
|
'haproxy/<id,hostname,ip>/action/stop': 'stop HAProxy service by id or hostname or ip. METHOD: GET',
|
||||||
'haproxy/<id,hostname,ip>/action/restart':'restart HAProxy service by id or hostname or ip. METHOD: GET',
|
'haproxy/<id,hostname,ip>/action/restart': 'restart HAProxy service by id or hostname or ip. METHOD: GET',
|
||||||
'haproxy/<id,hostname,ip>/config':'get HAProxy config from a server by id or hostname or ip. METHOD: GET',
|
'haproxy/<id,hostname,ip>/config': 'get HAProxy config from a server by id or hostname or ip. METHOD: GET',
|
||||||
'haproxy/<id,hostname,ip>/config':'upload HAProxy config to a server by id or hostname or ip. Headers: action: save/reload/restart. Body must consist a whole HAProxy config. METHOD: POST',
|
'haproxy/<id,hostname,ip>/config': 'upload HAProxy config to a server by id or hostname or ip. Headers: action: save/reload/restart. Body must consist a whole HAProxy config. METHOD: POST',
|
||||||
'haproxy/<id,hostname,ip>/log':'show HAProxy logs by id or hostname or ip. May to have config next Headers: rows(format INT) default: 10 grep, waf(if needs WAF log) default: 0, start_hour(format: 24) default: 00, start_minute, end_hour(format: 24) default: 24, end_minute. METHOD: GET',
|
'haproxy/<id,hostname,ip>/log': 'show HAProxy logs by id or hostname or ip. May to have config next Headers: rows(format INT) default: 10 grep, waf(if needs WAF log) default: 0, start_hour(format: 24) default: 00, start_minute, end_hour(format: 24) default: 24, end_minute. METHOD: GET',
|
||||||
'haproxy/<id,hostname,ip>/section':'show a certain section, headers: section-name. METHOD: GET',
|
'haproxy/<id,hostname,ip>/section': 'show a certain section, headers: section-name. METHOD: GET',
|
||||||
'haproxy/<id,hostname,ip>/section/add':'add a section to the HAProxy config by id or hostname or ip. Has to have config header with section and action header for action after upload. Section header must consist type: listen, frontend, etc. Action header accepts next value: save, test, reload and restart. Can be empty for just save. METHOD: POST',
|
'haproxy/<id,hostname,ip>/section/add': 'add a section to the HAProxy config by id or hostname or ip. Has to have config header with section and action header for action after upload. Section header must consist type: listen, frontend, etc. Action header accepts next value: save, test, reload and restart. Can be empty for just save. METHOD: POST',
|
||||||
'haproxy/<id,hostname,ip>/section/edit':'edit a section in the HAProxy config by id or hostname or ip. Has to have config header with section, action header for action after upload and body of a new section configuration. Section header must consist type: listen, frontend, etc. Action header accepts next value: save, test, reload and restart. Can be empty for just save. METHOD: POST',
|
'haproxy/<id,hostname,ip>/section/edit': 'edit a section in the HAProxy config by id or hostname or ip. Has to have config header with section, action header for action after upload and body of a new section configuration. Section header must consist type: listen, frontend, etc. Action header accepts next value: save, test, reload and restart. Can be empty for just save. METHOD: POST',
|
||||||
'haproxy/<id,hostname,ip>/acl':'add an acl to certain section. Must be JSON body: "section-name", "if", "then", "if_value", "then_value" and "action" for action after upload. Action accepts next value: "save", "test", "reload" and "restart". METHOD: POST',
|
'haproxy/<id,hostname,ip>/acl': 'add an acl to certain section. Must be JSON body: "section-name", "if", "then", "if_value", "then_value" and "action" for action after upload. Action accepts next value: "save", "test", "reload" and "restart". METHOD: POST',
|
||||||
'haproxy/<id,hostname,ip>/acl':'delete an acl to certain section. Must be JSON body: "section-name", "if", "then", "if_value", "then_value" and "action" for action after upload. Action accepts next value: "save", "test", "reload" and "restart". METHOD: DELETE',
|
'haproxy/<id,hostname,ip>/acl': 'delete an acl to certain section. Must be JSON body: "section-name", "if", "then", "if_value", "then_value" and "action" for action after upload. Action accepts next value: "save", "test", "reload" and "restart". METHOD: DELETE',
|
||||||
'nginx/<id,hostname,ip>': 'show info about the NGINX by id or hostname or ip. METHOD: GET',
|
'nginx/<id,hostname,ip>': 'show info about the NGINX by id or hostname or ip. METHOD: GET',
|
||||||
'nginx/<id,hostname,ip>/status': 'show NGINX status by id or hostname or ip. METHOD: GET',
|
'nginx/<id,hostname,ip>/status': 'show NGINX status by id or hostname or ip. METHOD: GET',
|
||||||
'nginx/<id,hostname,ip>/action/start': 'start NGINX service by id or hostname or ip. METHOD: GET',
|
'nginx/<id,hostname,ip>/action/start': 'start NGINX service by id or hostname or ip. METHOD: GET',
|
||||||
|
@ -97,18 +97,18 @@ def get_servers():
|
||||||
|
|
||||||
for s in servers:
|
for s in servers:
|
||||||
data[s[0]] = {
|
data[s[0]] = {
|
||||||
'server_id':s[0],
|
'server_id': s[0],
|
||||||
'hostname':s[1],
|
'hostname': s[1],
|
||||||
'ip':s[2],
|
'ip': s[2],
|
||||||
'group':s[3],
|
'group': s[3],
|
||||||
'virt':s[4],
|
'virt': s[4],
|
||||||
'enable':s[5],
|
'enable': s[5],
|
||||||
'is_master':s[6],
|
'is_master': s[6],
|
||||||
'creds':s[7],
|
'creds': s[7],
|
||||||
'alert':s[8],
|
'alert': s[8],
|
||||||
'metrics':s[9]
|
'metrics': s[9]
|
||||||
}
|
}
|
||||||
except:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return dict(servers=data)
|
return dict(servers=data)
|
||||||
|
@ -231,6 +231,5 @@ def callback(server_id, service):
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
print(sys.path)
|
|
||||||
port = int(os.environ.get('PORT', 8080))
|
port = int(os.environ.get('PORT', 8080))
|
||||||
run(host='0.0.0.0', port=port, debug=True)
|
run(host='0.0.0.0', port=port, debug=True)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import json
|
import json
|
||||||
from bottle import route, run, template, hook, response, request, post
|
from bottle import route, run, hook, response, request, post
|
||||||
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
|
||||||
|
@ -28,17 +28,17 @@ def get_token():
|
||||||
login = login_pass['login']
|
login = login_pass['login']
|
||||||
password_from_user = login_pass['password']
|
password_from_user = login_pass['password']
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return 'error getting credentials: '+str(e)
|
return 'error getting credentials: ' + str(e)
|
||||||
try:
|
try:
|
||||||
group_name = login_pass['group']
|
group_name = login_pass['group']
|
||||||
group_id = sql.get_group_id_by_name(group_name)
|
group_id = sql.get_group_id_by_name(group_name)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return 'error getting group: '+str(e)
|
return 'error getting group: ' + str(e)
|
||||||
try:
|
try:
|
||||||
users = sql.select_users(user=login)
|
users = sql.select_users(user=login)
|
||||||
password = funct.get_hash(password_from_user)
|
password = funct.get_hash(password_from_user)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return 'error one more: '+str(e)
|
return 'error one more: ' + str(e)
|
||||||
|
|
||||||
for user in users:
|
for user in users:
|
||||||
if user.activeuser == 0:
|
if user.activeuser == 0:
|
||||||
|
@ -179,9 +179,12 @@ def get_status(server_id, service):
|
||||||
for k in out:
|
for k in out:
|
||||||
servers_with_status.append(k)
|
servers_with_status.append(k)
|
||||||
json_for_sending = {
|
json_for_sending = {
|
||||||
server_id: {"Version": servers_with_status[0][0].split('/')[1],
|
server_id: {
|
||||||
"Uptime": servers_with_status[0][1].split(':')[1].strip(),
|
"Version": servers_with_status[0][0].split('/')[1],
|
||||||
"Process": servers_with_status[0][2].split(' ')[1]}}
|
"Uptime": servers_with_status[0][1].split(':')[1].strip(),
|
||||||
|
"Process": servers_with_status[0][2].split(' ')[1]
|
||||||
|
}
|
||||||
|
}
|
||||||
data = json_for_sending
|
data = json_for_sending
|
||||||
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)}}
|
||||||
|
@ -230,7 +233,7 @@ def actions(server_id, action, 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])
|
||||||
cmd = [ "sudo systemctl %s %s" % (action, service) ]
|
cmd = ["sudo systemctl %s %s" % (action, service)]
|
||||||
error = funct.ssh_command(s[2], cmd)
|
error = funct.ssh_command(s[2], cmd)
|
||||||
done = error if error else 'done'
|
done = error if error else 'done'
|
||||||
|
|
||||||
|
@ -250,7 +253,7 @@ def runtime(server_id):
|
||||||
action = json_loads['command']
|
action = json_loads['command']
|
||||||
haproxy_sock = sql.get_setting('haproxy_sock')
|
haproxy_sock = sql.get_setting('haproxy_sock')
|
||||||
servers = check_permit_to_server(server_id)
|
servers = check_permit_to_server(server_id)
|
||||||
cmd = [ 'echo "%s" |sudo socat stdio %s' % (action, haproxy_sock) ]
|
cmd = ['echo "%s" |sudo socat stdio %s' % (action, haproxy_sock)]
|
||||||
|
|
||||||
for s in servers:
|
for s in servers:
|
||||||
out = funct.ssh_command(s[2], cmd)
|
out = funct.ssh_command(s[2], cmd)
|
||||||
|
@ -291,9 +294,9 @@ def get_config(server_id, **kwargs):
|
||||||
servers = check_permit_to_server(server_id)
|
servers = check_permit_to_server(server_id)
|
||||||
|
|
||||||
for s in servers:
|
for s in servers:
|
||||||
cfg = '/tmp/'+s[2]+'.cfg'
|
cfg = '/tmp/' + s[2] + '.cfg'
|
||||||
out = funct.get_config(s[2], cfg, service=service, config_file_name=kwargs.get('config_path'))
|
out = funct.get_config(s[2], cfg, service=service, config_file_name=kwargs.get('config_path'))
|
||||||
os.system("sed -i 's/\\n/\n/g' "+cfg)
|
os.system("sed -i 's/\\n/\n/g' " + cfg)
|
||||||
try:
|
try:
|
||||||
conf = open(cfg, "r")
|
conf = open(cfg, "r")
|
||||||
config_read = conf.read()
|
config_read = conf.read()
|
||||||
|
@ -360,7 +363,7 @@ def edit_section(server_id):
|
||||||
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(ip, 'Section ' + section_name + ' has been edited via API', haproxywi=1, login=login,
|
||||||
keep_history=1, service='haproxy')
|
keep_history=1, service='haproxy')
|
||||||
|
|
||||||
if out:
|
if out:
|
||||||
return_mess = out
|
return_mess = out
|
||||||
|
@ -411,7 +414,7 @@ def upload_config(server_id, **kwargs):
|
||||||
|
|
||||||
for s in servers:
|
for s in servers:
|
||||||
ip = s[2]
|
ip = s[2]
|
||||||
cfg = '/tmp/'+ip+'.cfg'
|
cfg = '/tmp/' + ip + '.cfg'
|
||||||
cfg_for_save = configs_dir + ip + "-" + funct.get_data('config') + ".cfg"
|
cfg_for_save = configs_dir + ip + "-" + funct.get_data('config') + ".cfg"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -429,7 +432,7 @@ def upload_config(server_id, **kwargs):
|
||||||
|
|
||||||
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(ip, 'Config has been uploaded via API', haproxywi=1, login=login,
|
||||||
keep_history=1, service=service_name)
|
keep_history=1, service=service_name)
|
||||||
|
|
||||||
if out:
|
if out:
|
||||||
return_mess = out
|
return_mess = out
|
||||||
|
@ -467,7 +470,7 @@ def add_to_config(server_id):
|
||||||
out = funct.get_config(ip, cfg)
|
out = funct.get_config(ip, cfg)
|
||||||
try:
|
try:
|
||||||
with open(cfg, "a") as conf:
|
with open(cfg, "a") as conf:
|
||||||
conf.write('\n'+body+'\n')
|
conf.write('\n' + body + '\n')
|
||||||
|
|
||||||
return_mess = 'section has been added to the config'
|
return_mess = 'section has been added to the config'
|
||||||
os.system("/bin/cp %s %s" % (cfg, cfg_for_save))
|
os.system("/bin/cp %s %s" % (cfg, cfg_for_save))
|
||||||
|
|
85
app/add.py
85
app/add.py
|
@ -16,10 +16,10 @@ funct.check_login(service=1)
|
||||||
funct.page_for_admin(level=3)
|
funct.page_for_admin(level=3)
|
||||||
|
|
||||||
if (
|
if (
|
||||||
form.getvalue('mode') is None and
|
form.getvalue('mode') is None
|
||||||
form.getvalue('new_userlist') is None and
|
and form.getvalue('new_userlist') is None
|
||||||
form.getvalue('peers-name') is None and
|
and form.getvalue('peers-name') is None
|
||||||
form.getvalue('generateconfig') is None
|
and form.getvalue('generateconfig') is None
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
user, user_id, role, token, servers, user_services = funct.get_users_params(haproxy=1)
|
user, user_id, role, token, servers, user_services = funct.get_users_params(haproxy=1)
|
||||||
|
@ -29,14 +29,14 @@ if (
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(str(e))
|
print(str(e))
|
||||||
|
|
||||||
dir = os.path.dirname(os.getcwd())+"/"+sql.get_setting('lists_path')
|
dir = os.path.dirname(os.getcwd())+ "/" + sql.get_setting('lists_path')
|
||||||
white_dir = os.path.dirname(os.getcwd())+"/"+sql.get_setting('lists_path')+"/"+user_group+"/white"
|
white_dir = os.path.dirname(os.getcwd())+ "/" + sql.get_setting('lists_path') + "/" + user_group + "/white"
|
||||||
black_dir = os.path.dirname(os.getcwd())+"/"+sql.get_setting('lists_path')+"/"+user_group+"/black"
|
black_dir = os.path.dirname(os.getcwd()) + "/" + sql.get_setting('lists_path') + "/" + user_group + "/black"
|
||||||
|
|
||||||
if not os.path.exists(dir):
|
if not os.path.exists(dir):
|
||||||
os.makedirs(dir)
|
os.makedirs(dir)
|
||||||
if not os.path.exists(dir+"/"+user_group):
|
if not os.path.exists(dir + "/" + user_group):
|
||||||
os.makedirs(dir+"/"+user_group)
|
os.makedirs(dir + "/" + user_group)
|
||||||
if not os.path.exists(white_dir):
|
if not os.path.exists(white_dir):
|
||||||
os.makedirs(white_dir)
|
os.makedirs(white_dir)
|
||||||
if not os.path.exists(black_dir):
|
if not os.path.exists(black_dir):
|
||||||
|
@ -46,18 +46,18 @@ if (
|
||||||
black_lists = funct.get_files(dir=black_dir, format="lst")
|
black_lists = funct.get_files(dir=black_dir, format="lst")
|
||||||
|
|
||||||
template = template.render(title="Add: ",
|
template = template.render(title="Add: ",
|
||||||
role=role,
|
role=role,
|
||||||
user=user,
|
user=user,
|
||||||
selects=servers,
|
selects=servers,
|
||||||
add=form.getvalue('add'),
|
add=form.getvalue('add'),
|
||||||
conf_add=form.getvalue('conf'),
|
conf_add=form.getvalue('conf'),
|
||||||
group=user_group,
|
group=user_group,
|
||||||
options=sql.select_options(),
|
options=sql.select_options(),
|
||||||
saved_servers=sql.select_saved_servers(),
|
saved_servers=sql.select_saved_servers(),
|
||||||
white_lists=white_lists,
|
white_lists=white_lists,
|
||||||
black_lists=black_lists,
|
black_lists=black_lists,
|
||||||
user_services=user_services,
|
user_services=user_services,
|
||||||
token=token)
|
token=token)
|
||||||
print(template)
|
print(template)
|
||||||
|
|
||||||
elif form.getvalue('mode') is not None:
|
elif form.getvalue('mode') is not None:
|
||||||
|
@ -173,9 +173,9 @@ elif form.getvalue('mode') is not None:
|
||||||
'blacklist') + " }\n"
|
'blacklist') + " }\n"
|
||||||
|
|
||||||
if form.getvalue('cookie'):
|
if form.getvalue('cookie'):
|
||||||
cookie = " cookie "+form.getvalue('cookie_name')
|
cookie = " cookie " + form.getvalue('cookie_name')
|
||||||
if form.getvalue('cookie_domain'):
|
if form.getvalue('cookie_domain'):
|
||||||
cookie += " domain "+form.getvalue('cookie_domain')
|
cookie += " domain " + form.getvalue('cookie_domain')
|
||||||
if form.getvalue('rewrite'):
|
if form.getvalue('rewrite'):
|
||||||
rewrite = form.getvalue('rewrite')
|
rewrite = form.getvalue('rewrite')
|
||||||
else:
|
else:
|
||||||
|
@ -196,10 +196,10 @@ elif form.getvalue('mode') is not None:
|
||||||
dynamic = form.getvalue('dynamic')
|
dynamic = form.getvalue('dynamic')
|
||||||
else:
|
else:
|
||||||
dynamic = ""
|
dynamic = ""
|
||||||
cookie += " "+rewrite+" "+prefix+" "+nocache+" "+postonly+" "+dynamic+"\n"
|
cookie += " " + rewrite + " " + prefix + " " + nocache + " " + postonly + " " + dynamic + "\n"
|
||||||
options_split += cookie
|
options_split += cookie
|
||||||
if form.getvalue('dynamic'):
|
if form.getvalue('dynamic'):
|
||||||
options_split += " dynamic-cookie-key " + form.getvalue('dynamic-cookie-key')+"\n"
|
options_split += " dynamic-cookie-key " + form.getvalue('dynamic-cookie-key') + "\n"
|
||||||
|
|
||||||
if form.getvalue('acl_if'):
|
if form.getvalue('acl_if'):
|
||||||
acl_if = form.getlist('acl_if')
|
acl_if = form.getlist('acl_if')
|
||||||
|
@ -299,18 +299,18 @@ elif form.getvalue('mode') is not None:
|
||||||
port_check_val = port
|
port_check_val = port
|
||||||
|
|
||||||
servers_split += " server {0} {0}:{1}{2} port {6} maxconn {5} {3} {4} \n".format(server,
|
servers_split += " server {0} {0}:{1}{2} port {6} maxconn {5} {3} {4} \n".format(server,
|
||||||
server_port[i],
|
server_port[i],
|
||||||
check,
|
check,
|
||||||
send_proxy_param,
|
send_proxy_param,
|
||||||
backup_param,
|
backup_param,
|
||||||
maxconn_val,
|
maxconn_val,
|
||||||
port_check_val)
|
port_check_val)
|
||||||
else:
|
else:
|
||||||
servers_split += " server-template {0} {1} {2}:{3} {4} \n".format(form.getvalue('prefix'),
|
servers_split += " server-template {0} {1} {2}:{3} {4} \n".format(form.getvalue('prefix'),
|
||||||
form.getvalue('template-number'),
|
form.getvalue('template-number'),
|
||||||
server,
|
server,
|
||||||
server_port[i],
|
server_port[i],
|
||||||
check)
|
check)
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
compression = form.getvalue("compression")
|
compression = form.getvalue("compression")
|
||||||
|
@ -322,20 +322,21 @@ elif form.getvalue('mode') is not None:
|
||||||
if compression == "1" or cache == "2":
|
if compression == "1" or cache == "2":
|
||||||
filter_com = " filter compression\n"
|
filter_com = " filter compression\n"
|
||||||
if cache == "2":
|
if cache == "2":
|
||||||
cache_s = " http-request cache-use "+end_name+"\n http-response cache-store "+end_name+"\n"
|
cache_s = " http-request cache-use " + end_name + "\n http-response cache-store " + end_name + "\n"
|
||||||
cache_set = "cache "+end_name+"\n total-max-size 4\n max-age 240\n"
|
cache_set = "cache " + end_name + "\n total-max-size 4\n max-age 240\n"
|
||||||
if compression == "1":
|
if compression == "1":
|
||||||
compression_s = " compression algo gzip\n compression type text/html text/plain text/css\n"
|
compression_s = " compression algo gzip\n compression type text/html text/plain text/css\n"
|
||||||
|
|
||||||
waf = ""
|
waf = ""
|
||||||
if form.getvalue('waf') is not None:
|
if form.getvalue('waf') is not None:
|
||||||
waf = " filter spoe engine modsecurity config "+haproxy_dir+"/waf.conf\n"
|
waf = " filter spoe engine modsecurity config " + haproxy_dir + "/waf.conf\n"
|
||||||
waf += " http-request deny if { var(txn.modsec.code) -m int gt 0 }\n"
|
waf += " http-request deny if { var(txn.modsec.code) -m int gt 0 }\n"
|
||||||
|
|
||||||
config_add = "\n" + name + "\n" + bind + mode + maxconn + balance + options_split + cache_s + filter_com + compression_s + waf + acl + backend + servers_split + "\n" + cache_set + "\n"
|
config_add = "\n" + name + "\n" + bind + mode + maxconn + balance + options_split + cache_s + filter_com + \
|
||||||
|
compression_s + waf + acl + backend + servers_split + "\n" + cache_set + "\n"
|
||||||
|
|
||||||
if form.getvalue('new_userlist') is not None:
|
if form.getvalue('new_userlist') is not None:
|
||||||
name = "userlist "+form.getvalue('new_userlist') + "\n"
|
name = "userlist " + form.getvalue('new_userlist') + "\n"
|
||||||
|
|
||||||
new_userlist_groups = ""
|
new_userlist_groups = ""
|
||||||
if form.getvalue('userlist-group') is not None:
|
if form.getvalue('userlist-group') is not None:
|
||||||
|
@ -352,10 +353,10 @@ if form.getvalue('new_userlist') is not None:
|
||||||
|
|
||||||
for user in users:
|
for user in users:
|
||||||
try:
|
try:
|
||||||
group = ' groups '+userlist_user_group[i]
|
group = ' groups ' + userlist_user_group[i]
|
||||||
except Exception:
|
except Exception:
|
||||||
group = ''
|
group = ''
|
||||||
new_users_list += " user "+user+" insecure-password " + passwords[i] + group + "\n"
|
new_users_list += " user " + user + " insecure-password " + passwords[i] + group + "\n"
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
config_add = "\n" + name + new_userlist_groups + new_users_list
|
config_add = "\n" + name + new_userlist_groups + new_users_list
|
||||||
|
|
370
app/sql.py
370
app/sql.py
|
@ -123,7 +123,8 @@ def add_setting_for_new_group(group_id):
|
||||||
group_id = str(group_id)
|
group_id = str(group_id)
|
||||||
data_source = [
|
data_source = [
|
||||||
{'param': 'time_zone', 'value': 'UTC', 'section': 'main', 'desc': 'Time Zone', 'group': group_id},
|
{'param': 'time_zone', 'value': 'UTC', 'section': 'main', 'desc': 'Time Zone', 'group': group_id},
|
||||||
{'param': 'proxy', 'value': '', 'section': 'main', 'desc': 'IP address and port of the proxy server . Use proto://ip:port',
|
{'param': 'proxy', 'value': '', 'section': 'main',
|
||||||
|
'desc': 'IP address and port of the proxy server . Use proto://ip:port',
|
||||||
'group': group_id},
|
'group': group_id},
|
||||||
{'param': 'session_ttl', 'value': '5', 'section': 'main', 'desc': 'TTL for a user session (in days)',
|
{'param': 'session_ttl', 'value': '5', 'section': 'main', 'desc': 'TTL for a user session (in days)',
|
||||||
'group': group_id},
|
'group': group_id},
|
||||||
|
@ -141,7 +142,8 @@ def add_setting_for_new_group(group_id):
|
||||||
'desc': 'Enable getting logs from a syslog server; (0 - no, 1 - yes)', 'group': group_id},
|
'desc': 'Enable getting logs from a syslog server; (0 - no, 1 - yes)', 'group': group_id},
|
||||||
{'param': 'syslog_server', 'value': '', 'section': 'logs', 'desc': 'IP address of the syslog_server',
|
{'param': 'syslog_server', 'value': '', 'section': 'logs', 'desc': 'IP address of the syslog_server',
|
||||||
'group': group_id},
|
'group': group_id},
|
||||||
{'param': 'stats_user', 'value': 'admin', 'section': 'haproxy', 'desc': 'Username for accessing HAProxy stats page',
|
{'param': 'stats_user', 'value': 'admin', 'section': 'haproxy',
|
||||||
|
'desc': 'Username for accessing HAProxy stats page',
|
||||||
'group': group_id},
|
'group': group_id},
|
||||||
{'param': 'stats_password', 'value': 'password', 'section': 'haproxy',
|
{'param': 'stats_password', 'value': 'password', 'section': 'haproxy',
|
||||||
'desc': 'Password for accessing HAProxy stats page', 'group': group_id},
|
'desc': 'Password for accessing HAProxy stats page', 'group': group_id},
|
||||||
|
@ -151,9 +153,11 @@ def add_setting_for_new_group(group_id):
|
||||||
'group': group_id},
|
'group': group_id},
|
||||||
{'param': 'haproxy_dir', 'value': '/etc/haproxy', 'section': 'haproxy', 'desc': 'Path to the HAProxy directory',
|
{'param': 'haproxy_dir', 'value': '/etc/haproxy', 'section': 'haproxy', 'desc': 'Path to the HAProxy directory',
|
||||||
'group': group_id},
|
'group': group_id},
|
||||||
{'param': 'haproxy_config_path', 'value': '/etc/haproxy/haproxy.cfg', 'section': 'haproxy', 'desc': 'Path to the HAProxy configuration file',
|
{'param': 'haproxy_config_path', 'value': '/etc/haproxy/haproxy.cfg', 'section': 'haproxy',
|
||||||
|
'desc': 'Path to the HAProxy configuration file',
|
||||||
'group': group_id},
|
'group': group_id},
|
||||||
{'param': 'server_state_file', 'value': '/etc/haproxy/haproxy.state', 'section': 'haproxy', 'desc': 'Path to the HAProxy state file',
|
{'param': 'server_state_file', 'value': '/etc/haproxy/haproxy.state', 'section': 'haproxy',
|
||||||
|
'desc': 'Path to the HAProxy state file',
|
||||||
'group': group_id},
|
'group': group_id},
|
||||||
{'param': 'haproxy_sock', 'value': '/var/run/haproxy.sock', 'section': 'haproxy',
|
{'param': 'haproxy_sock', 'value': '/var/run/haproxy.sock', 'section': 'haproxy',
|
||||||
'desc': 'Path to the HAProxy sock file', 'group': group_id},
|
'desc': 'Path to the HAProxy sock file', 'group': group_id},
|
||||||
|
@ -161,7 +165,8 @@ def add_setting_for_new_group(group_id):
|
||||||
'group': group_id},
|
'group': group_id},
|
||||||
{'param': 'nginx_path_logs', 'value': '/var/log/nginx/', 'section': 'nginx',
|
{'param': 'nginx_path_logs', 'value': '/var/log/nginx/', 'section': 'nginx',
|
||||||
'desc': 'NGINX error log', 'group': group_id},
|
'desc': 'NGINX error log', 'group': group_id},
|
||||||
{'param': 'nginx_stats_user', 'value': 'admin', 'section': 'nginx', 'desc': 'Username for accessing NGINX stats page',
|
{'param': 'nginx_stats_user', 'value': 'admin', 'section': 'nginx',
|
||||||
|
'desc': 'Username for accessing NGINX stats page',
|
||||||
'group': group_id},
|
'group': group_id},
|
||||||
{'param': 'nginx_stats_password', 'value': 'password', 'section': 'nginx',
|
{'param': 'nginx_stats_password', 'value': 'password', 'section': 'nginx',
|
||||||
'desc': 'Password for accessing NGINX stats page', 'group': group_id},
|
'desc': 'Password for accessing NGINX stats page', 'group': group_id},
|
||||||
|
@ -175,22 +180,26 @@ def add_setting_for_new_group(group_id):
|
||||||
'desc': 'Path to the main NGINX configuration file', 'group': group_id},
|
'desc': 'Path to the main NGINX configuration file', 'group': group_id},
|
||||||
{'param': 'ldap_enable', 'value': '0', 'section': 'ldap', 'desc': 'Enable LDAP (1 - yes, 0 - no)',
|
{'param': 'ldap_enable', 'value': '0', 'section': 'ldap', 'desc': 'Enable LDAP (1 - yes, 0 - no)',
|
||||||
'group': group_id},
|
'group': group_id},
|
||||||
{'param': 'ldap_server', 'value': '', 'section': 'ldap', 'desc': 'IP address of the LDAP server', 'group': group_id},
|
{'param': 'ldap_server', 'value': '', 'section': 'ldap', 'desc': 'IP address of the LDAP server',
|
||||||
{'param': 'ldap_port', 'value': '389', 'section': 'ldap', 'desc': 'LDAP port (port 389 or 636 is used by default)',
|
'group': group_id},
|
||||||
|
{'param': 'ldap_port', 'value': '389', 'section': 'ldap',
|
||||||
|
'desc': 'LDAP port (port 389 or 636 is used by default)',
|
||||||
'group': group_id},
|
'group': group_id},
|
||||||
{'param': 'ldap_user', 'value': '', 'section': 'ldap',
|
{'param': 'ldap_user', 'value': '', 'section': 'ldap',
|
||||||
'desc': 'LDAP username. Format: user@domain.com', 'group': group_id},
|
'desc': 'LDAP username. Format: user@domain.com', 'group': group_id},
|
||||||
{'param': 'ldap_password', 'value': '', 'section': 'ldap', 'desc': 'LDAP password', 'group': group_id},
|
{'param': 'ldap_password', 'value': '', 'section': 'ldap', 'desc': 'LDAP password', 'group': group_id},
|
||||||
{'param': 'ldap_base', 'value': '', 'section': 'ldap', 'desc': 'Base domain. Example: dc=domain, dc=com',
|
{'param': 'ldap_base', 'value': '', 'section': 'ldap', 'desc': 'Base domain. Example: dc=domain, dc=com',
|
||||||
'group': group_id},
|
'group': group_id},
|
||||||
{'param': 'ldap_domain', 'value': '', 'section': 'ldap', 'desc': 'LDAP domain for logging in', 'group': group_id},
|
{'param': 'ldap_domain', 'value': '', 'section': 'ldap', 'desc': 'LDAP domain for logging in',
|
||||||
|
'group': group_id},
|
||||||
{'param': 'ldap_class_search', 'value': 'user', 'section': 'ldap', 'desc': 'Class for searching the user',
|
{'param': 'ldap_class_search', 'value': 'user', 'section': 'ldap', 'desc': 'Class for searching the user',
|
||||||
'group': group_id},
|
'group': group_id},
|
||||||
{'param': 'ldap_user_attribute', 'value': 'sAMAccountName', 'section': 'ldap',
|
{'param': 'ldap_user_attribute', 'value': 'sAMAccountName', 'section': 'ldap',
|
||||||
'desc': 'Attribute to search users by', 'group': group_id},
|
'desc': 'Attribute to search users by', 'group': group_id},
|
||||||
{'param': 'ldap_search_field', 'value': 'mail', 'section': 'ldap',
|
{'param': 'ldap_search_field', 'value': 'mail', 'section': 'ldap',
|
||||||
'desc': 'User\'s email address', 'group': group_id},
|
'desc': 'User\'s email address', 'group': group_id},
|
||||||
{'param': 'ldap_type', 'value': '0', 'section': 'ldap', 'desc': 'Use LDAPS (1 - yes, 0 - no)', 'group': group_id},
|
{'param': 'ldap_type', 'value': '0', 'section': 'ldap', 'desc': 'Use LDAPS (1 - yes, 0 - no)',
|
||||||
|
'group': group_id},
|
||||||
{'param': 'apache_path_logs', 'value': '/var/log/httpd/', 'section': 'apache',
|
{'param': 'apache_path_logs', 'value': '/var/log/httpd/', 'section': 'apache',
|
||||||
'desc': 'The path for Apache logs', 'group': group_id},
|
'desc': 'The path for Apache logs', 'group': group_id},
|
||||||
{'param': 'apache_stats_user', 'value': 'admin', 'section': 'apache',
|
{'param': 'apache_stats_user', 'value': 'admin', 'section': 'apache',
|
||||||
|
@ -253,7 +262,8 @@ def update_group(name, descript, group_id):
|
||||||
def add_server(hostname, ip, group, typeip, enable, master, cred, port, desc, haproxy, nginx, apache, firewall):
|
def add_server(hostname, ip, group, typeip, enable, master, cred, port, desc, haproxy, nginx, apache, firewall):
|
||||||
try:
|
try:
|
||||||
Server.insert(hostname=hostname, ip=ip, groups=group, type_ip=typeip, enable=enable, master=master, cred=cred,
|
Server.insert(hostname=hostname, ip=ip, groups=group, type_ip=typeip, enable=enable, master=master, cred=cred,
|
||||||
port=port, desc=desc, haproxy=haproxy, nginx=nginx, apache=apache, firewall_enable=firewall).execute()
|
port=port, desc=desc, haproxy=haproxy, nginx=nginx, apache=apache,
|
||||||
|
firewall_enable=firewall).execute()
|
||||||
return True
|
return True
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
out_error(e)
|
out_error(e)
|
||||||
|
@ -289,7 +299,8 @@ def update_hapwi_server(server_id, alert, metrics, active, service_name):
|
||||||
out_error(e)
|
out_error(e)
|
||||||
|
|
||||||
|
|
||||||
def update_server(hostname, group, typeip, enable, master, server_id, cred, port, desc, haproxy, nginx, apache, firewall, protected):
|
def update_server(hostname, group, typeip, enable, master, server_id, cred, port, desc, haproxy, nginx, apache,
|
||||||
|
firewall, protected):
|
||||||
try:
|
try:
|
||||||
server_update = Server.update(hostname=hostname,
|
server_update = Server.update(hostname=hostname,
|
||||||
groups=group,
|
groups=group,
|
||||||
|
@ -329,21 +340,21 @@ def select_users(**kwargs):
|
||||||
elif kwargs.get("group") is not None:
|
elif kwargs.get("group") is not None:
|
||||||
query = (User.
|
query = (User.
|
||||||
select(
|
select(
|
||||||
User,
|
User,
|
||||||
UserGroups,
|
UserGroups,
|
||||||
Case(0, [((
|
Case(0, [((
|
||||||
User.last_login_date >= funct.get_data('regular', timedelta_minutes_minus=15)
|
User.last_login_date >= funct.get_data('regular', timedelta_minutes_minus=15)
|
||||||
), 0)], 1).alias('last_login')).
|
), 0)], 1).alias('last_login')).
|
||||||
join(UserGroups, on=(User.user_id == UserGroups.user_id)).
|
join(UserGroups, on=(User.user_id == UserGroups.user_id)).
|
||||||
where(UserGroups.user_group_id == kwargs.get("group"))
|
where(UserGroups.user_group_id == kwargs.get("group"))
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
query = User.select(
|
query = User.select(
|
||||||
User,
|
User,
|
||||||
Case(0, [((
|
Case(0, [((
|
||||||
User.last_login_date >= funct.get_data('regular', timedelta_minutes_minus=15)
|
User.last_login_date >= funct.get_data('regular', timedelta_minutes_minus=15)
|
||||||
), 0)], 1).alias('last_login')
|
), 0)], 1).alias('last_login')
|
||||||
).order_by(User.user_id)
|
).order_by(User.user_id)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
query_res = query.execute()
|
query_res = query.execute()
|
||||||
|
@ -490,7 +501,7 @@ def select_server_ip_by_id(server_id):
|
||||||
|
|
||||||
def select_servers(**kwargs):
|
def select_servers(**kwargs):
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
|
|
||||||
if mysql_enable == '1':
|
if mysql_enable == '1':
|
||||||
|
|
||||||
sql = """select * from `servers` where `enable` = 1 ORDER BY servers.groups """
|
sql = """select * from `servers` where `enable` = 1 ORDER BY servers.groups """
|
||||||
|
@ -512,7 +523,8 @@ def select_servers(**kwargs):
|
||||||
if kwargs.get("hostname"):
|
if kwargs.get("hostname"):
|
||||||
sql = """select * from `servers` where `hostname` = '{}' """.format(kwargs.get("hostname"))
|
sql = """select * from `servers` where `hostname` = '{}' """.format(kwargs.get("hostname"))
|
||||||
if kwargs.get("id_hostname"):
|
if kwargs.get("id_hostname"):
|
||||||
sql = """select * from `servers` where `hostname` ='{}' or id = '{}' or ip = '{}'""".format(kwargs.get("id_hostname"), kwargs.get("id_hostname"), kwargs.get("id_hostname"))
|
sql = """select * from `servers` where `hostname` ='{}' or id = '{}' or ip = '{}'""".format(
|
||||||
|
kwargs.get("id_hostname"), kwargs.get("id_hostname"), kwargs.get("id_hostname"))
|
||||||
if kwargs.get("server") and kwargs.get("keep_alive"):
|
if kwargs.get("server") and kwargs.get("keep_alive"):
|
||||||
sql = """select active from `servers` where `ip` = '{}' """.format(kwargs.get("server"))
|
sql = """select active from `servers` where `ip` = '{}' """.format(kwargs.get("server"))
|
||||||
else:
|
else:
|
||||||
|
@ -535,7 +547,8 @@ def select_servers(**kwargs):
|
||||||
if kwargs.get("hostname"):
|
if kwargs.get("hostname"):
|
||||||
sql = """select * from servers where hostname = '{}' """.format(kwargs.get("hostname"))
|
sql = """select * from servers where hostname = '{}' """.format(kwargs.get("hostname"))
|
||||||
if kwargs.get("id_hostname"):
|
if kwargs.get("id_hostname"):
|
||||||
sql = """select * from servers where hostname = '{}' or id = '{}' or ip = '{}'""".format(kwargs.get("id_hostname"), kwargs.get("id_hostname"), kwargs.get("id_hostname"))
|
sql = """select * from servers where hostname = '{}' or id = '{}' or ip = '{}'""".format(
|
||||||
|
kwargs.get("id_hostname"), kwargs.get("id_hostname"), kwargs.get("id_hostname"))
|
||||||
if kwargs.get("server") and kwargs.get("keep_alive"):
|
if kwargs.get("server") and kwargs.get("keep_alive"):
|
||||||
sql = """select active from servers where ip = '{}' """.format(kwargs.get("server"))
|
sql = """select active from servers where ip = '{}' """.format(kwargs.get("server"))
|
||||||
|
|
||||||
|
@ -810,7 +823,7 @@ def get_dick_permit(**kwargs):
|
||||||
ip = ''
|
ip = ''
|
||||||
|
|
||||||
if kwargs.get('virt'):
|
if kwargs.get('virt'):
|
||||||
type_ip = ""
|
type_ip = "and type_ip = 1"
|
||||||
else:
|
else:
|
||||||
type_ip = "and type_ip = 0"
|
type_ip = "and type_ip = 0"
|
||||||
if kwargs.get('disable') == 0:
|
if kwargs.get('disable') == 0:
|
||||||
|
@ -831,16 +844,30 @@ def get_dick_permit(**kwargs):
|
||||||
try:
|
try:
|
||||||
if mysql_enable == '1':
|
if mysql_enable == '1':
|
||||||
if grp == '1' and not only_group:
|
if grp == '1' and not only_group:
|
||||||
sql = """ select * from `servers` order by `pos` desc"""
|
sql = """ select * from `servers` where {} {} {} {} {} {} {} order by `pos` desc""".format(disable,
|
||||||
|
type_ip,
|
||||||
|
nginx,
|
||||||
|
haproxy,
|
||||||
|
keepalived,
|
||||||
|
apache,
|
||||||
|
ip)
|
||||||
else:
|
else:
|
||||||
sql = """ select * from `servers` where `groups` = {group} and ({disable}) {type_ip} {ip} {haproxy} {nginx} {keepalived} {apache} order by `pos` desc
|
sql = """ select * from `servers` where `groups` = {group} and ({disable}) {type_ip} {ip} {haproxy} {nginx} {keepalived} {apache} order by `pos` desc
|
||||||
""".format(group=grp, disable=disable, type_ip=type_ip, ip=ip, haproxy=haproxy, nginx=nginx, keepalived=keepalived, apache=apache)
|
""".format(group=grp, disable=disable, type_ip=type_ip, ip=ip, haproxy=haproxy, nginx=nginx,
|
||||||
|
keepalived=keepalived, apache=apache)
|
||||||
else:
|
else:
|
||||||
if grp == '1' and not only_group:
|
if grp == '1' and not only_group:
|
||||||
sql = """ select * from servers order by pos"""
|
sql = """ select * from servers where {} {} {} {} {} {} {} order by pos""".format(disable,
|
||||||
|
type_ip,
|
||||||
|
nginx,
|
||||||
|
haproxy,
|
||||||
|
keepalived,
|
||||||
|
apache,
|
||||||
|
ip)
|
||||||
else:
|
else:
|
||||||
sql = """ select * from servers where groups = '{group}' and ({disable}) {type_ip} {ip} {haproxy} {nginx} {keepalived} {apache} order by pos
|
sql = """ select * from servers where groups = '{group}' and ({disable}) {type_ip} {ip} {haproxy} {nginx} {keepalived} {apache} order by pos
|
||||||
""".format(group=grp, disable=disable, type_ip=type_ip, ip=ip, haproxy=haproxy, nginx=nginx, keepalived=keepalived, apache=apache)
|
""".format(group=grp, disable=disable, type_ip=type_ip, ip=ip, haproxy=haproxy, nginx=nginx,
|
||||||
|
keepalived=keepalived, apache=apache)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(str(e))
|
print(str(e))
|
||||||
|
@ -955,7 +982,7 @@ def select_backups(**kwargs):
|
||||||
|
|
||||||
def update_backup(server, rserver, rpath, backup_type, time, cred, description, backup_id):
|
def update_backup(server, rserver, rpath, backup_type, time, cred, description, backup_id):
|
||||||
backup_update = Backup.update(server=server, rhost=rserver, rpath=rpath, backup_type=backup_type, time=time,
|
backup_update = Backup.update(server=server, rhost=rserver, rpath=rpath, backup_type=backup_type, time=time,
|
||||||
cred=cred, description=description).where(Backup.id == backup_id)
|
cred=cred, description=description).where(Backup.id == backup_id)
|
||||||
try:
|
try:
|
||||||
backup_update.execute()
|
backup_update.execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -1081,6 +1108,7 @@ def update_slack(token, chanel, group, slack_id):
|
||||||
else:
|
else:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def insert_new_option(saved_option, group):
|
def insert_new_option(saved_option, group):
|
||||||
try:
|
try:
|
||||||
Option.insert(options=saved_option, groups=group).execute()
|
Option.insert(options=saved_option, groups=group).execute()
|
||||||
|
@ -1095,7 +1123,8 @@ def select_options(**kwargs):
|
||||||
if kwargs.get('option'):
|
if kwargs.get('option'):
|
||||||
query = Option.select().where(Option.options == kwargs.get('option'))
|
query = Option.select().where(Option.options == kwargs.get('option'))
|
||||||
elif kwargs.get('group'):
|
elif kwargs.get('group'):
|
||||||
query = Option.select(Option.options).where((Option.groups == kwargs.get('group')) & (Option.options.startswith(kwargs.get('term'))))
|
query = Option.select(Option.options).where(
|
||||||
|
(Option.groups == kwargs.get('group')) & (Option.options.startswith(kwargs.get('term'))))
|
||||||
else:
|
else:
|
||||||
query = Option.select()
|
query = Option.select()
|
||||||
try:
|
try:
|
||||||
|
@ -1187,7 +1216,7 @@ def insert_metrics(serv, curr_con, cur_ssl_con, sess_rate, max_sess_rate):
|
||||||
def insert_metrics_http(serv, http_2xx, http_3xx, http_4xx, http_5xx):
|
def insert_metrics_http(serv, http_2xx, http_3xx, http_4xx, http_5xx):
|
||||||
try:
|
try:
|
||||||
MetricsHttpStatus.insert(serv=serv, ok_ans=http_2xx, redir_ans=http_3xx, not_found_ans=http_4xx,
|
MetricsHttpStatus.insert(serv=serv, ok_ans=http_2xx, redir_ans=http_3xx, not_found_ans=http_4xx,
|
||||||
err_ans=http_5xx, date=funct.get_data('regular')).execute()
|
err_ans=http_5xx, date=funct.get_data('regular')).execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
out_error(e)
|
out_error(e)
|
||||||
|
|
||||||
|
@ -1271,7 +1300,8 @@ def select_waf_metrics(serv, **kwargs):
|
||||||
date_from = "and date > now() - INTERVAL 720 minute group by `date` div 500"
|
date_from = "and date > now() - INTERVAL 720 minute group by `date` div 500"
|
||||||
else:
|
else:
|
||||||
date_from = "and date > now() - INTERVAL 30 minute"
|
date_from = "and date > now() - INTERVAL 30 minute"
|
||||||
sql = """ select * from waf_metrics where serv = '{serv}' {date_from} order by `date` desc limit 60 """.format(serv=serv, date_from=date_from)
|
sql = """ select * from waf_metrics where serv = '{serv}' {date_from} order by `date` desc limit 60 """.format(
|
||||||
|
serv=serv, date_from=date_from)
|
||||||
else:
|
else:
|
||||||
if kwargs.get('time_range') == '60':
|
if kwargs.get('time_range') == '60':
|
||||||
date_from = "and date > datetime('now', '-60 minutes', 'localtime') and rowid % 2 = 0"
|
date_from = "and date > datetime('now', '-60 minutes', 'localtime') and rowid % 2 = 0"
|
||||||
|
@ -1283,7 +1313,8 @@ def select_waf_metrics(serv, **kwargs):
|
||||||
date_from = "and date > datetime('now', '-720 minutes', 'localtime') and rowid % 9 = 0"
|
date_from = "and date > datetime('now', '-720 minutes', 'localtime') and rowid % 9 = 0"
|
||||||
else:
|
else:
|
||||||
date_from = "and date > datetime('now', '-30 minutes', 'localtime')"
|
date_from = "and date > datetime('now', '-30 minutes', 'localtime')"
|
||||||
sql = """ select * from (select * from waf_metrics where serv = '{serv}' {date_from} order by `date`) order by `date` """.format(serv=serv, date_from=date_from)
|
sql = """ select * from (select * from waf_metrics where serv = '{serv}' {date_from} order by `date`) order by `date` """.format(
|
||||||
|
serv=serv, date_from=date_from)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
|
@ -1307,7 +1338,8 @@ def select_nginx_metrics(serv, **kwargs):
|
||||||
date_from = "and date > now() - INTERVAL 720 minute group by `date` div 500"
|
date_from = "and date > now() - INTERVAL 720 minute group by `date` div 500"
|
||||||
else:
|
else:
|
||||||
date_from = "and date > now() - INTERVAL 30 minute"
|
date_from = "and date > now() - INTERVAL 30 minute"
|
||||||
sql = """ select * from nginx_metrics where serv = '{serv}' {date_from} order by `date` desc limit 60 """.format(serv=serv, date_from=date_from)
|
sql = """ select * from nginx_metrics where serv = '{serv}' {date_from} order by `date` desc limit 60 """.format(
|
||||||
|
serv=serv, date_from=date_from)
|
||||||
else:
|
else:
|
||||||
if kwargs.get('time_range') == '60':
|
if kwargs.get('time_range') == '60':
|
||||||
date_from = "and date > datetime('now', '-60 minutes', 'localtime') and rowid % 2 = 0"
|
date_from = "and date > datetime('now', '-60 minutes', 'localtime') and rowid % 2 = 0"
|
||||||
|
@ -1319,7 +1351,8 @@ def select_nginx_metrics(serv, **kwargs):
|
||||||
date_from = "and date > datetime('now', '-720 minutes', 'localtime') and rowid % 9 = 0"
|
date_from = "and date > datetime('now', '-720 minutes', 'localtime') and rowid % 9 = 0"
|
||||||
else:
|
else:
|
||||||
date_from = "and date > datetime('now', '-30 minutes', 'localtime')"
|
date_from = "and date > datetime('now', '-30 minutes', 'localtime')"
|
||||||
sql = """ select * from (select * from nginx_metrics where serv = '{serv}' {date_from} order by `date`) order by `date` """.format(serv=serv, date_from=date_from)
|
sql = """ select * from (select * from nginx_metrics where serv = '{serv}' {date_from} order by `date`) order by `date` """.format(
|
||||||
|
serv=serv, date_from=date_from)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
|
@ -1370,7 +1403,7 @@ def insert_waf_rules(serv):
|
||||||
{'serv': serv, 'rule_name': 'Trojans Protections', 'rule_file': 'modsecurity_crs_45_trojans.conf ',
|
{'serv': serv, 'rule_name': 'Trojans Protections', 'rule_file': 'modsecurity_crs_45_trojans.conf ',
|
||||||
'desc': 'The trojan access detection rules detects access to known Trojans already installed on a server. Uploading of Trojans is part of the Anti-Virus rules and uses external Anti Virus program when uploading files. Detection of Trojans access is especially important in a hosting environment where the actual Trojan upload may be done through valid methods and not through hacking'},
|
'desc': 'The trojan access detection rules detects access to known Trojans already installed on a server. Uploading of Trojans is part of the Anti-Virus rules and uses external Anti Virus program when uploading files. Detection of Trojans access is especially important in a hosting environment where the actual Trojan upload may be done through valid methods and not through hacking'},
|
||||||
{'serv': serv, 'rule_name': 'RFI Protections', 'rule_file': 'modsecurity_crs_46_slr_et_lfi_attacks.conf',
|
{'serv': serv, 'rule_name': 'RFI Protections', 'rule_file': 'modsecurity_crs_46_slr_et_lfi_attacks.conf',
|
||||||
'desc': 'Remote file inclusion is an attack targeting vulnerabilities in web applications that dynamically reference external scripts. The perpetrator’s goal is to exploit the referencing function in an application to upload malware (e.g., backdoor shells) from a remote URL located within a different domain'},
|
'desc': 'Remote file inclusion is an attack targeting vulnerabilities in web applications that dynamically reference external scripts. The perpetrator’s goal is to exploit the referencing function in an application to upload malware (e.g., backdoor shells) from a remote URL located within a different domain'},
|
||||||
{'serv': serv, 'rule_name': 'RFI Protections 2', 'rule_file': 'modsecurity_crs_46_slr_et_rfi_attacks.conf',
|
{'serv': serv, 'rule_name': 'RFI Protections 2', 'rule_file': 'modsecurity_crs_46_slr_et_rfi_attacks.conf',
|
||||||
'desc': 'Remote file inclusion is an attack targeting vulnerabilities in web applications that dynamically reference external scripts. The perpetrator’s goal is to exploit the referencing function in an application to upload malware (e.g., backdoor shells) from a remote URL located within a different domain'},
|
'desc': 'Remote file inclusion is an attack targeting vulnerabilities in web applications that dynamically reference external scripts. The perpetrator’s goal is to exploit the referencing function in an application to upload malware (e.g., backdoor shells) from a remote URL located within a different domain'},
|
||||||
{'serv': serv, 'rule_name': 'SQLi Protections', 'rule_file': 'modsecurity_crs_46_slr_et_sqli_attacks.conf',
|
{'serv': serv, 'rule_name': 'SQLi Protections', 'rule_file': 'modsecurity_crs_46_slr_et_sqli_attacks.conf',
|
||||||
|
@ -1497,7 +1530,8 @@ def select_metrics(serv, **kwargs):
|
||||||
date_from = "and date > now() - INTERVAL 720 minute group by `date` div 500"
|
date_from = "and date > now() - INTERVAL 720 minute group by `date` div 500"
|
||||||
else:
|
else:
|
||||||
date_from = "and date > now() - INTERVAL 30 minute"
|
date_from = "and date > now() - INTERVAL 30 minute"
|
||||||
sql = """ select * from metrics where serv = '{serv}' {date_from} order by `date` asc """.format(serv=serv, date_from=date_from)
|
sql = """ select * from metrics where serv = '{serv}' {date_from} order by `date` asc """.format(serv=serv,
|
||||||
|
date_from=date_from)
|
||||||
else:
|
else:
|
||||||
if kwargs.get('time_range') == '60':
|
if kwargs.get('time_range') == '60':
|
||||||
date_from = "and date > datetime('now', '-60 minutes', 'localtime') and rowid % 2 = 0"
|
date_from = "and date > datetime('now', '-60 minutes', 'localtime') and rowid % 2 = 0"
|
||||||
|
@ -1510,7 +1544,8 @@ def select_metrics(serv, **kwargs):
|
||||||
else:
|
else:
|
||||||
date_from = "and date > datetime('now', '-30 minutes', 'localtime')"
|
date_from = "and date > datetime('now', '-30 minutes', 'localtime')"
|
||||||
|
|
||||||
sql = """ select * from (select * from metrics where serv = '{serv}' {date_from} order by `date`) order by `date` """.format(serv=serv, date_from=date_from)
|
sql = """ select * from (select * from metrics where serv = '{serv}' {date_from} order by `date`) order by `date` """.format(
|
||||||
|
serv=serv, date_from=date_from)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
|
@ -1534,7 +1569,8 @@ def select_metrics_http(serv, **kwargs):
|
||||||
date_from = "and date > now() - INTERVAL 720 minute group by `date` div 500"
|
date_from = "and date > now() - INTERVAL 720 minute group by `date` div 500"
|
||||||
else:
|
else:
|
||||||
date_from = "and date > now() - INTERVAL 30 minute"
|
date_from = "and date > now() - INTERVAL 30 minute"
|
||||||
sql = """ select * from metrics_http_status where serv = '{serv}' {date_from} order by `date` desc """.format(serv=serv, date_from=date_from)
|
sql = """ select * from metrics_http_status where serv = '{serv}' {date_from} order by `date` desc """.format(
|
||||||
|
serv=serv, date_from=date_from)
|
||||||
else:
|
else:
|
||||||
if kwargs.get('time_range') == '60':
|
if kwargs.get('time_range') == '60':
|
||||||
date_from = "and date > datetime('now', '-60 minutes', 'localtime') and rowid % 2 = 0"
|
date_from = "and date > datetime('now', '-60 minutes', 'localtime') and rowid % 2 = 0"
|
||||||
|
@ -1547,7 +1583,8 @@ def select_metrics_http(serv, **kwargs):
|
||||||
else:
|
else:
|
||||||
date_from = "and date > datetime('now', '-30 minutes', 'localtime')"
|
date_from = "and date > datetime('now', '-30 minutes', 'localtime')"
|
||||||
|
|
||||||
sql = """ select * from (select * from metrics_http_status where serv = '{serv}' {date_from} order by `date`) order by `date` """.format(serv=serv, date_from=date_from)
|
sql = """ select * from (select * from metrics_http_status where serv = '{serv}' {date_from} order by `date`) order by `date` """.format(
|
||||||
|
serv=serv, date_from=date_from)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
|
@ -1586,7 +1623,8 @@ def select_servers_metrics():
|
||||||
if group_id == 1:
|
if group_id == 1:
|
||||||
query = Server.select(Server.ip).where((Server.enable == 1) & (Server.metrics == 1))
|
query = Server.select(Server.ip).where((Server.enable == 1) & (Server.metrics == 1))
|
||||||
else:
|
else:
|
||||||
query = Server.select(Server.ip).where((Server.enable == 1) & (Server.groups == group_id) & (Server.metrics == 1))
|
query = Server.select(Server.ip).where(
|
||||||
|
(Server.enable == 1) & (Server.groups == group_id) & (Server.metrics == 1))
|
||||||
try:
|
try:
|
||||||
query_res = query.execute()
|
query_res = query.execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -1606,58 +1644,58 @@ def select_table_metrics():
|
||||||
groups = "and servers.groups = '{group}' ".format(group=group_id)
|
groups = "and servers.groups = '{group}' ".format(group=group_id)
|
||||||
if mysql_enable == '1':
|
if mysql_enable == '1':
|
||||||
sql = """
|
sql = """
|
||||||
select ip.ip, hostname, avg_sess_1h, avg_sess_24h, avg_sess_3d, max_sess_1h, max_sess_24h, max_sess_3d, avg_cur_1h, avg_cur_24h, avg_cur_3d, max_con_1h, max_con_24h, max_con_3d from
|
select ip.ip, hostname, avg_sess_1h, avg_sess_24h, avg_sess_3d, max_sess_1h, max_sess_24h, max_sess_3d, avg_cur_1h, avg_cur_24h, avg_cur_3d, max_con_1h, max_con_24h, max_con_3d from
|
||||||
(select servers.ip from servers where metrics = 1 ) as ip,
|
(select servers.ip from servers where metrics = 1 ) as ip,
|
||||||
|
|
||||||
(select servers.ip, servers.hostname as hostname from servers left join metrics as metr on servers.ip = metr.serv where servers.metrics = 1 %s) as hostname,
|
(select servers.ip, servers.hostname as hostname from servers left join metrics as metr on servers.ip = metr.serv where servers.metrics = 1 %s) as hostname,
|
||||||
|
|
||||||
(select servers.ip,round(avg(metr.sess_rate), 1) as avg_sess_1h from servers
|
(select servers.ip,round(avg(metr.sess_rate), 1) as avg_sess_1h from servers
|
||||||
left join metrics as metr on metr.serv = servers.ip
|
left join metrics as metr on metr.serv = servers.ip
|
||||||
where servers.metrics = 1 and
|
where servers.metrics = 1 and
|
||||||
metr.date <= now() and metr.date >= DATE_ADD(NOW(), INTERVAL -1 HOUR)
|
metr.date <= now() and metr.date >= DATE_ADD(NOW(), INTERVAL -1 HOUR)
|
||||||
group by servers.ip) as avg_sess_1h,
|
group by servers.ip) as avg_sess_1h,
|
||||||
|
|
||||||
(select servers.ip,round(avg(metr.sess_rate), 1) as avg_sess_24h from servers
|
(select servers.ip,round(avg(metr.sess_rate), 1) as avg_sess_24h from servers
|
||||||
left join metrics as metr on metr.serv = servers.ip
|
left join metrics as metr on metr.serv = servers.ip
|
||||||
where servers.metrics = 1 and
|
where servers.metrics = 1 and
|
||||||
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -24 HOUR)
|
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -24 HOUR)
|
||||||
group by servers.ip) as avg_sess_24h,
|
group by servers.ip) as avg_sess_24h,
|
||||||
|
|
||||||
(select servers.ip,round(avg(metr.sess_rate), 1) as avg_sess_3d from servers
|
(select servers.ip,round(avg(metr.sess_rate), 1) as avg_sess_3d from servers
|
||||||
left join metrics as metr on metr.serv = servers.ip
|
left join metrics as metr on metr.serv = servers.ip
|
||||||
where servers.metrics = 1 and
|
where servers.metrics = 1 and
|
||||||
metr.date <= now() and metr.date >= DATE_ADD(NOW(), INTERVAL -3 DAY)
|
metr.date <= now() and metr.date >= DATE_ADD(NOW(), INTERVAL -3 DAY)
|
||||||
group by servers.ip ) as avg_sess_3d,
|
group by servers.ip ) as avg_sess_3d,
|
||||||
|
|
||||||
(select servers.ip,max(metr.sess_rate) as max_sess_1h from servers
|
(select servers.ip,max(metr.sess_rate) as max_sess_1h from servers
|
||||||
left join metrics as metr on metr.serv = servers.ip
|
left join metrics as metr on metr.serv = servers.ip
|
||||||
where servers.metrics = 1 and
|
where servers.metrics = 1 and
|
||||||
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -1 HOUR)
|
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -1 HOUR)
|
||||||
group by servers.ip) as max_sess_1h,
|
group by servers.ip) as max_sess_1h,
|
||||||
|
|
||||||
(select servers.ip,max(metr.sess_rate) as max_sess_24h from servers
|
(select servers.ip,max(metr.sess_rate) as max_sess_24h from servers
|
||||||
left join metrics as metr on metr.serv = servers.ip
|
left join metrics as metr on metr.serv = servers.ip
|
||||||
where servers.metrics = 1 and
|
where servers.metrics = 1 and
|
||||||
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -24 HOUR)
|
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -24 HOUR)
|
||||||
group by servers.ip) as max_sess_24h,
|
group by servers.ip) as max_sess_24h,
|
||||||
|
|
||||||
(select servers.ip,max(metr.sess_rate) as max_sess_3d from servers
|
(select servers.ip,max(metr.sess_rate) as max_sess_3d from servers
|
||||||
left join metrics as metr on metr.serv = servers.ip
|
left join metrics as metr on metr.serv = servers.ip
|
||||||
where servers.metrics = 1 and
|
where servers.metrics = 1 and
|
||||||
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -3 DAY)
|
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -3 DAY)
|
||||||
group by servers.ip ) as max_sess_3d,
|
group by servers.ip ) as max_sess_3d,
|
||||||
|
|
||||||
(select servers.ip,round(avg(metr.curr_con+metr.cur_ssl_con), 1) as avg_cur_1h from servers
|
(select servers.ip,round(avg(metr.curr_con+metr.cur_ssl_con), 1) as avg_cur_1h from servers
|
||||||
left join metrics as metr on metr.serv = servers.ip
|
left join metrics as metr on metr.serv = servers.ip
|
||||||
where servers.metrics = 1 and
|
where servers.metrics = 1 and
|
||||||
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -1 HOUR)
|
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -1 HOUR)
|
||||||
group by servers.ip) as avg_cur_1h,
|
group by servers.ip) as avg_cur_1h,
|
||||||
|
|
||||||
(select servers.ip,round(avg(metr.curr_con+metr.cur_ssl_con), 1) as avg_cur_24h from servers
|
(select servers.ip,round(avg(metr.curr_con+metr.cur_ssl_con), 1) as avg_cur_24h from servers
|
||||||
left join metrics as metr on metr.serv = servers.ip
|
left join metrics as metr on metr.serv = servers.ip
|
||||||
where servers.metrics = 1 and
|
where servers.metrics = 1 and
|
||||||
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -24 HOUR)
|
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -24 HOUR)
|
||||||
group by servers.ip) as avg_cur_24h,
|
group by servers.ip) as avg_cur_24h,
|
||||||
|
|
||||||
(select servers.ip,round(avg(metr.curr_con+metr.cur_ssl_con), 1) as avg_cur_3d from servers
|
(select servers.ip,round(avg(metr.curr_con+metr.cur_ssl_con), 1) as avg_cur_3d from servers
|
||||||
left join metrics as metr on metr.serv = servers.ip
|
left join metrics as metr on metr.serv = servers.ip
|
||||||
|
@ -1666,38 +1704,38 @@ def select_table_metrics():
|
||||||
group by servers.ip ) as avg_cur_3d,
|
group by servers.ip ) as avg_cur_3d,
|
||||||
|
|
||||||
(select servers.ip,max(metr.curr_con) as max_con_1h from servers
|
(select servers.ip,max(metr.curr_con) as max_con_1h from servers
|
||||||
left join metrics as metr on metr.serv = servers.ip
|
left join metrics as metr on metr.serv = servers.ip
|
||||||
where servers.metrics = 1 and
|
where servers.metrics = 1 and
|
||||||
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -1 HOUR)
|
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -1 HOUR)
|
||||||
group by servers.ip) as max_con_1h,
|
group by servers.ip) as max_con_1h,
|
||||||
|
|
||||||
(select servers.ip,max(metr.curr_con) as max_con_24h from servers
|
(select servers.ip,max(metr.curr_con) as max_con_24h from servers
|
||||||
left join metrics as metr on metr.serv = servers.ip
|
left join metrics as metr on metr.serv = servers.ip
|
||||||
where servers.metrics = 1 and
|
where servers.metrics = 1 and
|
||||||
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -24 HOUR)
|
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -24 HOUR)
|
||||||
group by servers.ip) as max_con_24h,
|
group by servers.ip) as max_con_24h,
|
||||||
|
|
||||||
(select servers.ip,max(metr.curr_con) as max_con_3d from servers
|
(select servers.ip,max(metr.curr_con) as max_con_3d from servers
|
||||||
left join metrics as metr on metr.serv = servers.ip
|
left join metrics as metr on metr.serv = servers.ip
|
||||||
where servers.metrics = 1 and
|
where servers.metrics = 1 and
|
||||||
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -3 DAY)
|
metr.date <= now() and metr.date >= DATE_ADD(NOW(),INTERVAL -3 DAY)
|
||||||
group by servers.ip ) as max_con_3d
|
group by servers.ip ) as max_con_3d
|
||||||
|
|
||||||
where ip.ip=hostname.ip
|
where ip.ip=hostname.ip
|
||||||
and ip.ip=avg_sess_1h.ip
|
and ip.ip=avg_sess_1h.ip
|
||||||
and ip.ip=avg_sess_24h.ip
|
and ip.ip=avg_sess_24h.ip
|
||||||
and ip.ip=avg_sess_3d.ip
|
and ip.ip=avg_sess_3d.ip
|
||||||
and ip.ip=max_sess_1h.ip
|
and ip.ip=max_sess_1h.ip
|
||||||
and ip.ip=max_sess_24h.ip
|
and ip.ip=max_sess_24h.ip
|
||||||
and ip.ip=max_sess_3d.ip
|
and ip.ip=max_sess_3d.ip
|
||||||
and ip.ip=avg_cur_1h.ip
|
and ip.ip=avg_cur_1h.ip
|
||||||
and ip.ip=avg_cur_24h.ip
|
and ip.ip=avg_cur_24h.ip
|
||||||
and ip.ip=avg_cur_3d.ip
|
and ip.ip=avg_cur_3d.ip
|
||||||
and ip.ip=max_con_1h.ip
|
and ip.ip=max_con_1h.ip
|
||||||
and ip.ip=max_con_24h.ip
|
and ip.ip=max_con_24h.ip
|
||||||
and ip.ip=max_con_3d.ip
|
and ip.ip=max_con_3d.ip
|
||||||
|
|
||||||
group by hostname.ip """ % groups
|
group by hostname.ip """ % groups
|
||||||
else:
|
else:
|
||||||
sql = """
|
sql = """
|
||||||
select ip.ip, hostname, avg_sess_1h, avg_sess_24h, avg_sess_3d, max_sess_1h, max_sess_24h, max_sess_3d, avg_cur_1h, avg_cur_24h, avg_cur_3d, max_con_1h, max_con_24h, max_con_3d from
|
select ip.ip, hostname, avg_sess_1h, avg_sess_24h, avg_sess_3d, max_sess_1h, max_sess_24h, max_sess_3d, avg_cur_1h, avg_cur_24h, avg_cur_3d, max_con_1h, max_con_24h, max_con_3d from
|
||||||
|
@ -1824,10 +1862,11 @@ def get_setting(param, **kwargs):
|
||||||
return query_res
|
return query_res
|
||||||
else:
|
else:
|
||||||
for setting in query_res:
|
for setting in query_res:
|
||||||
if param in ('nginx_stats_port', 'session_ttl', 'token_ttl', 'stats_port', 'haproxy_sock_port', 'ldap_type',
|
if param in (
|
||||||
'ldap_port', 'ldap_enable', 'log_time_storage', 'syslog_server_enable', 'smon_check_interval',
|
'nginx_stats_port', 'session_ttl', 'token_ttl', 'stats_port', 'haproxy_sock_port', 'ldap_type',
|
||||||
'checker_check_interval', 'port_scan_interval', 'smon_keep_history_range', 'checker_keep_history_range',
|
'ldap_port', 'ldap_enable', 'log_time_storage', 'syslog_server_enable', 'smon_check_interval',
|
||||||
'portscanner_keep_history_range', 'checker_maxconn_threshold', 'apache_stats_port'):
|
'checker_check_interval', 'port_scan_interval', 'smon_keep_history_range', 'checker_keep_history_range',
|
||||||
|
'portscanner_keep_history_range', 'checker_maxconn_threshold', 'apache_stats_port'):
|
||||||
return int(setting.value)
|
return int(setting.value)
|
||||||
else:
|
else:
|
||||||
return setting.value
|
return setting.value
|
||||||
|
@ -2099,13 +2138,14 @@ def check_token_exists(token):
|
||||||
|
|
||||||
def insert_smon(server, port, enable, proto, uri, body, group, desc, telegram, slack, user_group):
|
def insert_smon(server, port, enable, proto, uri, body, group, desc, telegram, slack, user_group):
|
||||||
try:
|
try:
|
||||||
http = proto+':'+uri
|
http = proto + ':' + uri
|
||||||
except:
|
except:
|
||||||
http = ''
|
http = ''
|
||||||
|
|
||||||
try:
|
try:
|
||||||
last_id = SMON.insert(ip=server, port=port, en=enable, desc=desc, group=group, http=http, body=body,
|
last_id = SMON.insert(ip=server, port=port, en=enable, desc=desc, group=group, http=http, body=body,
|
||||||
telegram_channel_id=telegram, slack_channel_id=slack, user_group=user_group, status='3').execute()
|
telegram_channel_id=telegram, slack_channel_id=slack, user_group=user_group,
|
||||||
|
status='3').execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
out_error(e)
|
out_error(e)
|
||||||
return False
|
return False
|
||||||
|
@ -2127,7 +2167,7 @@ def select_smon(user_group, **kwargs):
|
||||||
|
|
||||||
if kwargs.get('ip'):
|
if kwargs.get('ip'):
|
||||||
try:
|
try:
|
||||||
http = kwargs.get('proto')+':'+kwargs.get('uri')
|
http = kwargs.get('proto') + ':' + kwargs.get('uri')
|
||||||
except:
|
except:
|
||||||
http = ''
|
http = ''
|
||||||
sql = """select id, ip, port, en, http, body, telegram_channel_id, `desc`, `group`, user_group, slack_channel_id from smon
|
sql = """select id, ip, port, en, http, body, telegram_channel_id, `desc`, `group`, user_group, slack_channel_id from smon
|
||||||
|
@ -2175,7 +2215,8 @@ def delete_smon(smon_id, user_group):
|
||||||
|
|
||||||
def update_smon(smon_id, ip, port, body, telegram, slack, group, desc, en):
|
def update_smon(smon_id, ip, port, body, telegram, slack, group, desc, en):
|
||||||
funct.check_user_group()
|
funct.check_user_group()
|
||||||
query = (SMON.update(ip=ip, port=port, body=body, telegram_channel_id=telegram, slack_channel_id=slack, group=group, desc=desc, en=en)
|
query = (SMON.update(ip=ip, port=port, body=body, telegram_channel_id=telegram, slack_channel_id=slack, group=group,
|
||||||
|
desc=desc, en=en)
|
||||||
.where(SMON.id == smon_id))
|
.where(SMON.id == smon_id))
|
||||||
try:
|
try:
|
||||||
query.execute()
|
query.execute()
|
||||||
|
@ -2199,7 +2240,7 @@ def alerts_history(service, user_group, **kwargs):
|
||||||
|
|
||||||
sql = (f"select message, level, ip, port, date "
|
sql = (f"select message, level, ip, port, date "
|
||||||
f"from alerts "
|
f"from alerts "
|
||||||
f"where service = '{service}' {sql_user_group} {and_host} "
|
f"where service = '{service}' {sql_user_group} {and_host} "
|
||||||
f"order by date desc; ")
|
f"order by date desc; ")
|
||||||
try:
|
try:
|
||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
|
@ -2342,7 +2383,7 @@ def response_time(time, smon_id):
|
||||||
def smon_list(user_group):
|
def smon_list(user_group):
|
||||||
if user_group == 1:
|
if user_group == 1:
|
||||||
query = (SMON.select(SMON.ip, SMON.port, SMON.status, SMON.en, SMON.desc, SMON.response_time, SMON.time_state,
|
query = (SMON.select(SMON.ip, SMON.port, SMON.status, SMON.en, SMON.desc, SMON.response_time, SMON.time_state,
|
||||||
SMON.group, SMON.script, SMON.http, SMON.http_status, SMON.body, SMON.body_status)
|
SMON.group, SMON.script, SMON.http, SMON.http_status, SMON.body, SMON.body_status)
|
||||||
.order_by(SMON.group))
|
.order_by(SMON.group))
|
||||||
else:
|
else:
|
||||||
query = (SMON.select(SMON.ip, SMON.port, SMON.status, SMON.en, SMON.desc, SMON.response_time, SMON.time_state,
|
query = (SMON.select(SMON.ip, SMON.port, SMON.status, SMON.en, SMON.desc, SMON.response_time, SMON.time_state,
|
||||||
|
@ -2371,9 +2412,11 @@ def insert_alerts(user_group, level, ip, port, message, service):
|
||||||
def select_alerts(user_group):
|
def select_alerts(user_group):
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
if mysql_enable == '1':
|
if mysql_enable == '1':
|
||||||
sql = """ select level, message, `date` from alerts where user_group = '%s' and `date` <= (now()+ INTERVAL 10 second) """ % (user_group)
|
sql = """ select level, message, `date` from alerts where user_group = '%s' and `date` <= (now()+ INTERVAL 10 second) """ % (
|
||||||
|
user_group)
|
||||||
else:
|
else:
|
||||||
sql = """ select level, message, `date` from alerts where user_group = '%s' and `date` >= datetime('now', '-20 second', 'localtime') and `date` <= datetime('now', 'localtime') ; """ % (user_group)
|
sql = """ select level, message, `date` from alerts where user_group = '%s' and `date` >= datetime('now', '-20 second', 'localtime') and `date` <= datetime('now', 'localtime') ; """ % (
|
||||||
|
user_group)
|
||||||
try:
|
try:
|
||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -2480,7 +2523,7 @@ def delete_port_scanner_settings(server_id):
|
||||||
def insert_port_scanner_port(serv, user_group_id, port, service_name):
|
def insert_port_scanner_port(serv, user_group_id, port, service_name):
|
||||||
try:
|
try:
|
||||||
PortScannerPorts.insert(serv=serv, port=port, user_group_id=user_group_id, service_name=service_name,
|
PortScannerPorts.insert(serv=serv, port=port, user_group_id=user_group_id, service_name=service_name,
|
||||||
date=funct.get_data('regular')).execute()
|
date=funct.get_data('regular')).execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
out_error(e)
|
out_error(e)
|
||||||
|
|
||||||
|
@ -2534,7 +2577,7 @@ def delete_ports(serv):
|
||||||
def insert_port_scanner_history(serv, port, port_status, service_name):
|
def insert_port_scanner_history(serv, port, port_status, service_name):
|
||||||
try:
|
try:
|
||||||
PortScannerHistory.insert(serv=serv, port=port, status=port_status, service_name=service_name,
|
PortScannerHistory.insert(serv=serv, port=port, status=port_status, service_name=service_name,
|
||||||
date=funct.get_data('regular')).execute()
|
date=funct.get_data('regular')).execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
out_error(e)
|
out_error(e)
|
||||||
|
|
||||||
|
@ -2631,12 +2674,14 @@ def delete_provider(provider_id):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def add_server_aws(region, instance_type, public_ip, floating_ip, volume_size, ssh_key_name, name, os, firewall, provider_id, group_id, status, delete_on_termination, volume_type):
|
def add_server_aws(region, instance_type, public_ip, floating_ip, volume_size, ssh_key_name, name, os, firewall,
|
||||||
|
provider_id, group_id, status, delete_on_termination, volume_type):
|
||||||
try:
|
try:
|
||||||
ProvisionedServers.insert(region=region, instance_type=instance_type, public_ip=public_ip,
|
ProvisionedServers.insert(region=region, instance_type=instance_type, public_ip=public_ip,
|
||||||
floating_ip=floating_ip, volume_size=volume_size, volume_type=volume_type,
|
floating_ip=floating_ip, volume_size=volume_size, volume_type=volume_type,
|
||||||
ssh_key_name=ssh_key_name, name=name, os=os, firewall=firewall,
|
ssh_key_name=ssh_key_name, name=name, os=os, firewall=firewall,
|
||||||
provider_id=provider_id, group_id=group_id, delete_on_termination=delete_on_termination,
|
provider_id=provider_id, group_id=group_id,
|
||||||
|
delete_on_termination=delete_on_termination,
|
||||||
type='aws', status=status, date=funct.get_data('regular')).execute()
|
type='aws', status=status, date=funct.get_data('regular')).execute()
|
||||||
return True
|
return True
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -2647,8 +2692,10 @@ def add_server_aws(region, instance_type, public_ip, floating_ip, volume_size, s
|
||||||
def add_server_gcore(project, region, instance_type, network_type, network_name, volume_size, ssh_key_name, name, os,
|
def add_server_gcore(project, region, instance_type, network_type, network_name, volume_size, ssh_key_name, name, os,
|
||||||
firewall, provider_id, group_id, status, delete_on_termination, volume_type):
|
firewall, provider_id, group_id, status, delete_on_termination, volume_type):
|
||||||
try:
|
try:
|
||||||
ProvisionedServers.insert(region=region, instance_type=instance_type, public_ip=network_type, network_name=network_name,
|
ProvisionedServers.insert(region=region, instance_type=instance_type, public_ip=network_type,
|
||||||
volume_size=volume_size, volume_type=volume_type, ssh_key_name=ssh_key_name, name=name,
|
network_name=network_name,
|
||||||
|
volume_size=volume_size, volume_type=volume_type, ssh_key_name=ssh_key_name,
|
||||||
|
name=name,
|
||||||
os=os, firewall=firewall, provider_id=provider_id, group_id=group_id, type='gcore',
|
os=os, firewall=firewall, provider_id=provider_id, group_id=group_id, type='gcore',
|
||||||
delete_on_termination=delete_on_termination, project=project, status=status,
|
delete_on_termination=delete_on_termination, project=project, status=status,
|
||||||
date=funct.get_data('regular')).execute()
|
date=funct.get_data('regular')).execute()
|
||||||
|
@ -2661,7 +2708,8 @@ def add_server_gcore(project, region, instance_type, network_type, network_name,
|
||||||
def add_server_do(region, size, privet_net, floating_ip, ssh_ids, ssh_key_name, name, oss, firewall, monitoring, backup,
|
def add_server_do(region, size, privet_net, floating_ip, ssh_ids, ssh_key_name, name, oss, firewall, monitoring, backup,
|
||||||
provider_id, group_id, status):
|
provider_id, group_id, status):
|
||||||
try:
|
try:
|
||||||
ProvisionedServers.insert(region=region, instance_type=size, private_networking=privet_net, floating_ip=floating_ip,
|
ProvisionedServers.insert(region=region, instance_type=size, private_networking=privet_net,
|
||||||
|
floating_ip=floating_ip,
|
||||||
ssh_ids=ssh_ids, ssh_key_name=ssh_key_name, name=name, os=oss, firewall=firewall,
|
ssh_ids=ssh_ids, ssh_key_name=ssh_key_name, name=name, os=oss, firewall=firewall,
|
||||||
monitoring=monitoring, backup=backup, provider_id=provider_id, group_id=group_id,
|
monitoring=monitoring, backup=backup, provider_id=provider_id, group_id=group_id,
|
||||||
type='do', status=status, date=funct.get_data('regular')).execute()
|
type='do', status=status, date=funct.get_data('regular')).execute()
|
||||||
|
@ -2678,7 +2726,7 @@ def select_aws_server(server_id):
|
||||||
prov_serv.volume_size, prov_serv.ssh_key_name, prov_serv.name, prov_serv.os,
|
prov_serv.volume_size, prov_serv.ssh_key_name, prov_serv.name, prov_serv.os,
|
||||||
prov_serv.firewall, prov_serv.provider_id, prov_serv.group_id, prov_serv.id,
|
prov_serv.firewall, prov_serv.provider_id, prov_serv.group_id, prov_serv.id,
|
||||||
prov_serv.delete_on_termination, prov_serv.volume_type)
|
prov_serv.delete_on_termination, prov_serv.volume_type)
|
||||||
.where(prov_serv.id == server_id))
|
.where(prov_serv.id == server_id))
|
||||||
try:
|
try:
|
||||||
query_res = query.execute()
|
query_res = query.execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -2691,10 +2739,11 @@ def select_gcore_server(server_id):
|
||||||
prov_serv = ProvisionedServers.alias()
|
prov_serv = ProvisionedServers.alias()
|
||||||
query = (
|
query = (
|
||||||
prov_serv.select(prov_serv.region, prov_serv.instance_type, prov_serv.public_ip, prov_serv.floating_ip,
|
prov_serv.select(prov_serv.region, prov_serv.instance_type, prov_serv.public_ip, prov_serv.floating_ip,
|
||||||
prov_serv.volume_size, prov_serv.ssh_key_name, prov_serv.name, prov_serv.os, prov_serv.firewall,
|
prov_serv.volume_size, prov_serv.ssh_key_name, prov_serv.name, prov_serv.os,
|
||||||
|
prov_serv.firewall,
|
||||||
prov_serv.provider_id, prov_serv.group_id, prov_serv.id, prov_serv.delete_on_termination,
|
prov_serv.provider_id, prov_serv.group_id, prov_serv.id, prov_serv.delete_on_termination,
|
||||||
prov_serv.project, prov_serv.network_name, prov_serv.volume_type, prov_serv.name_template)
|
prov_serv.project, prov_serv.network_name, prov_serv.volume_type, prov_serv.name_template)
|
||||||
.where(prov_serv.id == server_id))
|
.where(prov_serv.id == server_id))
|
||||||
try:
|
try:
|
||||||
query_res = query.execute()
|
query_res = query.execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -2705,10 +2754,12 @@ def select_gcore_server(server_id):
|
||||||
|
|
||||||
def select_do_server(server_id):
|
def select_do_server(server_id):
|
||||||
prov_serv = ProvisionedServers.alias()
|
prov_serv = ProvisionedServers.alias()
|
||||||
query = (prov_serv.select(prov_serv.region, prov_serv.instance_type, prov_serv.private_networking, prov_serv.floating_ip,
|
query = (
|
||||||
prov_serv.ssh_ids, prov_serv.ssh_key_name, prov_serv.name, prov_serv.os, prov_serv.firewall,
|
prov_serv.select(prov_serv.region, prov_serv.instance_type, prov_serv.private_networking, prov_serv.floating_ip,
|
||||||
prov_serv.backup, prov_serv.monitoring, prov_serv.provider_id, prov_serv.group_id, prov_serv.id)
|
prov_serv.ssh_ids, prov_serv.ssh_key_name, prov_serv.name, prov_serv.os, prov_serv.firewall,
|
||||||
.where(prov_serv.id == server_id))
|
prov_serv.backup, prov_serv.monitoring, prov_serv.provider_id, prov_serv.group_id,
|
||||||
|
prov_serv.id)
|
||||||
|
.where(prov_serv.id == server_id))
|
||||||
try:
|
try:
|
||||||
query_res = query.execute()
|
query_res = query.execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -2756,7 +2807,8 @@ def update_provisioning_server_error(status, user_group_id, name, provider_id):
|
||||||
out_error(e)
|
out_error(e)
|
||||||
|
|
||||||
|
|
||||||
def update_server_aws(region, size, public_ip, floating_ip, volume_size, ssh_name, workspace, oss, firewall, provider, group, status, server_id, delete_on_termination, volume_type):
|
def update_server_aws(region, size, public_ip, floating_ip, volume_size, ssh_name, workspace, oss, firewall, provider,
|
||||||
|
group, status, server_id, delete_on_termination, volume_type):
|
||||||
query = ProvisionedServers.update(region=region, instance_type=size, public_ip=public_ip, floating_ip=floating_ip,
|
query = ProvisionedServers.update(region=region, instance_type=size, public_ip=public_ip, floating_ip=floating_ip,
|
||||||
volume_size=volume_size, ssh_key_name=ssh_name, name=workspace, os=oss,
|
volume_size=volume_size, ssh_key_name=ssh_name, name=workspace, os=oss,
|
||||||
firewall=firewall, provider_id=provider, group_id=group, status=status,
|
firewall=firewall, provider_id=provider, group_id=group, status=status,
|
||||||
|
@ -2772,7 +2824,8 @@ def update_server_aws(region, size, public_ip, floating_ip, volume_size, ssh_nam
|
||||||
|
|
||||||
def update_server_gcore(region, size, network_type, network_name, volume_size, ssh_name, workspace, oss, firewall,
|
def update_server_gcore(region, size, network_type, network_name, volume_size, ssh_name, workspace, oss, firewall,
|
||||||
provider, group, status, server_id, delete_on_termination, volume_type, project):
|
provider, group, status, server_id, delete_on_termination, volume_type, project):
|
||||||
query = ProvisionedServers.update(region=region, instance_type=size, public_ip=network_type, network_name=network_name,
|
query = ProvisionedServers.update(region=region, instance_type=size, public_ip=network_type,
|
||||||
|
network_name=network_name,
|
||||||
volume_size=volume_size, ssh_key_name=ssh_name, name=workspace, os=oss,
|
volume_size=volume_size, ssh_key_name=ssh_name, name=workspace, os=oss,
|
||||||
firewall=firewall, provider_id=provider, group_id=group, status=status,
|
firewall=firewall, provider_id=provider, group_id=group, status=status,
|
||||||
delete_on_termination=delete_on_termination, volume_type=volume_type,
|
delete_on_termination=delete_on_termination, volume_type=volume_type,
|
||||||
|
@ -2786,10 +2839,10 @@ def update_server_gcore(region, size, network_type, network_name, volume_size, s
|
||||||
|
|
||||||
|
|
||||||
def update_server_do(size, privet_net, floating_ip, ssh_ids, ssh_name, oss, firewall, monitoring, backup, provider,
|
def update_server_do(size, privet_net, floating_ip, ssh_ids, ssh_name, oss, firewall, monitoring, backup, provider,
|
||||||
group, status, server_id):
|
group, status, server_id):
|
||||||
query = ProvisionedServers.update(instance_type=size, private_networking=privet_net,
|
query = ProvisionedServers.update(instance_type=size, private_networking=privet_net,
|
||||||
floating_ip=floating_ip, ssh_ids=ssh_ids, ssh_key_name=ssh_name,
|
floating_ip=floating_ip, ssh_ids=ssh_ids, ssh_key_name=ssh_name,
|
||||||
os=oss, firewall=firewall, monitoring=monitoring, backup=backup,
|
os=oss, firewall=firewall, monitoring=monitoring, backup=backup,
|
||||||
provider_id=provider,
|
provider_id=provider,
|
||||||
group_id=group, status=status).where(ProvisionedServers.id == server_id)
|
group_id=group, status=status).where(ProvisionedServers.id == server_id)
|
||||||
try:
|
try:
|
||||||
|
@ -2814,13 +2867,16 @@ def select_provisioned_servers(**kwargs):
|
||||||
query = (
|
query = (
|
||||||
prov_serv.select(prov_serv.id, prov_serv.name, prov_serv.provider_id, prov_serv.type,
|
prov_serv.select(prov_serv.id, prov_serv.name, prov_serv.provider_id, prov_serv.type,
|
||||||
prov_serv.group_id, prov_serv.instance_type, prov_serv.status, prov_serv.date,
|
prov_serv.group_id, 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.region, prov_serv.os, prov_serv.IP, prov_serv.last_error,
|
||||||
.where((prov_serv.name == kwargs.get('new')) &
|
prov_serv.name_template)
|
||||||
(prov_serv.group_id == kwargs.get('group')) &
|
.where((prov_serv.name == kwargs.get('new')) &
|
||||||
(prov_serv.type == kwargs.get('type'))))
|
(prov_serv.group_id == kwargs.get('group')) &
|
||||||
|
(prov_serv.type == kwargs.get('type'))))
|
||||||
else:
|
else:
|
||||||
query = prov_serv.select(prov_serv.id, prov_serv.name, prov_serv.provider_id, prov_serv.type, prov_serv.group_id,
|
query = prov_serv.select(prov_serv.id, prov_serv.name, prov_serv.provider_id, prov_serv.type,
|
||||||
prov_serv.instance_type, prov_serv.status, prov_serv.date, prov_serv.region, prov_serv.os,
|
prov_serv.group_id,
|
||||||
|
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)
|
||||||
try:
|
try:
|
||||||
query_res = query.execute()
|
query_res = query.execute()
|
||||||
|
@ -2917,7 +2973,8 @@ def update_user_services(services, user_id):
|
||||||
|
|
||||||
def insert_or_update_service_setting(server_id, service, setting, value):
|
def insert_or_update_service_setting(server_id, service, setting, value):
|
||||||
try:
|
try:
|
||||||
ServiceSetting.insert(server_id=server_id, service=service, setting=setting, value=value).on_conflict('replace').execute()
|
ServiceSetting.insert(server_id=server_id, service=service, setting=setting, value=value).on_conflict(
|
||||||
|
'replace').execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
out_error(e)
|
out_error(e)
|
||||||
return False
|
return False
|
||||||
|
@ -2959,11 +3016,11 @@ def select_docker_services_settings(service: str) -> str:
|
||||||
else:
|
else:
|
||||||
return query_res
|
return query_res
|
||||||
|
|
||||||
|
|
||||||
def select_service_setting(server_id: int, service: str, setting: str) -> str:
|
def select_service_setting(server_id: int, service: str, setting: str) -> str:
|
||||||
try:
|
try:
|
||||||
result = ServiceSetting.get(
|
result = ServiceSetting.get(
|
||||||
(ServiceSetting.server_id == server_id) &
|
(ServiceSetting.server_id == server_id) &
|
||||||
(ServiceSetting.service == service) &
|
(ServiceSetting.service == service) &
|
||||||
(ServiceSetting.setting == setting)).value
|
(ServiceSetting.setting == setting)).value
|
||||||
except Exception:
|
except Exception:
|
||||||
|
@ -3089,10 +3146,11 @@ def select_remote_path_from_version(server_ip: str, service: str, local_path: st
|
||||||
return query_res
|
return query_res
|
||||||
|
|
||||||
|
|
||||||
def insert_system_info(server_id: int, os_info: str, sys_info: str, cpu: str, ram: str, network: str, disks: str) -> bool:
|
def insert_system_info(server_id: int, os_info: str, sys_info: str, cpu: str, ram: str, network: str,
|
||||||
|
disks: str) -> bool:
|
||||||
try:
|
try:
|
||||||
SystemInfo.insert(server_id=server_id, os_info=os_info, sys_info=sys_info, cpu=cpu, ram=ram,
|
SystemInfo.insert(server_id=server_id, os_info=os_info, sys_info=sys_info, cpu=cpu, ram=ram,
|
||||||
network=network, disks=disks).on_conflict('replace').execute()
|
network=network, disks=disks).on_conflict('replace').execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
out_error(e)
|
out_error(e)
|
||||||
return False
|
return False
|
||||||
|
@ -3241,8 +3299,9 @@ def select_user_all():
|
||||||
|
|
||||||
def insert_new_git(server_id, service_id, repo, branch, period, cred, description):
|
def insert_new_git(server_id, service_id, repo, branch, period, cred, description):
|
||||||
try:
|
try:
|
||||||
GitSetting.insert(server_id=server_id, service_id=service_id, repo=repo, branch=branch, period=period, cred_id=cred,
|
GitSetting.insert(server_id=server_id, service_id=service_id, repo=repo, branch=branch, period=period,
|
||||||
description=description).execute()
|
cred_id=cred,
|
||||||
|
description=description).execute()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
out_error(e)
|
out_error(e)
|
||||||
return False
|
return False
|
||||||
|
@ -3252,7 +3311,8 @@ def insert_new_git(server_id, service_id, repo, branch, period, cred, descriptio
|
||||||
|
|
||||||
def select_gits(**kwargs):
|
def select_gits(**kwargs):
|
||||||
if kwargs.get("server_id") is not None and kwargs.get("service_id") is not None:
|
if kwargs.get("server_id") is not None and kwargs.get("service_id") is not None:
|
||||||
query = GitSetting.select().where((GitSetting.server_id == kwargs.get("server_id")) & (GitSetting.service_id == kwargs.get("service_id")))
|
query = GitSetting.select().where(
|
||||||
|
(GitSetting.server_id == kwargs.get("server_id")) & (GitSetting.service_id == kwargs.get("service_id")))
|
||||||
else:
|
else:
|
||||||
query = GitSetting.select().order_by(GitSetting.id)
|
query = GitSetting.select().order_by(GitSetting.id)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue