mirror of https://github.com/Aidaho12/haproxy-wi
v8.1.3: Refactor server identification in certs and autocomplete logic
Updated routes and JavaScript logic to use server IDs instead of server IPs for cert and backend lookups. This improves consistency and simplifies request handling. Minor fixes in formatting and structure were also applied.pull/410/head
parent
9e791c7111
commit
05279fa64f
|
@ -188,14 +188,10 @@ def delete_saved_server(server_id):
|
||||||
return roxywi_common.handler_exceptions_for_json_data(e, 'Cannot delete server')
|
return roxywi_common.handler_exceptions_for_json_data(e, 'Cannot delete server')
|
||||||
|
|
||||||
|
|
||||||
@bp.route('/certs/<int:server_ip>')
|
@bp.route('/certs/<int:server_id>')
|
||||||
@bp.route('/certs/<server_ip>')
|
def get_certs(server_id: int):
|
||||||
@validate()
|
server_ip = server_sql.get_server(server_id).ip
|
||||||
def get_certs(server_ip: Union[IPvAnyAddress, DomainName, int]):
|
return add_mod.get_ssl_certs(server_ip)
|
||||||
if isinstance(server_ip, int):
|
|
||||||
server = server_sql.get_server(server_ip)
|
|
||||||
server_ip = server.ip
|
|
||||||
return add_mod.get_ssl_certs(str(server_ip))
|
|
||||||
|
|
||||||
|
|
||||||
@bp.route('/cert/<server_ip>/<cert_id>', methods=['DELETE', 'GET'])
|
@bp.route('/cert/<server_ip>/<cert_id>', methods=['DELETE', 'GET'])
|
||||||
|
|
|
@ -30,7 +30,7 @@ def runtimeapi():
|
||||||
@bp.route('/backends/<int:server_ip>')
|
@bp.route('/backends/<int:server_ip>')
|
||||||
@bp.route('/backends/<server_ip>')
|
@bp.route('/backends/<server_ip>')
|
||||||
@validate()
|
@validate()
|
||||||
def show_backends(server_ip: Union[IPvAnyAddress, DomainName, int]):
|
def show_backends(server_ip: Union[int, IPvAnyAddress, DomainName]):
|
||||||
if isinstance(server_ip, int):
|
if isinstance(server_ip, int):
|
||||||
server = server_sql.get_server(server_ip)
|
server = server_sql.get_server(server_ip)
|
||||||
server_ip = server.ip
|
server_ip = server.ip
|
||||||
|
|
|
@ -191,7 +191,7 @@ $( function() {
|
||||||
});
|
});
|
||||||
$("#backends").autocomplete({
|
$("#backends").autocomplete({
|
||||||
source: function (request, response) {
|
source: function (request, response) {
|
||||||
if (!checkIsServerFiled('#serv')) return false;
|
if (!checkIsServerFiled('#serv2')) return false;
|
||||||
if (request.term === "") {
|
if (request.term === "") {
|
||||||
request.term = 1
|
request.term = 1
|
||||||
}
|
}
|
||||||
|
@ -205,6 +205,26 @@ $( function() {
|
||||||
autoFocus: true,
|
autoFocus: true,
|
||||||
minLength: -1
|
minLength: -1
|
||||||
});
|
});
|
||||||
|
$("#frontend_acl_then_value").autocomplete({
|
||||||
|
source: function (request, response) {
|
||||||
|
if ($('#frontend_acl_then').val() === '5') {
|
||||||
|
if (!checkIsServerFiled('#serv2')) return false;
|
||||||
|
if (request.term === "") {
|
||||||
|
request.term = 1
|
||||||
|
}
|
||||||
|
$.ajax({
|
||||||
|
url: "/runtimeapi/backends/" + $("#serv2").val(),
|
||||||
|
success: function (data) {
|
||||||
|
response(data.split('<br>'));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
autoFocus: true,
|
||||||
|
minLength: -1
|
||||||
|
});
|
||||||
$("#new-option").autocomplete({
|
$("#new-option").autocomplete({
|
||||||
source: availableTags,
|
source: availableTags,
|
||||||
autoFocus: true,
|
autoFocus: true,
|
||||||
|
@ -668,9 +688,10 @@ $( function() {
|
||||||
});
|
});
|
||||||
$("#path-cert-" + section_type).autocomplete({
|
$("#path-cert-" + section_type).autocomplete({
|
||||||
source: function (request, response) {
|
source: function (request, response) {
|
||||||
|
let server = $("#add-" + section_type + " select[name='server'] option:selected");
|
||||||
if (!checkIsServerFiled("#add-" + section_type + " select[name='server'] option:selected")) return false;
|
if (!checkIsServerFiled("#add-" + section_type + " select[name='server'] option:selected")) return false;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "/add/certs/" + $('#serv2').val(),
|
url: "/add/certs/" + server.val(),
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
data = data.replace(/\s+/g, ' ');
|
data = data.replace(/\s+/g, ' ');
|
||||||
response(data.split(" "));
|
response(data.split(" "));
|
||||||
|
@ -1431,14 +1452,14 @@ function confirmDeleting(deleting_thing, id, dialog_id, color) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function deleteId(id) {
|
function deleteId(id) {
|
||||||
$('#'+id).remove();
|
$('#' + id).remove();
|
||||||
if ($('#listen_bind > p').length == 0) {
|
if ($('#listen_bind > p').length == 0) {
|
||||||
$('#listen_bind').hide();
|
$('#listen_bind').hide();
|
||||||
}
|
}
|
||||||
if ($('#frontend_bind > p').length == 0) {
|
if ($('#frontend_bind > p').length == 0) {
|
||||||
$('#frontend_bind').hide();
|
$('#frontend_bind').hide();
|
||||||
}
|
}
|
||||||
if ($('#backend_bind > p').length == 0) {
|
if ($('#backend_bind > p').length == 0) {
|
||||||
$('#backend_bind').hide();
|
$('#backend_bind').hide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,8 +38,8 @@ class HaproxySectionView(MethodView):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
section = add_sql.get_section(server_id, section_type, section_name)
|
section = add_sql.get_section(server_id, section_type, section_name)
|
||||||
output = {'server_id': section.server_id.server_id, **model_to_dict(section, recurse=False)}
|
output = {'server_id': section.server_id.server_id, **model_to_dict(section, recurse=False),
|
||||||
output['id'] = f'{server_id}-{section_name}'
|
'id': f'{server_id}-{section_name}'}
|
||||||
output.update(section.config)
|
output.update(section.config)
|
||||||
return jsonify(output)
|
return jsonify(output)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
Loading…
Reference in New Issue