Improved logging and update
pull/145/head
Pavel Loginov 2019-09-15 14:51:09 +03:00
parent df973474bc
commit 1f73efcf49
29 changed files with 157 additions and 151 deletions

View File

@ -27,11 +27,7 @@ try:
token = sql.get_token(user_id.value)
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
template = template.render(title = "Add",
role = sql.get_user_role_by_uuid(user_id.value),
@ -40,7 +36,7 @@ template = template.render(title = "Add",
add = form.getvalue('add'),
conf_add = form.getvalue('conf'),
group = user_group,
current_ver = current_ver,
versions = funct.versions(),
token = token)
print(template)

View File

@ -26,11 +26,7 @@ try:
servbackend = ""
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
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"
@ -54,6 +50,6 @@ template = template.render(h2 = 1,
white_lists = white_lists,
black_lists = black_lists,
group = user_group,
current_ver = current_ver,
versions = funct.versions(),
token = token)
print(template)

View File

@ -28,11 +28,6 @@ try:
role = sql.get_user_role_by_uuid(user_id.value)
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
hap_configs_dir = funct.get_config_var('configs', 'haproxy_save_configs_dir')
@ -103,6 +98,6 @@ template = template.render(h2 = 1, title = "Working with HAProxy configs",
stderr = stderr,
error = error,
note = 1,
current_ver = current_ver,
versions = funct.versions(),
token = token)
print(template)

View File

@ -27,11 +27,7 @@ try:
token = sql.get_token(user_id.value)
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
if serv is not None and form.getvalue('config') is not None:
configver = form.getvalue('configver')
@ -71,6 +67,6 @@ template = template.render(h2 = 1, title = "Old Versions HAProxy config",
onclick = "showUploadConfig()",
note = 1,
token = token,
current_ver = current_ver,
versions = funct.versions(),
view = view)
print(template)

View File

@ -27,11 +27,7 @@ try:
token = sql.get_token(user_id.value)
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
form = cgi.FieldStorage()
serv = form.getvalue('serv')
@ -63,6 +59,6 @@ output_from_parsed_template = template.render(h2 = 1, title = "Delete old versio
open = form.getvalue('open'),
Select = form.getvalue('del'),
file = file,
current_ver = current_ver,
versions = funct.versions(),
token = token)
print(output_from_parsed_template)

View File

@ -65,6 +65,12 @@ def logging(serv, action, **kwargs):
elif kwargs.get('keep_alive') == 1:
mess = get_data('date_in_log') + action + "\n"
log = open(log_path + "/keep_alive-"+get_data('logs')+".log", "a")
elif kwargs.get('haproxywi') == 1:
if kwargs.get('login'):
mess = get_data('date_in_log') + " from " + IP + " user: " + login + " " + action + " for: " + serv + "\n"
else:
mess = get_data('date_in_log') + action + "\n"
log = open(log_path + "/haproxy-wi-"+get_data('logs')+".log", "a")
else:
mess = get_data('date_in_log') + " from " + IP + " user: " + login + " " + action + " for: " + serv + "\n"
log = open(log_path + "/config_edit-"+get_data('logs')+".log", "a")
@ -93,7 +99,9 @@ def telegram_send_mess(mess, **kwargs):
bot = telebot.TeleBot(token=token_bot)
bot.send_message(chat_id=channel_name, text=mess)
except:
print("Fatal: Can't send message. Add Telegram chanel before use alerting at this servers group")
mess = "Fatal: Can't send message. Add Telegram chanel before use alerting at this servers group"
print(mess)
logging('localhost', mess, haproxywi=1)
sys.exit()
def check_login(**kwargs):
@ -245,7 +253,9 @@ def install_haproxy(serv, **kwargs):
" STATS_USER="+stats_user+" STATS_PASS="+stats_password ]
error = str(upload(serv, tmp_config_path, script))
if error:
logging('localhost', error, haproxywi=1)
print('error: '+error)
os.system("rm -f %s" % script)
@ -267,7 +277,9 @@ def syn_flood_protect(serv, **kwargs):
error = str(upload(serv, tmp_config_path, script))
if error:
logging('localhost', error, haproxywi=1)
print('error: '+error)
os.system("rm -f %s" % script)
ssh_command(serv, commands, print_out="1")
@ -287,6 +299,7 @@ def waf_install(serv, **kwargs):
error = str(upload(serv, tmp_config_path, script))
if error:
print('error: '+error)
logging('localhost', error, haproxywi=1)
os.system("rm -f %s" % script)
stderr = ssh_command(serv, commands, print_out="1")
@ -520,12 +533,39 @@ def check_new_version():
proxy = sql.get_setting('proxy')
if proxy:
proxyDict = { "https" : proxy, "http" : proxy }
response = requests.get('https://haproxy-wi.org/update.py?last_ver=1', verify=False, timeout=10, proxies=proxyDict)
else:
response = requests.get('https://haproxy-wi.org/update.py?last_ver=1', verify=False, timeout=10)
try:
if proxy:
proxyDict = { "https" : proxy, "http" : proxy }
response = requests.get('https://haproxy-wi.org1/update.py?last_ver=1', verify=False, timeout=1, proxies=proxyDict)
else:
response = requests.get('https://haproxy-wi.org/update.py?last_ver=1', verify=False, timeout=1)
res = response.content.decode(encoding='UTF-8')
except requests.exceptions.RequestException as e:
#print(e)
e = str(e)
logging('localhost', ' '+e, haproxywi=1)
return res
res = response.content.decode(encoding='UTF-8')
def versions():
try:
current_ver = check_ver()
current_ver_without_dots = current_ver.split('.')
current_ver_without_dots = ''.join(current_ver_without_dots)
current_ver_without_dots = int(current_ver_without_dots)
except:
current_ver = "Sorry cannot get current version"
current_ver_without_dots = 0
return res
try:
new_ver = check_new_version()
new_ver_without_dots = new_ver.split('.')
new_ver_without_dots = ''.join(new_ver_without_dots)
new_ver_without_dots = int(new_ver_without_dots)
except:
new_ver = "Sorry cannot get new version"
new_ver_without_dots = 0
return current_ver, new_ver, current_ver_without_dots, new_ver_without_dots

