v7.2.4.0: Update requirements and refactor date formatting function

The requirements for el9, deb, and main have been updated to specifically use version 2.27.1 of the "requests" package. In addition, the date formatting function get_time_zoned_date in common.py has been refactored. The default format for the date has been moved to the function arguments, and the function now also checks if the provided date is an instance of datetime before processing it.
pull/381/head
Aidaho 2024-04-18 09:58:32 +03:00
parent 5b98f1b611
commit 1954b60e13
33 changed files with 47 additions and 45 deletions

View File

@ -40,6 +40,8 @@ def get_time_zoned_date(date: datetime, fmt: str = '%Y-%m-%d %H:%M:%S') -> str:
:rtype: str
"""
date_format = '%Y-%m-%d %H:%M:%S'
if not fmt:
fmt = date_format
if not isinstance(date, datetime):
date = datetime.strptime(date, date_format)
native = _convert_to_time_zone(date)

View File

@ -10,7 +10,7 @@ function showHapserversCallBack(serv, hostnamea, service) {
$.ajax( {
url: "/app/service/" + service + "/" + serv + "/last-edit",
beforeSend: function() {
$("#edit_date_"+hostnamea).html('<img class="loading_small_haproxyservers" src="/app/static/images/loading.gif" />');
$("#edit_date_"+hostnamea).html('<img class="loading_small_haproxyservers" src="/images/loading.gif" />');
},
type: "GET",
success: function( data ) {
@ -32,7 +32,7 @@ function overviewHapserverBackends(serv, hostnamea, service) {
$.ajax( {
url: "/app/service/" + service + "/backends/" + serv[0],
beforeSend: function() {
$("#top-"+hostnamea).html('<img class="loading_small" style="padding-left: 45%;" src="/app/static/images/loading.gif" />');
$("#top-"+hostnamea).html('<img class="loading_small" style="padding-left: 45%;" src="/images/loading.gif" />');
},
success: function( data ) {
if (data.indexOf('error:') != '-1') {
@ -59,7 +59,7 @@ function showOverviewCallBack(serv, hostnamea) {
$.ajax( {
url: "/app/overview/server/"+serv,
beforeSend: function() {
$("#"+hostnamea).html('<img class="loading_small" src="/app/static/images/loading.gif" />');
$("#"+hostnamea).html('<img class="loading_small" src="/images/loading.gif" />');
},
type: "GET",
success: function( data ) {
@ -77,7 +77,7 @@ function showServicesOverview() {
$.ajax( {
url: "/app/overview/services",
beforeSend: function() {
$("#services_ovw").html('<img class="loading_small_bin_bout" style="padding-left: 100%;padding-top: 40px;padding-bottom: 40px;" src="/app/static/images/loading.gif" />');
$("#services_ovw").html('<img class="loading_small_bin_bout" style="padding-left: 100%;padding-top: 40px;padding-bottom: 40px;" src="/images/loading.gif" />');
},
type: "GET",
@ -321,8 +321,8 @@ function showBytes(serv) {
},
type: "POST",
beforeSend: function() {
$("#show_bin_bout").html('<img class="loading_small_bin_bout" src="/app/static/images/loading.gif" />');
$("#sessions").html('<img class="loading_small_bin_bout" src="/app/static/images/loading.gif" />');
$("#show_bin_bout").html('<img class="loading_small_bin_bout" src="/images/loading.gif" />');
$("#sessions").html('<img class="loading_small_bin_bout" src="/images/loading.gif" />');
},
success: function( data ) {
data = data.replace(/\s+/g,' ');
@ -343,7 +343,7 @@ function showNginxConnections(serv) {
},
type: "POST",
beforeSend: function() {
$("#sessions").html('<img class="loading_small_bin_bout" src="/app/static/images/loading.gif" />');
$("#sessions").html('<img class="loading_small_bin_bout" src="/images/loading.gif" />');
},
success: function( data ) {
data = data.replace(/\s+/g,' ');
@ -364,7 +364,7 @@ function showApachekBytes(serv) {
},
type: "POST",
beforeSend: function() {
$("#sessions").html('<img class="loading_small_bin_bout" src="/app/static/images/loading.gif" />');
$("#sessions").html('<img class="loading_small_bin_bout" src="/images/loading.gif" />');
},
success: function( data ) {
data = data.replace(/\s+/g,' ');
@ -385,7 +385,7 @@ function keepalivedBecameMaster(serv) {
},
type: "POST",
beforeSend: function() {
$("#bin_bout").html('<img class="loading_small_bin_bout" src="/app/static/images/loading.gif" />');
$("#bin_bout").html('<img class="loading_small_bin_bout" src="/images/loading.gif" />');
},
success: function( data ) {
data = data.replace(/\s+/g,' ');
@ -407,7 +407,7 @@ function showUsersOverview() {
// },
type: "GET",
beforeSend: function() {
$("#users-table").html('<img class="loading_small_bin_bout" style="padding-left: 100%;padding-top: 40px;padding-bottom: 40px;" src="/app/static/images/loading.gif" />');
$("#users-table").html('<img class="loading_small_bin_bout" style="padding-left: 100%;padding-top: 40px;padding-bottom: 40px;" src="/images/loading.gif" />');
},
success: function( data ) {
data = data.replace(/\s+/g,' ');
@ -428,7 +428,7 @@ function showSubOverview() {
// },
type: "GET",
beforeSend: function() {
$("#sub-table").html('<img class="loading_small_bin_bout" style="padding-left: 40%;padding-top: 40px;padding-bottom: 40px;" src="/app/static/images/loading.gif" />');
$("#sub-table").html('<img class="loading_small_bin_bout" style="padding-left: 40%;padding-top: 40px;padding-bottom: 40px;" src="/images/loading.gif" />');
},
success: function( data ) {
data = data.replace(/\s+/g,' ');
@ -576,13 +576,13 @@ function ShowOverviewLogs() {
url: "/app/overview/logs",
type: "GET",
beforeSend: function() {
$("#overview-logs").html('<img class="loading_small_bin_bout" style="padding-left: 40%;padding-top: 40px;padding-bottom: 40px;" src="/app/static/images/loading.gif" />');
$("#overview-logs").html('<img class="loading_small_bin_bout" style="padding-left: 40%;padding-top: 40px;padding-bottom: 40px;" src="/images/loading.gif" />');
},
success: function( data ) {
data = data.replace(/\s+/g,' ');
$("#overview-logs").html(data);
$.getScript("/inc/fontawesome.min.js")
$.getScript("/inc/overview.js")
$.getScript("/app/static/js/overview.js")
}
} );
}

View File

@ -1,6 +1,6 @@
var awesome = "/inc/fontawesome.min.js"
var waf = "/app/static/js/waf.js"
var overview = "/inc/overview.js"
var overview = "/app/static/js/overview.js"
function showOverviewWaf(serv, hostnamea) {
var service = cur_url[1];
if (service == 'haproxy') {

View File

@ -20,7 +20,7 @@
{% set header_params = {'add-header': 'add-header', 'set-header': 'set-header', 'del-header': 'del-header'} %}
{% set if_values = {'1':'Host name starts with','2':'Host name ends with','3':'Path starts with','4':'Path ends with', '6': 'Src ip'} %}
<script src="/inc/add.js"></script>
<script src="/app/static/js/add.js"></script>
<div id="tabs">
<ul>
<li><a href="#create" title="{{lang.words.add|title()}} {{lang.words.proxy}}: {{lang.words.create|title()}} {{lang.words.proxy}} - Roxy-WI">{{lang.words.create|title()}} {{lang.words.proxy}}</a></li>

View File

@ -5,7 +5,7 @@
{% from 'include/input_macros.html' import input, checkbox, select %}
{% set balance_params = dict() %}
{% set balance_params = {'ip_hash':'ip_hash','least_conn':'least_conn','random':'random', 'round_robin': 'round-robin'} %}
<script src="/inc/add_nginx.js"></script>
<script src="/app/static/js/add_nginx.js"></script>
<div id="tabs">
<ul>
<li><a href="#create" title="{{lang.words.add|title()}} {{lang.words.proxy}}: {{lang.words.add|title()}} {{lang.words.proxy}} - Roxy-WI">{{lang.words.add|title()}} {{lang.words.proxy}}</a></li>

View File

@ -24,7 +24,7 @@
<script src="/inc/codemirror/mode/nginx.js"></script>
<script src="/inc/codemirror/mode/haproxy.js"></script>
<script src="/inc/codemirror/keymap/sublime.js"></script>
<script src="/inc/configshow.js"></script>
<script src="/app/static/js/configshow.js"></script>
{% if is_serv_protected and g.user_params['role'] > 2 %}
<meta http-equiv="refresh" content="0; url=/app/service">
{% else %}

View File

@ -5,7 +5,7 @@
{% from 'include/input_macros.html' import input, checkbox, copy_to_clipboard %}
<script src="/inc/users.js"></script>
<script src="/app/static/js/ha.js"></script>
<script src="/inc/overview.js"></script>
<script src="/app/static/js/overview.js"></script>
<link href="{{ url_for('static', filename='css/servers.css') }}" rel="stylesheet"/>
<link href="{{ url_for('static', filename='css/smon.css') }}" rel="stylesheet">
<link href="{{ url_for('static', filename='css/ha.css') }}" rel="stylesheet">

View File

@ -12,7 +12,7 @@
'smon': 'SMON',
}
%}
<script defer src="/inc/admin_settings.js"></script>
<script defer src="/app/static/js/admin_settings.js"></script>
<table id="settings">
<tbody>
{% set section = namespace(section='') %}

View File

@ -39,10 +39,10 @@
<script src="/inc/jquery-ui.min.js"></script>
<script src="/inc/js.cookie.min.js"></script>
<script src="/inc/reconnecting-websocket.js"></script>
<script src="/inc/hotkeys.js"></script>
<script src="/app/static/js/hotkeys.js"></script>
<link href="{{ url_for('static', filename='css/select2.css') }}" rel="stylesheet" />
<script src="/inc/select2.js"></script>
<script src="/app/static/js/select2.js"></script>
<script src="/inc/script.js"></script>
<script src="/inc/nprogress.js"></script>
<script src="/app/static/js/nprogress.js"></script>
<link href="{{ url_for('static', filename='css/toastr-6.3.9.css') }}" rel="stylesheet"/>
<script src="/inc/toastr.js"></script>

View File

@ -10,7 +10,7 @@
<link href="{{ url_for('static', filename='css/chart.min.css') }}" rel="stylesheet">
<link href="{{ url_for('static', filename='css/smon.css') }}" rel="stylesheet">
<script src="/inc/chart.min-4.3.0.js"></script>
<script src="/inc/smon.js"></script>
<script src="/app/static/js/smon.js"></script>
<div class="row wrap1">
{% for s in smon %}
<div id="smon_name" class="col-md-8">

View File

@ -16,7 +16,7 @@
}
</style>
<link href="{{ url_for('static', filename='css/chart.min.css') }}" rel="stylesheet">
<script src="/inc/metrics.js"></script>
<script src="/app/static/js/metrics.js"></script>
<script src="/inc/chart.min-4.3.0.js"></script>
<input type="hidden" id="service" value="{{service}}">
{% if user_subscription['user_status'] == 0 %}

View File

@ -3,9 +3,9 @@
{% block h2 %}{{lang.menu_links.overview.h2}}{% endblock %}
{% block content %}
<link href="{{ url_for('static', filename='css/chart.min.css') }}" rel="stylesheet">
<script src="/inc/metrics.js"></script>
<script src="/app/static/js/metrics.js"></script>
<script src="/inc/chart.min-4.3.0.js"></script>
<script src="/inc/overview.js"></script>
<script src="/app/static/js/overview.js"></script>
<script>
$("#secIntervals").css("display", "none");
var ip = []

View File

@ -3,7 +3,7 @@
{% block h2 %}{{ lang.p_s_page.p_s_title }}{% endblock %}
{% block content %}
{% from 'include/input_macros.html' import input, checkbox, select %}
<script src="/inc/overview.js"></script>
<script src="/app/static/js/overview.js"></script>
<style>
.alert-danger {
width: 250px;

View File

@ -5,7 +5,7 @@
{% from 'include/input_macros.html' import input, checkbox, select %}
<link href="{{ url_for('static', filename='css/table-6.3.9.css') }}" rel="stylesheet" type="text/css">
<script type="text/javascript" charset="utf8" src="/inc/dataTables.min.js"></script>
<script type="text/javascript" charset="utf8" src="/inc/runtimeapi.js"></script>
<script type="text/javascript" charset="utf8" src="/app/static/js/runtimeapi.js"></script>
<div id="tabs">
<ul>
<li><a href="#runtimeapi" title="Runtime API - Roxy-WI">Runtime API</a></li>

View File

@ -26,7 +26,7 @@
<script src="/inc/codemirror/addon/scroll/annotatescrollbar.js"></script>
<script src="/inc/codemirror/mode/haproxy.js"></script>
<script src="/inc/codemirror/keymap/sublime.js"></script>
<script src="/inc/configshow.js"></script>
<script src="/app/static/js/configshow.js"></script>
<div class="left-space" style="margin-top: var(--indent);">
<select autofocus required name="section" id="section">
<option disabled>------</option>

View File

@ -3,9 +3,9 @@
{% block h2 %}{{ lang.menu_links.hapservers.h2 }} {{ service_desc.service }}{% endblock %}
{% block content %}
{% from 'include/input_macros.html' import input, checkbox, select, copy_to_clipboard %}
<script src="/inc/overview.js"></script>
<script src="/app/static/js/overview.js"></script>
<link href="{{ url_for('static', filename='css/chart.min.css') }}" rel="stylesheet">
<script src="/inc/metrics.js"></script>
<script src="/app/static/js/metrics.js"></script>
<script src="/inc/chart.min-4.3.0.js"></script>
{% if servers|length == 0 %} {% include 'include/getstarted.html' %} {% endif %}
<style>

View File

@ -3,7 +3,7 @@
{% block h2 %}{{ lang.menu_links.monitoring.smon.agent }}{% endblock %}
{% block content %}
{% from 'include/input_macros.html' import input, select %}
<script src="/inc/smon.js"></script>
<script src="/app/static/js/smon.js"></script>
<script src="/inc/jquery.timeago.js" type="text/javascript"></script>
<link href="{{ url_for('static', filename='css/servers.css') }}" rel="stylesheet"/>
<link href="{{ url_for('static', filename='css/smon.css') }}" rel="stylesheet"/>

View File

@ -3,7 +3,7 @@
{% block h2 %}{{ lang.menu_links.monitoring.smon.dashboard }}{% endblock %}
{% from 'include/input_macros.html' import input, checkbox, select %}
{% block content %}
<script src="/inc/smon.js"></script>
<script src="/app/static/js/smon.js"></script>
<script src="/inc/users.js"></script>
<script src="/inc/fontawesome.min.js"></script>
<script src="/inc/jquery.timeago.js" type="text/javascript"></script>

View File

@ -3,7 +3,7 @@
{% block h2 %}{{ lang.menu_links.monitoring.smon.status_page }}{% endblock %}
{% block content %}
{% from 'include/input_macros.html' import input, select %}
<script src="/inc/smon.js"></script>
<script src="/app/static/js/smon.js"></script>
<link href="{{ url_for('static', filename='css/servers.css') }}" rel="stylesheet"/>
<link href="{{ url_for('static', filename='css/smon.css') }}" rel="stylesheet"/>

View File

@ -31,7 +31,7 @@
<link href="{{ url_for('static', filename='css/smon.css') }}" rel="stylesheet">
<script src="/inc/jquery-3.6.0.min.js"></script>
<script src="/inc/jquery-ui.min.js"></script>
<script src="/inc/smon.js"></script>
<script src="/app/static/js/smon.js"></script>
<link href="{{ url_for('static', filename='css/toastr-6.3.9.css') }}" rel="stylesheet"/>
<script src="/inc/toastr.js"></script>
</head>

View File

@ -71,7 +71,7 @@
<script src="/inc/codemirror/mode/nginx.js"></script>
<script src="/inc/codemirror/mode/haproxy.js"></script>
<script src="/inc/codemirror/keymap/sublime.js"></script>
<script src="/inc/configshow.js"></script>
<script src="/app/static/js/configshow.js"></script>
<h4>{{lang.words.config|title()}} {{waf_rule_file}} {{lang.words.from|title()}} {{ serv }}</h4>
<form action="/app/waf/{{service}}/{{serv}}/rule/{{waf_rule_id}}/save" name="saveconfig" id="saveconfig" method="post">
<input type="hidden" value="{{ serv }}" name="serv">
@ -177,8 +177,8 @@
</table>
{% if service == 'haproxy' %}
<link href="{{ url_for('static', filename='css/chart.min.css') }}" rel="stylesheet">
<script src="/inc/overview.js"></script>
<script src="/inc/metrics.js"></script>
<script src="/app/static/js/overview.js"></script>
<script src="/app/static/js/metrics.js"></script>
<script src="/inc/chart.min-4.3.0.js"></script>
<div id="table_metrics"></div>
<div class="metrics-time-range">

View File

@ -182,7 +182,7 @@ if(localStorage.getItem('restart')) {
} else {
$('#' + apply_div).html("You have made changes to the server: " + ip_for_restart + ". Changes will take effect only after restart. <a href='service' title='Overview'>Go to the HAProxy Overview page and restart</a><a href='#' title='close' id='apply_close' style='float: right'><b>X</b></a>");
}
$.getScript('/inc/overview.js');
$.getScript('/app/static/js/overview.js');
}
}
});
@ -436,7 +436,7 @@ function showRemoteLogFiles() {
} else {
toastr.clear();
$("#remote_log_files").html(data);
$.getScript('/inc/configshow.js');
$.getScript('/app/static/js/configshow.js');
}
}
} );
@ -538,7 +538,7 @@ function showConfig() {
} else {
toastr.clear();
$("#ajax").html(data);
$.getScript('/inc/configshow.js');
$.getScript('/app/static/js/configshow.js');
window.history.pushState("Show config", "Show config", "/app/config/" + service + "/" + $("#serv").val() + "/show/" + config_file_name);
}
}
@ -607,7 +607,7 @@ function showUploadConfig() {
toastr.clear();
$("#ajax").html(data);
window.history.pushState("Show config", "Show config", "/app/config/versions/" + service + "/" + serv + "/" + configver);
$.getScript('/inc/configshow.js');
$.getScript('/app/static/js/configshow.js');
}
}
} );

View File

@ -35,12 +35,12 @@
<link href="/app/static/css/jquery-ui.structure.min.css" rel="stylesheet">
<script src="/inc/jquery-3.6.0.min.js"></script>
<script src="/inc/jquery-ui.min.js"></script>
<script src="/inc/nprogress.js"></script>
<script src="/app/static/js/nprogress.js"></script>
<script defer src="/inc/fa-solid.min.js"></script>
<script defer src="/inc/fontawesome.min.js"></script>
<link href="/app/static/css/awesome-6.3.9.css" rel="stylesheet">
<link href="/app/static/css/chart.min.css" rel="stylesheet">
<script src="/inc/metrics.js"></script>
<script src="/app/static/js/metrics.js"></script>
<script src="/inc/chart.min-4.3.0.js"></script>
<link rel="stylesheet" href="/inc/codemirror/lib/codemirror.css">
<script src="/inc/codemirror/lib/codemirror.js"></script>
@ -51,7 +51,7 @@
<script src="/inc/toastr.js"></script>
<script defer src="/inc/ion.sound.min.js"></script>
<link href="/app/static/css/select2.css" rel="stylesheet" />
<script src="/inc/select2.js"></script>
<script src="/app/static/js/select2.js"></script>
<script src="/inc/reconnecting-websocket.js"></script>
<link href="/app/static/css/table-6.3.9.css" rel="stylesheet" type="text/css">
<script type="text/javascript" charset="utf8" src="/inc/dataTables.min.js"></script>