mirror of https://github.com/Aidaho12/haproxy-wi
parent
ee4631f214
commit
bfcead6430
|
@ -67,7 +67,7 @@ def check_is_conf(config_path: str) -> bool:
|
||||||
if 'conf' in config_path or 'cfg' in config_path:
|
if 'conf' in config_path or 'cfg' in config_path:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
return False
|
raise Exception('error: nice try')
|
||||||
|
|
||||||
|
|
||||||
def string_to_dict(dict_string) -> dict:
|
def string_to_dict(dict_string) -> dict:
|
||||||
|
|
|
@ -305,7 +305,7 @@ def create_map(server_ip: str, map_name: str, group: str) -> str:
|
||||||
try:
|
try:
|
||||||
server_mod.subprocess_execute(f'mkdir -p {map_path}')
|
server_mod.subprocess_execute(f'mkdir -p {map_path}')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
assert Exception(f'error: cannot create a local folder for maps: {e}')
|
raise Exception(f'error: cannot create a local folder for maps: {e}')
|
||||||
try:
|
try:
|
||||||
open(full_path, 'a').close()
|
open(full_path, 'a').close()
|
||||||
try:
|
try:
|
||||||
|
@ -313,7 +313,7 @@ def create_map(server_ip: str, map_name: str, group: str) -> str:
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
except IOError as e:
|
except IOError as e:
|
||||||
assert Exception(f'error: Cannot create a new {map_name} map. {e}, ')
|
raise Exception(f'error: Cannot create a new {map_name} map. {e}, ')
|
||||||
else:
|
else:
|
||||||
return 'success: '
|
return 'success: '
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import modules.server.server as server_mod
|
||||||
import modules.service.common as service_common
|
import modules.service.common as service_common
|
||||||
|
|
||||||
|
|
||||||
def user_owv():
|
def user_owv() -> str:
|
||||||
lang = roxywi_common.get_user_lang_for_flask()
|
lang = roxywi_common.get_user_lang_for_flask()
|
||||||
roles = sql.select_roles()
|
roles = sql.select_roles()
|
||||||
user_params = roxywi_common.get_users_params()
|
user_params = roxywi_common.get_users_params()
|
||||||
|
@ -25,7 +25,7 @@ def user_owv():
|
||||||
return render_template('ajax/show_users_ovw.html', users=users, users_groups=users_groups, lang=lang, roles=roles)
|
return render_template('ajax/show_users_ovw.html', users=users, users_groups=users_groups, lang=lang, roles=roles)
|
||||||
|
|
||||||
|
|
||||||
def show_sub_ovw() -> None:
|
def show_sub_ovw() -> str:
|
||||||
lang = roxywi_common.get_user_lang_for_flask()
|
lang = roxywi_common.get_user_lang_for_flask()
|
||||||
|
|
||||||
return render_template('ajax/show_sub_ovw.html', sub=sql.select_user_all(), lang=lang)
|
return render_template('ajax/show_sub_ovw.html', sub=sql.select_user_all(), lang=lang)
|
||||||
|
@ -104,7 +104,7 @@ def show_overview(serv) -> str:
|
||||||
return render_template('ajax/overview.html', service_status=servers_sorted, role=role, lang=lang)
|
return render_template('ajax/overview.html', service_status=servers_sorted, role=role, lang=lang)
|
||||||
|
|
||||||
|
|
||||||
def show_haproxy_binout(server_ip: str) -> None:
|
def show_haproxy_binout(server_ip: str) -> str:
|
||||||
port = sql.get_setting('haproxy_sock_port')
|
port = sql.get_setting('haproxy_sock_port')
|
||||||
bin_bout = []
|
bin_bout = []
|
||||||
cmd = "echo 'show stat' |nc {} {} |cut -d ',' -f 1-2,9|grep -E '[0-9]'|awk -F',' '{{sum+=$3;}}END{{print sum;}}'".format(
|
cmd = "echo 'show stat' |nc {} {} |cut -d ',' -f 1-2,9|grep -E '[0-9]'|awk -F',' '{{sum+=$3;}}END{{print sum;}}'".format(
|
||||||
|
@ -135,7 +135,7 @@ def show_nginx_connections(server_ip: str) -> str:
|
||||||
page = sql.get_setting('nginx_stats_page')
|
page = sql.get_setting('nginx_stats_page')
|
||||||
url = f'http://{server_ip}:{port}/{page}'
|
url = f'http://{server_ip}:{port}/{page}'
|
||||||
|
|
||||||
r = requests.get(url, auth=(user, password))
|
r = requests.get(url, auth=(user, password), timeout=5)
|
||||||
|
|
||||||
if r.status_code == 200:
|
if r.status_code == 200:
|
||||||
bin_bout = [0, 0]
|
bin_bout = [0, 0]
|
||||||
|
@ -159,7 +159,7 @@ def show_apache_bytes(server_ip: str) -> str:
|
||||||
bin_bout = []
|
bin_bout = []
|
||||||
url = f'http://{server_ip}:{port}/{page}?auto'
|
url = f'http://{server_ip}:{port}/{page}?auto'
|
||||||
|
|
||||||
r = requests.get(url, auth=(user, password))
|
r = requests.get(url, auth=(user, password), timeout=5)
|
||||||
|
|
||||||
if r.status_code == 200:
|
if r.status_code == 200:
|
||||||
for line in r.text.split('\n'):
|
for line in r.text.split('\n'):
|
||||||
|
|
|
@ -71,7 +71,7 @@ def update_user_password(password, uuid, user_id_from_get):
|
||||||
return 'ok'
|
return 'ok'
|
||||||
|
|
||||||
|
|
||||||
def get_user_services(user_id: int) -> None:
|
def get_user_services(user_id: int) -> str:
|
||||||
lang = roxywi_common.get_user_lang_for_flask()
|
lang = roxywi_common.get_user_lang_for_flask()
|
||||||
services = sql.select_services()
|
services = sql.select_services()
|
||||||
|
|
||||||
|
@ -83,8 +83,8 @@ def get_user_services(user_id: int) -> None:
|
||||||
def change_user_services(user: str, user_id: int, user_services: str) -> str:
|
def change_user_services(user: str, user_id: int, user_services: str) -> str:
|
||||||
services = ''
|
services = ''
|
||||||
|
|
||||||
for k, v in user_services.items():
|
for _k, v in user_services.items():
|
||||||
for k2, v2 in v.items():
|
for k2, _v2 in v.items():
|
||||||
services += ' ' + k2
|
services += ' ' + k2
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -112,7 +112,7 @@ def get_user_active_group(uuid: str, group: str) -> str:
|
||||||
return render_template('ajax/user_current_group.html', groups=groups, group=group, id=group_id, lang=lang)
|
return render_template('ajax/user_current_group.html', groups=groups, group=group, id=group_id, lang=lang)
|
||||||
|
|
||||||
|
|
||||||
def show_user_groups_and_roles(user_id: int, lang: str) -> None:
|
def show_user_groups_and_roles(user_id: int, lang: str) -> str:
|
||||||
groups = sql.select_user_groups_with_names(user_id, user_not_in_group=1)
|
groups = sql.select_user_groups_with_names(user_id, user_not_in_group=1)
|
||||||
roles = sql.select_roles()
|
roles = sql.select_roles()
|
||||||
user_groups = sql.select_user_groups_with_names(user_id)
|
user_groups = sql.select_user_groups_with_names(user_id)
|
||||||
|
@ -126,7 +126,7 @@ def is_current_user(user_id: int, user_uuid: str) -> bool:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def save_user_group_and_role(user: str, groups_and_roles: str, user_uuid: str) -> str:
|
def save_user_group_and_role(user: str, groups_and_roles: dict, user_uuid: str) -> str:
|
||||||
resp = make_response('ok')
|
resp = make_response('ok')
|
||||||
for k, v in groups_and_roles.items():
|
for k, v in groups_and_roles.items():
|
||||||
user_id = int(k)
|
user_id = int(k)
|
||||||
|
|
|
@ -50,7 +50,7 @@ def get_exp_version(server_ip: str, service_name: str) -> str:
|
||||||
if service_name == 'haproxy':
|
if service_name == 'haproxy':
|
||||||
commands = ["/opt/prometheus/exporters/haproxy_exporter --version 2>&1 |head -1|awk '{print $3}'"]
|
commands = ["/opt/prometheus/exporters/haproxy_exporter --version 2>&1 |head -1|awk '{print $3}'"]
|
||||||
elif service_name == 'nginx':
|
elif service_name == 'nginx':
|
||||||
commands = ["/opt/prometheus/exporters/nginx_exporter 2>&1 |head -1 |awk -F\"=\" '{print $2}'|awk '{print $1}'"]
|
commands = ["/opt/prometheus/exporters/nginx_exporter --version 2>&1 |head -1 |awk -F\"version\" '{print $2}'|awk '{print $1}'"]
|
||||||
elif service_name == 'node':
|
elif service_name == 'node':
|
||||||
commands = ["node_exporter --version 2>&1 |head -1|awk '{print $3}'"]
|
commands = ["node_exporter --version 2>&1 |head -1|awk '{print $3}'"]
|
||||||
elif service_name == 'apache':
|
elif service_name == 'apache':
|
||||||
|
@ -119,7 +119,7 @@ def check_haproxy_config(server_ip):
|
||||||
print(f'error: {e}')
|
print(f'error: {e}')
|
||||||
|
|
||||||
|
|
||||||
def check_nginx_config(server_ip):
|
def check_nginx_config(server_ip) -> bool:
|
||||||
commands = [f"nginx -q -t -p {sql.get_setting('nginx_dir')}"]
|
commands = [f"nginx -q -t -p {sql.get_setting('nginx_dir')}"]
|
||||||
|
|
||||||
with mod_ssh.ssh_connect(server_ip) as ssh:
|
with mod_ssh.ssh_connect(server_ip) as ssh:
|
||||||
|
@ -131,7 +131,7 @@ def check_nginx_config(server_ip):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def overview_backends(server_ip: str, service: str) -> None:
|
def overview_backends(server_ip: str, service: str) -> str:
|
||||||
import modules.config.config as config_mod
|
import modules.config.config as config_mod
|
||||||
|
|
||||||
lang = roxywi_common.get_user_lang_for_flask()
|
lang = roxywi_common.get_user_lang_for_flask()
|
||||||
|
@ -188,18 +188,13 @@ def get_overview_last_edit(server_ip: str, service: str) -> str:
|
||||||
|
|
||||||
|
|
||||||
def get_stat_page(server_ip: str, service: str) -> str:
|
def get_stat_page(server_ip: str, service: str) -> str:
|
||||||
if service in ('nginx', 'apache'):
|
stats_user = sql.get_setting(f'{service}_stats_user')
|
||||||
stats_user = sql.get_setting(f'{service}_stats_user')
|
stats_pass = sql.get_setting(f'{service}_stats_password')
|
||||||
stats_pass = sql.get_setting(f'{service}_stats_password')
|
stats_port = sql.get_setting(f'{service}_stats_port')
|
||||||
stats_port = sql.get_setting(f'{service}_stats_port')
|
stats_page = sql.get_setting(f'{service}_stats_page')
|
||||||
stats_page = sql.get_setting(f'{service}_stats_page')
|
|
||||||
else:
|
|
||||||
stats_user = sql.get_setting('stats_user')
|
|
||||||
stats_pass = sql.get_setting('stats_password')
|
|
||||||
stats_port = sql.get_setting('stats_port')
|
|
||||||
stats_page = sql.get_setting('stats_page')
|
|
||||||
try:
|
try:
|
||||||
response = requests.get(f'http://{server_ip}:{stats_port}/{stats_page}', auth=(stats_user, stats_pass))
|
response = requests.get(f'http://{server_ip}:{stats_port}/{stats_page}', auth=(stats_user, stats_pass), timeout=5)
|
||||||
except requests.exceptions.ConnectTimeout:
|
except requests.exceptions.ConnectTimeout:
|
||||||
return 'error: Oops. Connection timeout occurred!'
|
return 'error: Oops. Connection timeout occurred!'
|
||||||
except requests.exceptions.ReadTimeout:
|
except requests.exceptions.ReadTimeout:
|
||||||
|
|
|
@ -31,11 +31,11 @@ def create_cluster(cluster: object, group_id: int) -> str:
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return f'error: Cannon add VIP: {e}'
|
return f'error: Cannon add VIP: {e}'
|
||||||
|
|
||||||
for slave_id, value in cluster['servers'].items():
|
for _slave_id, value in cluster['servers'].items():
|
||||||
if value['master']:
|
if value['master']:
|
||||||
master_ip = value['ip']
|
master_ip = value['ip']
|
||||||
|
|
||||||
for slave_id, value in cluster['servers'].items():
|
for _slave_id, value in cluster['servers'].items():
|
||||||
if value['master']:
|
if value['master']:
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
|
@ -194,7 +194,7 @@ def update_slaves(json_data: object, router_id: int) -> None:
|
||||||
server_ids = []
|
server_ids = []
|
||||||
server_ids_from_json = []
|
server_ids_from_json = []
|
||||||
|
|
||||||
for slave_id, value in cluster['servers'].items():
|
for _slave_id, value in cluster['servers'].items():
|
||||||
if value['master']:
|
if value['master']:
|
||||||
master_ip = common.is_ip_or_dns(value['ip'])
|
master_ip = common.is_ip_or_dns(value['ip'])
|
||||||
|
|
||||||
|
@ -226,7 +226,7 @@ def update_slaves(json_data: object, router_id: int) -> None:
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise Exception(f'error: Cannot recreate slaves server: {e}')
|
raise Exception(f'error: Cannot recreate slaves server: {e}')
|
||||||
|
|
||||||
for slave_id, value in cluster['servers'].items():
|
for _slave_id, value in cluster['servers'].items():
|
||||||
if value['master']:
|
if value['master']:
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
|
@ -251,7 +251,7 @@ def add_or_update_virt(cluster: object, cluster_id: int, vip_id: int, group_id:
|
||||||
vip = common.is_ip_or_dns(cluster['vip'])
|
vip = common.is_ip_or_dns(cluster['vip'])
|
||||||
cluster_name = common.checkAjaxInput(cluster['name'])
|
cluster_name = common.checkAjaxInput(cluster['name'])
|
||||||
|
|
||||||
for slave_id, value in cluster['servers'].items():
|
for _slave_id, value in cluster['servers'].items():
|
||||||
if value['master']:
|
if value['master']:
|
||||||
master_ip = common.is_ip_or_dns(value['ip'])
|
master_ip = common.is_ip_or_dns(value['ip'])
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ def is_tool_active(tool_name: str) -> str:
|
||||||
|
|
||||||
def update_cur_tool_versions() -> None:
|
def update_cur_tool_versions() -> None:
|
||||||
tools = sql.get_all_tools()
|
tools = sql.get_all_tools()
|
||||||
for s, v in tools.items():
|
for s, _v in tools.items():
|
||||||
update_cur_tool_version(s)
|
update_cur_tool_version(s)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -137,6 +137,7 @@ def nettols_check(check):
|
||||||
@login_required
|
@login_required
|
||||||
@get_user_params()
|
@get_user_params()
|
||||||
def service_history(service, server_ip):
|
def service_history(service, server_ip):
|
||||||
|
history = ''
|
||||||
server_ip = common.checkAjaxInput(server_ip)
|
server_ip = common.checkAjaxInput(server_ip)
|
||||||
|
|
||||||
if service in ('haproxy', 'nginx', 'keepalived', 'apache', 'cluster'):
|
if service in ('haproxy', 'nginx', 'keepalived', 'apache', 'cluster'):
|
||||||
|
@ -154,6 +155,8 @@ def service_history(service, server_ip):
|
||||||
history = sql.select_action_history_by_server_id(server_id)
|
history = sql.select_action_history_by_server_id(server_id)
|
||||||
elif service == 'user':
|
elif service == 'user':
|
||||||
history = sql.select_action_history_by_user_id(server_ip)
|
history = sql.select_action_history_by_user_id(server_ip)
|
||||||
|
else:
|
||||||
|
abort(404, f'History not found')
|
||||||
|
|
||||||
kwargs = {
|
kwargs = {
|
||||||
'user_params': g.user_params,
|
'user_params': g.user_params,
|
||||||
|
|
|
@ -784,7 +784,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
{% for option in options %}
|
{% for option in options %}
|
||||||
<tr id="option-{{ option.id }}" class="{{ loop.cycle('odd', 'even') }}">
|
<tr id="option-{{ option.id }}" class="{{ loop.cycle('odd', 'even') }}">
|
||||||
{% if option.groups == group or group == '1' %}
|
{% if option.groups|string() == user_params['group_id']|string() or group|string() == '1' %}
|
||||||
<td class="padding10 first-collumn">
|
<td class="padding10 first-collumn">
|
||||||
{{ option.id }}
|
{{ option.id }}
|
||||||
</td>
|
</td>
|
||||||
|
@ -833,7 +833,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
{% for s in saved_servers %}
|
{% for s in saved_servers %}
|
||||||
<tr id="servers-saved-{{ s.id }}" class="{{ loop.cycle('odd', 'even') }}">
|
<tr id="servers-saved-{{ s.id }}" class="{{ loop.cycle('odd', 'even') }}">
|
||||||
{% if s.groups == group or group == '1' %}
|
{% if s.groups|string() == user_params['group_id']|string() or group|string() == '1' %}
|
||||||
<td class="padding10 first-collumn">
|
<td class="padding10 first-collumn">
|
||||||
<input type="text" id="servers-ip-{{ s.id }}" value="{{ s.server }}" size="15" class="form-control">
|
<input type="text" id="servers-ip-{{ s.id }}" value="{{ s.server }}" size="15" class="form-control">
|
||||||
</td>
|
</td>
|
||||||
|
@ -1115,7 +1115,7 @@
|
||||||
<div id="dialog-confirm-cert" title="View certificate " style="display: none;">
|
<div id="dialog-confirm-cert" title="View certificate " style="display: none;">
|
||||||
<pre id="dialog-confirm-body"></pre>
|
<pre id="dialog-confirm-body"></pre>
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" id="group" value="{{ group }}">
|
<input type="hidden" id="group_id" value="{{ user_params['group_id']|string() }}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -79,7 +79,7 @@
|
||||||
<div id="dialog-confirm-cert" title="View certificate " style="display: none;">
|
<div id="dialog-confirm-cert" title="View certificate " style="display: none;">
|
||||||
<pre id="dialog-confirm-body"></pre>
|
<pre id="dialog-confirm-body"></pre>
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" id="group" value="{{ group }}">
|
<input type="hidden" id="group_id" value="{{ user_params['group_id'] }}">
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
$( function() {
|
$( function() {
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<span id="cluster-desc-{{cluster.id}}">{% if cluster.desc != '' %} ({{cluster.desc}}) {% endif %}</span>
|
<span id="cluster-desc-{{cluster.id}}">{% if cluster.desc != '' %} ({{cluster.desc}}) {% endif %}</span>
|
||||||
</a>
|
</a>
|
||||||
<span class="server-action">
|
<span class="server-action">
|
||||||
{% if user_params['role'] <= 2 %}
|
{% if user_params['role'] <= 3 %}
|
||||||
<a class="plus" onclick="add_vip_ha_cluster('{{cluster.id}}', '{{cluster.name}}')"></a>
|
<a class="plus" onclick="add_vip_ha_cluster('{{cluster.id}}', '{{cluster.name}}')"></a>
|
||||||
<a class="edit" onclick="createHaClusterStep1(true, '{{cluster.id}}')"></a>
|
<a class="edit" onclick="createHaClusterStep1(true, '{{cluster.id}}')"></a>
|
||||||
<a class="delete" onclick="confirmDeleteCluster('{{cluster.id}}')"></a>
|
<a class="delete" onclick="confirmDeleteCluster('{{cluster.id}}')"></a>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{% import 'languages/'+lang|default('en')+'.html' as lang %}
|
{% import 'languages/'+lang|default('en')+'.html' as lang %}
|
||||||
{% for service in service_status %}
|
{% for service in service_status %}
|
||||||
<td class="padding10 first-collumn">
|
<td class="padding10 first-collumn">
|
||||||
<a href="/app/history/server/{{ service.1 }}" title="{{service.0 }} history" class="logs_link">
|
<a href="/app/history/server/{{ service.1 }}" title="{{service.0 }} {{lang.words.history}}" class="logs_link">
|
||||||
{{ service.0 }}
|
{{ service.0 }}
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
|
|
158
inc/add.js
158
inc/add.js
|
@ -1,7 +1,8 @@
|
||||||
var ssl_offloading_var = "http-request set-header X-Forwarded-Port %[dst_port] \n"+
|
var ssl_offloading_var = "http-request set-header X-Forwarded-Port %[dst_port] \n"+
|
||||||
"http-request add-header X-Forwarded-Proto https if { ssl_fc } \n"+
|
"http-request add-header X-Forwarded-Proto https if { ssl_fc } \n"+
|
||||||
"redirect scheme https if !{ ssl_fc } \n"
|
"redirect scheme https if !{ ssl_fc } \n"
|
||||||
|
var delete_word = $('#translate').attr('data-delete');
|
||||||
|
var cancel_word = $('#translate').attr('data-cancel');
|
||||||
$( function() {
|
$( function() {
|
||||||
$("#listen-mode-select").on('selectmenuchange', function () {
|
$("#listen-mode-select").on('selectmenuchange', function () {
|
||||||
if ($("#listen-mode-select option:selected").val() == "tcp") {
|
if ($("#listen-mode-select option:selected").val() == "tcp") {
|
||||||
|
@ -252,7 +253,6 @@ $( function() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
var availableTags = [
|
var availableTags = [
|
||||||
"acl", "hdr(host)", "hdr_beg(host)", "hdr_dom(host)", "http-request", "http-response", "set-uri", "set-url", "set-header", "add-header", "del-header", "replace-header", "path_beg", "url_beg()", "urlp_sub()", "set cookie", "dynamic-cookie-key", "mysql-check", "tcpka", "tcplog", "forwardfor", "option"
|
"acl", "hdr(host)", "hdr_beg(host)", "hdr_dom(host)", "http-request", "http-response", "set-uri", "set-url", "set-header", "add-header", "del-header", "replace-header", "path_beg", "url_beg()", "urlp_sub()", "set cookie", "dynamic-cookie-key", "mysql-check", "tcpka", "tcplog", "forwardfor", "option"
|
||||||
];
|
];
|
||||||
|
@ -330,7 +330,7 @@ $( function() {
|
||||||
request.term = 1
|
request.term = 1
|
||||||
}
|
}
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "/app/add/haproxy/bwlists/black/" + $("#group").val(),
|
url: "/app/add/haproxy/bwlists/black/" + $("#group_id").val(),
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
data = data.replace(/\s+/g, ' ');
|
data = data.replace(/\s+/g, ' ');
|
||||||
response(data.split(" "));
|
response(data.split(" "));
|
||||||
|
@ -346,7 +346,7 @@ $( function() {
|
||||||
request.term = 1
|
request.term = 1
|
||||||
}
|
}
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "/app/add/haproxy/bwlists/black/" + $("#group").val(),
|
url: "/app/add/haproxy/bwlists/black/" + $("#group_id").val(),
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
data = data.replace(/\s+/g, ' ');
|
data = data.replace(/\s+/g, ' ');
|
||||||
response(data.split(" "));
|
response(data.split(" "));
|
||||||
|
@ -362,7 +362,7 @@ $( function() {
|
||||||
request.term = 1
|
request.term = 1
|
||||||
}
|
}
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "/app/add/haproxy/bwlists/white/" + $("#group").val(),
|
url: "/app/add/haproxy/bwlists/white/" + $("#group_id").val(),
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
data = data.replace(/\s+/g, ' ');
|
data = data.replace(/\s+/g, ' ');
|
||||||
response(data.split(" "));
|
response(data.split(" "));
|
||||||
|
@ -378,7 +378,7 @@ $( function() {
|
||||||
request.term = 1
|
request.term = 1
|
||||||
}
|
}
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "/app/add/haproxy/bwlists/white/" + $("#group").val(),
|
url: "/app/add/haproxy/bwlists/white/" + $("#group_id").val(),
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
data = data.replace(/\s+/g, ' ');
|
data = data.replace(/\s+/g, ' ');
|
||||||
response(data.split(" "));
|
response(data.split(" "));
|
||||||
|
@ -412,7 +412,7 @@ $( function() {
|
||||||
});
|
});
|
||||||
$("#saved-options").autocomplete({
|
$("#saved-options").autocomplete({
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
source: "/app/add/option/get/" + $('#group').val(),
|
source: "/app/add/option/get/" + $('#group_id').val(),
|
||||||
autoFocus: true,
|
autoFocus: true,
|
||||||
minLength: 1,
|
minLength: 1,
|
||||||
select: function (event, ui) {
|
select: function (event, ui) {
|
||||||
|
@ -431,10 +431,9 @@ $( function() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#saved-options1").autocomplete({
|
$("#saved-options1").autocomplete({
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
source: "/app/add/option/get/" + $('#group').val(),
|
source: "/app/add/option/get/" + $('#group_id').val(),
|
||||||
autoFocus: true,
|
autoFocus: true,
|
||||||
minLength: 1,
|
minLength: 1,
|
||||||
select: function (event, ui) {
|
select: function (event, ui) {
|
||||||
|
@ -455,7 +454,7 @@ $( function() {
|
||||||
});
|
});
|
||||||
$("#saved-options2").autocomplete({
|
$("#saved-options2").autocomplete({
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
source: "/app/add/option/get/" + $('#group').val(),
|
source: "/app/add/option/get/" + $('#group_id').val(),
|
||||||
autoFocus: true,
|
autoFocus: true,
|
||||||
minLength: 1,
|
minLength: 1,
|
||||||
select: function (event, ui) {
|
select: function (event, ui) {
|
||||||
|
@ -473,8 +472,7 @@ $( function() {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "/app/add/option/save",
|
url: "/app/add/option/save",
|
||||||
data: {
|
data: {
|
||||||
option: $('#new-option').val(),
|
option: $('#new-option').val()
|
||||||
option_group: $('#group').val()
|
|
||||||
},
|
},
|
||||||
type: "POST",
|
type: "POST",
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
|
@ -496,7 +494,7 @@ $( function() {
|
||||||
|
|
||||||
});
|
});
|
||||||
$('[name=servers]').autocomplete({
|
$('[name=servers]').autocomplete({
|
||||||
source: "/app/add/server/get/" + $('#group').val(),
|
source: "/app/add/server/get/" + $('#group_id').val(),
|
||||||
autoFocus: true,
|
autoFocus: true,
|
||||||
minLength: 1,
|
minLength: 1,
|
||||||
select: function (event, ui) {
|
select: function (event, ui) {
|
||||||
|
@ -519,7 +517,6 @@ $( function() {
|
||||||
url: "/app/add/server/save",
|
url: "/app/add/server/save",
|
||||||
data: {
|
data: {
|
||||||
server: $('#new-saved-servers').val(),
|
server: $('#new-saved-servers').val(),
|
||||||
group: $('#group').val(),
|
|
||||||
desc: $('#new-saved-servers-description').val()
|
desc: $('#new-saved-servers-description').val()
|
||||||
},
|
},
|
||||||
type: "POST",
|
type: "POST",
|
||||||
|
@ -1026,7 +1023,6 @@ $( function() {
|
||||||
} else {
|
} else {
|
||||||
replace_text("#optionsInput1", ssl_offloading_var);
|
replace_text("#optionsInput1", ssl_offloading_var);
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
$('#ssl_offloading2').click(function () {
|
$('#ssl_offloading2').click(function () {
|
||||||
if ($('#optionsInput2').val().indexOf('ssl_fc ') == '-1') {
|
if ($('#optionsInput2').val().indexOf('ssl_fc ') == '-1') {
|
||||||
|
@ -1035,7 +1031,6 @@ $( function() {
|
||||||
replace_text("#optionsInput2", ssl_offloading_var);
|
replace_text("#optionsInput2", ssl_offloading_var);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$(".redirectListen").on("click", function () {
|
$(".redirectListen").on("click", function () {
|
||||||
resetProxySettings();
|
resetProxySettings();
|
||||||
$("#tabs").tabs("option", "active", 1);
|
$("#tabs").tabs("option", "active", 1);
|
||||||
|
@ -1057,7 +1052,6 @@ $( function() {
|
||||||
$("#tabs").tabs("option", "active", 4);
|
$("#tabs").tabs("option", "active", 4);
|
||||||
$("#serv5").selectmenu("open");
|
$("#serv5").selectmenu("open");
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#create-http-listen").on("click", function () {
|
$("#create-http-listen").on("click", function () {
|
||||||
resetProxySettings();
|
resetProxySettings();
|
||||||
createHttp(1, 'listen');
|
createHttp(1, 'listen');
|
||||||
|
@ -1284,7 +1278,7 @@ function createHttp(TabId, proxy) {
|
||||||
TabId = '';
|
TabId = '';
|
||||||
}
|
}
|
||||||
$( "#serv"+TabId ).selectmenu( "open" );
|
$( "#serv"+TabId ).selectmenu( "open" );
|
||||||
history.pushState('Add '+proxy, 'Add '+proxy, 'add.py#'+proxy)
|
history.pushState('Add '+proxy, 'Add '+proxy, 'add/haproxy#'+proxy)
|
||||||
}
|
}
|
||||||
function createSsl(TabId, proxy) {
|
function createSsl(TabId, proxy) {
|
||||||
$('[name=port]').val('443');
|
$('[name=port]').val('443');
|
||||||
|
@ -1303,7 +1297,7 @@ function createSsl(TabId, proxy) {
|
||||||
TabId = '';
|
TabId = '';
|
||||||
}
|
}
|
||||||
$( "#serv"+TabId ).selectmenu( "open" );
|
$( "#serv"+TabId ).selectmenu( "open" );
|
||||||
history.pushState('Add'+proxy, 'Add'+proxy, 'add.py#'+proxy)
|
history.pushState('Add'+proxy, 'Add'+proxy, 'add/haproxy#'+proxy)
|
||||||
}
|
}
|
||||||
function createHttps(TabId, proxy) {
|
function createHttps(TabId, proxy) {
|
||||||
$('[name=port]').val('443');
|
$('[name=port]').val('443');
|
||||||
|
@ -1317,25 +1311,28 @@ function createHttps(TabId, proxy) {
|
||||||
TabId = '';
|
TabId = '';
|
||||||
}
|
}
|
||||||
$( "#serv"+TabId ).selectmenu( "open" );
|
$( "#serv"+TabId ).selectmenu( "open" );
|
||||||
history.pushState('Add'+proxy, 'Add'+proxy, 'add.py#'+proxy)
|
history.pushState('Add'+proxy, 'Add'+proxy, 'add/haproxy#'+proxy)
|
||||||
}
|
}
|
||||||
function confirmDeleteOption(id) {
|
function confirmDeleteOption(id) {
|
||||||
$( "#dialog-confirm" ).dialog({
|
$("#dialog-confirm").dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
height: "auto",
|
height: "auto",
|
||||||
width: 400,
|
width: 400,
|
||||||
modal: true,
|
modal: true,
|
||||||
title: "Are you sure you want to delete " +$('#option-'+id).val() + "?",
|
title: delete_word + " " + $('#option-body-' + id).val() + "?",
|
||||||
buttons: {
|
buttons: [{
|
||||||
"Delete": function() {
|
text: delete_word,
|
||||||
$( this ).dialog( "close" );
|
click: function () {
|
||||||
removeOption(id);
|
$(this).dialog("close");
|
||||||
},
|
removeOption(id);
|
||||||
Cancel: function() {
|
}
|
||||||
$( this ).dialog( "close" );
|
}, {
|
||||||
}
|
text: cancel_word,
|
||||||
}
|
click: function () {
|
||||||
});
|
$(this).dialog("close");
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
});
|
||||||
}
|
}
|
||||||
function removeOption(id) {
|
function removeOption(id) {
|
||||||
$("#option-"+id).css("background-color", "#f2dede");
|
$("#option-"+id).css("background-color", "#f2dede");
|
||||||
|
@ -1374,22 +1371,25 @@ function updateOptions(id) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function confirmDeleteSavedServer(id) {
|
function confirmDeleteSavedServer(id) {
|
||||||
$( "#dialog-confirm" ).dialog({
|
$("#dialog-confirm").dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
height: "auto",
|
height: "auto",
|
||||||
width: 400,
|
width: 400,
|
||||||
modal: true,
|
modal: true,
|
||||||
title: "Are you sure you want to delete " +$('#servers-saved-'+id).val() + "?",
|
title: delete_word + " " + $('#servers-ip-' + id).val() + "?",
|
||||||
buttons: {
|
buttons: [{
|
||||||
"Delete": function() {
|
text: delete_word,
|
||||||
$( this ).dialog( "close" );
|
click: function () {
|
||||||
removeSavedServer(id);
|
$(this).dialog("close");
|
||||||
},
|
removeSavedServer(id);
|
||||||
Cancel: function() {
|
}
|
||||||
$( this ).dialog( "close" );
|
}, {
|
||||||
}
|
text: cancel_word,
|
||||||
}
|
click: function () {
|
||||||
});
|
$(this).dialog("close");
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
});
|
||||||
}
|
}
|
||||||
function removeSavedServer(id) {
|
function removeSavedServer(id) {
|
||||||
$("#servers-saved-"+id).css("background-color", "#f2dede");
|
$("#servers-saved-"+id).css("background-color", "#f2dede");
|
||||||
|
@ -1427,8 +1427,6 @@ function updateSavedServer(id) {
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
function view_ssl(id) {
|
function view_ssl(id) {
|
||||||
var delete_word = $('#translate').attr('data-delete');
|
|
||||||
var cancel_word = $('#translate').attr('data-cancel');
|
|
||||||
var raw_word = $('#translate').attr('data-raw');
|
var raw_word = $('#translate').attr('data-raw');
|
||||||
if(!checkIsServerFiled('#serv5')) return false;
|
if(!checkIsServerFiled('#serv5')) return false;
|
||||||
$.ajax( {
|
$.ajax( {
|
||||||
|
@ -1467,8 +1465,6 @@ function view_ssl(id) {
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
function showRawSSL(id) {
|
function showRawSSL(id) {
|
||||||
var delete_word = $('#translate').attr('data-delete');
|
|
||||||
var cancel_word = $('#translate').attr('data-cancel');
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "/app/add/cert/get/raw/" + $('#serv5').val() + "/" + id,
|
url: "/app/add/cert/get/raw/" + $('#serv5').val() + "/" + id,
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
|
@ -1564,8 +1560,7 @@ function createList(color) {
|
||||||
url: "/app/add/haproxy/bwlist/create",
|
url: "/app/add/haproxy/bwlist/create",
|
||||||
data: {
|
data: {
|
||||||
bwlists_create: list,
|
bwlists_create: list,
|
||||||
color: color,
|
color: color
|
||||||
group: $('#group').val()
|
|
||||||
},
|
},
|
||||||
type: "POST",
|
type: "POST",
|
||||||
success: function( data ) {
|
success: function( data ) {
|
||||||
|
@ -1586,14 +1581,12 @@ function createList(color) {
|
||||||
}
|
}
|
||||||
function editList(list, color) {
|
function editList(list, color) {
|
||||||
$.ajax( {
|
$.ajax( {
|
||||||
url: "/app/add/haproxy/bwlist/" + list + "/" + color + "/" + $('#group').val(),
|
url: "/app/add/haproxy/bwlist/" + list + "/" + color + "/" + $('#group_id').val(),
|
||||||
success: function( data ) {
|
success: function( data ) {
|
||||||
if (data.indexOf('error:') != '-1') {
|
if (data.indexOf('error:') != '-1') {
|
||||||
toastr.error(data);
|
toastr.error(data);
|
||||||
} else {
|
} else {
|
||||||
var cancel_word = $('#translate').attr('data-cancel');
|
|
||||||
var save_word = $('#translate').attr('data-just_save');
|
var save_word = $('#translate').attr('data-just_save');
|
||||||
var delete_word = $('#translate').attr('data-delete');
|
|
||||||
var upload_and_reload = $('#translate').attr('data-upload_and_reload');
|
var upload_and_reload = $('#translate').attr('data-upload_and_reload');
|
||||||
var upload_and_restart = $('#translate').attr('data-upload_and_restart');
|
var upload_and_restart = $('#translate').attr('data-upload_and_restart');
|
||||||
var edit_word = $('#translate').attr('data-edit');
|
var edit_word = $('#translate').attr('data-edit');
|
||||||
|
@ -1649,7 +1642,6 @@ function saveList(action, list, color) {
|
||||||
serv: serv,
|
serv: serv,
|
||||||
bwlists_content: $('#edit_lists').val(),
|
bwlists_content: $('#edit_lists').val(),
|
||||||
color: color,
|
color: color,
|
||||||
group: $('#group').val(),
|
|
||||||
bwlists_restart: action
|
bwlists_restart: action
|
||||||
},
|
},
|
||||||
type: "POST",
|
type: "POST",
|
||||||
|
@ -1673,7 +1665,7 @@ function deleteList(list, color) {
|
||||||
var serv = $( "#serv-"+color+"-list option:selected" ).val();
|
var serv = $( "#serv-"+color+"-list option:selected" ).val();
|
||||||
if(!checkIsServerFiled($("#serv-"+color+"-list"))) return false;
|
if(!checkIsServerFiled($("#serv-"+color+"-list"))) return false;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "/app/add/haproxy/bwlist/delete/" + serv + "/" + color + "/" + list + "/" + $('#group').val(),
|
url: "/app/add/haproxy/bwlist/delete/" + serv + "/" + color + "/" + list + "/" + $('#group_id').val(),
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
if (data.indexOf('error:') != '-1' || data.indexOf('Failed') != '-1' || data.indexOf('Errno') != '-1') {
|
if (data.indexOf('error:') != '-1' || data.indexOf('Failed') != '-1' || data.indexOf('Errno') != '-1') {
|
||||||
toastr.error(data);
|
toastr.error(data);
|
||||||
|
@ -1692,10 +1684,9 @@ function createMap() {
|
||||||
map_name = $('#new_map_name').val()
|
map_name = $('#new_map_name').val()
|
||||||
map_name = escapeHtml(map_name);
|
map_name = escapeHtml(map_name);
|
||||||
$.ajax( {
|
$.ajax( {
|
||||||
url: "/app/add/map/create",
|
url: "/app/add/map",
|
||||||
data: {
|
data: {
|
||||||
map_create: map_name,
|
map_name: map_name
|
||||||
group: $('#group').val()
|
|
||||||
},
|
},
|
||||||
type: "POST",
|
type: "POST",
|
||||||
success: function( data ) {
|
success: function( data ) {
|
||||||
|
@ -1715,30 +1706,27 @@ function createMap() {
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
function editMap(map) {
|
function editMap(map) {
|
||||||
$.ajax( {
|
$.ajax({
|
||||||
url: "/app/add/map/edit",
|
url: "/app/add/map",
|
||||||
data: {
|
data: {
|
||||||
edit_map: map,
|
map_name: map,
|
||||||
group: $('#group').val()
|
|
||||||
},
|
},
|
||||||
type: "POST",
|
type: "GET",
|
||||||
success: function( data ) {
|
success: function (data) {
|
||||||
if (data.indexOf('error:') != '-1') {
|
if (data.indexOf('error:') != '-1') {
|
||||||
toastr.error(data);
|
toastr.error(data);
|
||||||
} else {
|
} else {
|
||||||
var cancel_word = $('#translate').attr('data-cancel');
|
|
||||||
var save_word = $('#translate').attr('data-just_save');
|
var save_word = $('#translate').attr('data-just_save');
|
||||||
var delete_word = $('#translate').attr('data-delete');
|
|
||||||
var upload_and_reload = $('#translate').attr('data-upload_and_reload');
|
var upload_and_reload = $('#translate').attr('data-upload_and_reload');
|
||||||
var upload_and_restart = $('#translate').attr('data-upload_and_restart');
|
var upload_and_restart = $('#translate').attr('data-upload_and_restart');
|
||||||
var edit_word = $('#translate').attr('data-edit');
|
var edit_word = $('#translate').attr('data-edit');
|
||||||
$('#edit_map').text(data);
|
$('#edit_map').text(data);
|
||||||
$( "#dialog-confirm-map-edit" ).dialog({
|
$("#dialog-confirm-map-edit").dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
height: "auto",
|
height: "auto",
|
||||||
width: 650,
|
width: 650,
|
||||||
modal: true,
|
modal: true,
|
||||||
title: edit_word + " "+map,
|
title: edit_word + " " + map,
|
||||||
buttons: [{
|
buttons: [{
|
||||||
text: delete_word,
|
text: delete_word,
|
||||||
click: function () {
|
click: function () {
|
||||||
|
@ -1772,21 +1760,20 @@ function editMap(map) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} );
|
});
|
||||||
}
|
}
|
||||||
function saveMap(action, map) {
|
function saveMap(action, map) {
|
||||||
var serv = $( "#serv-map option:selected" ).val();
|
var serv = $( "#serv-map option:selected" ).val();
|
||||||
if(!checkIsServerFiled($("#serv-map"))) return false;
|
if(!checkIsServerFiled($("#serv-map"))) return false;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "/app/add/map/save",
|
url: "/app/add/map",
|
||||||
data: {
|
data: {
|
||||||
map_save: map,
|
map_name: map,
|
||||||
serv: serv,
|
serv: serv,
|
||||||
content: $('#edit_map').val(),
|
content: $('#edit_map').val(),
|
||||||
group: $('#group').val(),
|
|
||||||
map_restart: action
|
map_restart: action
|
||||||
},
|
},
|
||||||
type: "POST",
|
type: "PUT",
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
data = data.split(" , ");
|
data = data.split(" , ");
|
||||||
for (i = 0; i < data.length; i++) {
|
for (i = 0; i < data.length; i++) {
|
||||||
|
@ -1807,13 +1794,12 @@ function deleteMap(map) {
|
||||||
var serv = $( "#serv-map option:selected" ).val();
|
var serv = $( "#serv-map option:selected" ).val();
|
||||||
if(!checkIsServerFiled($("#serv-map"))) return false;
|
if(!checkIsServerFiled($("#serv-map"))) return false;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "/app/add/map/delete",
|
url: "/app/add/map",
|
||||||
data: {
|
data: {
|
||||||
map_delete: map,
|
map_name: map,
|
||||||
serv: serv,
|
serv: serv,
|
||||||
group: $('#group').val()
|
|
||||||
},
|
},
|
||||||
type: "POST",
|
type: "DELETE",
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
if (data.indexOf('error:') != '-1' || data.indexOf('Failed') != '-1' || data.indexOf('Errno') != '-1') {
|
if (data.indexOf('error:') != '-1' || data.indexOf('Failed') != '-1' || data.indexOf('Errno') != '-1') {
|
||||||
toastr.error(data);
|
toastr.error(data);
|
||||||
|
@ -1983,8 +1969,6 @@ function addProxy(form_name) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function confirmDeleting(deleting_thing, id, dialog_id, color) {
|
function confirmDeleting(deleting_thing, id, dialog_id, color) {
|
||||||
var cancel_word = $('#translate').attr('data-cancel');
|
|
||||||
var delete_word = $('#translate').attr('data-delete');
|
|
||||||
$( "#dialog-confirm" ).dialog({
|
$( "#dialog-confirm" ).dialog({
|
||||||
resizable: false,
|
resizable: false,
|
||||||
height: "auto",
|
height: "auto",
|
||||||
|
|
Loading…
Reference in New Issue