View File

@ -22,17 +22,13 @@ try:
token = sql.get_token(user_id.value)
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
output_from_parsed_template = template.render(h2 = 1, title = "Configure HA",
role = sql.get_user_role_by_uuid(user_id.value),
user = user,
serv = serv,
selects = servers,
current_ver = current_ver,
versions = funct.versions(),
token = token)
print(output_from_parsed_template)

View File

@ -19,18 +19,14 @@ try:
token = sql.get_token(user_id.value)
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
output_from_parsed_template = template.render(h2 = 1, title = "Installation HAProxy",
role = sql.get_user_role_by_uuid(user_id.value),
user = user,
select_id = "haproxyaddserv",
selects = servers,
current_ver = current_ver,
versions = funct.versions(),
token = token)
print(output_from_parsed_template)

View File

@ -31,11 +31,7 @@ try:
token = sql.get_token(user_id.value)
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
if serv is not None:
cfg = kp_save_configs_dir+ serv + '-' + funct.get_data('config') + '.conf'
@ -92,6 +88,6 @@ output_from_parsed_template = template.render(h2 = 1, title = "Edit Runnig Keepa
stderr = stderr,
error = error,
keepalived = 1,
current_ver = current_ver,
versions = funct.versions(),
token = token)
print(output_from_parsed_template)

View File

@ -27,10 +27,6 @@ try:
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
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"
@ -54,6 +50,6 @@ template = template.render(h2 = 1,
white_lists = white_lists,
black_lists = black_lists,
group = user_group,
current_ver = current_ver,
versions = funct.versions(),
token = token)
print(template)

View File

@ -40,7 +40,7 @@ def send_cookie(login):
sql.write_user_uuid(login, user_uuid)
sql.write_user_token(login, user_token)
try:
funct.logging('locahost', sql.get_user_name_by_uuid(user_uuid)+' log in')
funct.logging('locahost', sql.get_user_name_by_uuid(user_uuid)+' log in', haproxywi=1, login=1)
except:
pass
print("Content-type: text/html\n")
@ -113,10 +113,6 @@ except:
user = ""
pass
try:
current_ver = funct.check_ver()
except:
pass
if form.getvalue('logout'):
try:
@ -166,6 +162,6 @@ output_from_parsed_template = template.render(h2 = 1, title = "Login page. Enter
error_log = error_log,
error = error,
ref = ref,
current_ver = current_ver,
versions = funct.versions(),
db_create = db_create)
print(output_from_parsed_template)

View File

@ -30,11 +30,7 @@ try:
token = sql.get_token(user_id.value)
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
output_from_parsed_template = template.render(h2 = 1,
autorefresh = 1,
@ -47,7 +43,7 @@ output_from_parsed_template = template.render(h2 = 1,
serv = form.getvalue('serv'),
rows = rows,
grep = grep,
current_ver = current_ver,
versions = funct.versions(),
token = token)
print(output_from_parsed_template)

View File

@ -18,11 +18,7 @@ try:
token = sql.get_token(user_id.value)
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
template = template.render(h2 = 1, title = "Metrics",
autorefresh = 1,
@ -30,6 +26,6 @@ template = template.render(h2 = 1, title = "Metrics",
user = user,
onclick = "metricsShow()",
table_stat = sql.select_table_metrics(user_id.value),
current_ver = current_ver,
versions = funct.versions(),
token = token)
print(template)

View File

@ -30,11 +30,7 @@ try:
metrics_worker, stderr = funct.subprocess_execute(cmd)
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
template = template.render(h2 = 1,
autorefresh = 1,
@ -48,6 +44,6 @@ template = template.render(h2 = 1,
checker_master = ''.join(checker_master),
checker_worker = ''.join(checker_worker),
error = stderr,
current_ver = current_ver,
versions = funct.versions(),
token = token)
print(template)

View File

@ -22,11 +22,7 @@ try:
ldap_enable = sql.get_setting('ldap_enable')
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
output_from_parsed_template = template.render(title = "Servers manage",
role = sql.get_user_role_by_uuid(user_id.value),
@ -40,6 +36,6 @@ output_from_parsed_template = template.render(title = "Servers manage",
sshs = sql.select_ssh(),
telegrams = sql.get_user_telegram_by_uuid(user_id.value),
token = token,
current_ver = current_ver,
versions = funct.versions(),
ldap_enable = ldap_enable)
print(output_from_parsed_template)

View File

@ -21,16 +21,12 @@ try:
token = sql.get_token(user_id.value)
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
template = template.render(h2 = 1, title = "Settings",
role = sql.get_user_role_by_uuid(user_id.value),
user = user,
settings = settings,
current_ver = current_ver,
versions = funct.versions(),
token = token)
print(template)

View File

@ -116,7 +116,22 @@
</ul>
</nav>
<div class="copyright-menu">
<a href="https://github.com/aidaho12/haproxy-wi/" title="Github repo" target="_blank" style="color: #fff">HAproxy-WI</a> <span id="show-updates-button">v{{current_ver}}</span>
{% if versions is defined %}
{% set current_ver = versions.0 %}
{% set new_ver = versions.1 %}
{% set current_ver_without_dots = versions.2 %}
{% set new_ver_without_dots = versions.3 %}
{% endif %}
<a href="https://github.com/aidaho12/haproxy-wi/" title="Github repo" target="_blank" style="color: #fff">HAproxy-WI</a>
{% if new_ver_without_dots is defined and current_ver_without_dots is defined and new_ver is defined and new_ver_without_dots is defined %}
{% if new_ver_without_dots > current_ver_without_dots and new_ver != "Sorry cannot get current version" %}
<span id="show-updates-button" class="new-version-exists">v{{current_ver}} </span>
{% else %}
v{{current_ver}}
{% endif %}
{% else %}
v{{current_ver}}
{% endif %}
<br>
<a href="https://www.patreon.com/haproxy_wi" title="Donate" target="_blank" style="color: #fff; margin-left: 30px; color: red;" class="patreon"> Donate</a>
</div>
@ -220,7 +235,7 @@
</div>
<div id="show-updates" style="display: none;">
<div>
There is a new version HAProxy-WI
There is a new version HAProxy-WI. Check the <a href="/app/update.py">Update page</a>
</div>
</div>
</body>

View File

@ -35,6 +35,7 @@
<a class="ui-button ui-widget ui-corner-all" title="Compare configs" onclick="showCompareConfigs()">Compare</a>
<a class="ui-button ui-widget ui-corner-all" title="Show map" onclick="showMap()">Map</a>
<a class="ui-button ui-widget ui-corner-all" title="View stat" onclick="openStats()">Stat</a>
<a class="ui-button ui-widget ui-corner-all" title="Show verisons" onclick="openVersions()">Verisons</a>
{% endif %}
</form>
</p>

View File

@ -9,8 +9,8 @@
<td></td>
</tr>
<tr>
<td class="padding10 first-collumn">
<b>Haproxy-WI will try install haproxy-2.0.3, if it does not work then haproxy-1.15</b>
<td class="padding10 first-collumn" style="width: 350px;">
<b>Haproxy-WI will try install haproxy-2.0.6, if it does not work then haproxy-1.15</b>
</td>
<td class="padding10 first-collumn">
<select autofocus required name="{{select_id}}" id="{{select_id}}">

View File

@ -15,7 +15,8 @@
<b>{{new_ver}}</b>
</td>
<td>
{% if current_ver_without_dots < new_ver_without_dots and current_ver_without_dots != new_ver_without_dots and new_ver != "Sorry cannot get current version" %}
{% if new_ver_without_dots > current_ver_without_dots and new_ver != "Sorry cannot get current version" %}
<a class="ui-button ui-widget ui-corner-all" id="update_haproxy_wi" title="Update HAProxy">Update</a>
{% endif %}
</td>
@ -25,6 +26,7 @@
For update you have to use HAProxy-WI repository. If do not use repositiry then use update.sh script in HAProxy-WI home directory <br />
<br />
Read more about update in <a href="https://haproxy-wi.org/updates.py" title="Doc" target="_blank">docs</a>
and <a href="https://haproxy-wi.org/changelog.py" title="Changelog" target="_blank">changelog</a>
</div>
<div id="ajax"></div>
{% endblock %}

View File

@ -17,29 +17,11 @@ try:
token = sql.get_token(user_id.value)
except:
pass
try:
current_ver = funct.check_ver()
current_ver_without_dots = current_ver.split('.')
current_ver_without_dots = ''.join(current_ver_without_dots)
except:
current_ver = "Sorry cannot get current version"
current_ver_without_dots = "Sorry cannot get current version"
try:
new_ver = funct.check_new_version()
new_ver_without_dots = new_ver.split('.')
new_ver_without_dots = ''.join(new_ver_without_dots)
except:
new_ver = "Sorry cannot get new version"
new_ver_without_dots = "Sorry cannot get new version"
output_from_parsed_template = template.render(h2 = 1, title = "Check updates",
role = sql.get_user_role_by_uuid(user_id.value),
user = user,
current_ver = current_ver,
current_ver_without_dots = current_ver_without_dots,
new_ver = new_ver,
new_ver_without_dots = new_ver_without_dots,
versions = funct.versions(),
token = token)
print(output_from_parsed_template)

View File

@ -26,11 +26,7 @@ try:
ldap_enable = sql.get_setting('ldap_enable')
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
output_from_parsed_template = template.render(title = "Admin area: users manage",
role = sql.get_user_role_by_uuid(user_id.value),
@ -43,6 +39,6 @@ output_from_parsed_template = template.render(title = "Admin area: users manage"
sshs = sql.select_ssh(),
telegrams = sql.select_telegram(),
token = token,
current_ver = current_ver,
versions = funct.versions(),
ldap_enable = ldap_enable)
print(output_from_parsed_template)

View File

@ -47,11 +47,7 @@ try:
token = sql.get_token(user_id.value)
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
def get_files():
file = []
@ -73,6 +69,6 @@ output_from_parsed_template = template.render(h2 = 1,
selects = selects,
rows = rows,
grep = grep,
current_ver = current_ver,
versions = funct.versions(),
token = token)
print(output_from_parsed_template)

View File

@ -27,11 +27,7 @@ try:
break
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
output_from_parsed_template = template.render(h2 = 1,
autorefresh = 1,
@ -42,7 +38,7 @@ output_from_parsed_template = template.render(h2 = 1,
select_id = "serv",
selects = servers,
serv = serv,
current_ver = current_ver,
versions = funct.versions(),
token = token)
print(output_from_parsed_template)

View File

@ -19,17 +19,13 @@ try:
token = sql.get_token(user_id.value)
except:
pass
try:
current_ver = funct.check_ver()
except:
pass
template = template.render(h2 = 1, title = "Web application firewall",
autorefresh = 1,
role = sql.get_user_role_by_uuid(user_id.value),
user = user,
table_stat = sql.select_table_metrics(user_id.value),
current_ver = current_ver,
versions = funct.versions(),
token = token)
print(template)

View File

@ -163,4 +163,10 @@
font-family: "Font Awesome 5 Solid";
content: "\f067";
width:3px;
}
.new-version-exists::after {
display: none;
font-family: "Font Awesome 5 Solid";
content: "\f093";
padding-left: 5px;
}

View File

@ -246,6 +246,12 @@ function openStats() {
var win = window.open(url, '_blank');
win.focus();
}
function openVersions() {
var serv = $("#serv").val();
var url = "configver.py?serv="+serv+"&open=open"
var win = window.open(url, '_blank');
win.focus();
}
function showLog() {
var waf = 0;
if ($('#waf').is(':checked')) {
@ -1342,6 +1348,33 @@ $( function() {
} );
return false;
});
var showUpdates = $( "#show-updates" ).dialog({
autoOpen: false,
resizable: false,
height: "auto",
width: 600,
modal: true,
title: 'There is a new version HAProxy-WI.',
show: {
effect: "fade",
duration: 200
},
hide: {
effect: "fade",
duration: 200
},
buttons: {
Close: function() {
$( this ).dialog( "close" );
clearTips();
}
}
});
$('#show-updates-button').click(function() {
showUpdates.dialog('open');
});
});
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
@ -1545,4 +1578,5 @@ function changeWafMode(id) {
}, 2500 );
}
} );
}
}

View File

@ -120,7 +120,11 @@ $( function() {
$('.alert-danger').remove();
$('.alert-warning').remove();
$("#ajax").html('<div class="alert alert-success">'+data+'</data>');
}
} else if (data.indexOf('Info') != '-1' ){
$('.alert-danger').remove();
$('.alert-warning').remove();
$("#ajax").html('<div class="alert alert-info">'+data+'</data>');
}
}
} );
});
@ -139,7 +143,7 @@ $( function() {
data = data.replace(/\s+/g,' ');
if (data.indexOf('error') != '-1' || data.indexOf('Failed') != '-1') {
$("#ajax").html('<div class="alert alert-danger">'+data+'</data>');
} else if (data.indexOf('success') != '-1'){
} else if (data.indexOf('Complete!') != '-1'){
$('.alert-danger').remove();
$('.alert-warning').remove();
$("#ajax").html('<div class="alert alert-success">'+data+'</data>');
@ -158,7 +162,7 @@ $( function() {
} else if (data.indexOf('No packages marked for update') != '-1') {
$('.alert-danger').remove();
$('.alert-warning').remove();
$("#ajax").html('<div class="alert alert-success">It is seems like you have the last version HAProxy-WI</data>');
$("#ajax").html('<div class="alert alert-info">It is seems like you have the last version HAProxy-WI</data>');
}
}
} );

View File

@ -1,14 +1,13 @@
configparser==3.5.0
paramiko>=2.5.0
pytz==2017.3
requests>=2.20.0
requests>=2.22.0
requests_toolbelt==0.8.0
pyTelegramBotAPI==3.6.3
dump==0.0.4
networkx==2.1
numpy==1.14.0
matplotlib==2.1.2
urllib3>=1.23
future==0.13.1
mysql-connector-python==8.0.11
Jinja2>=2.10.1