mirror of
https://github.com/YunoHost/moulinette.git
synced 2024-09-03 20:06:31 +02:00
[enh] Add MX check + Refactoring
This commit is contained in:
parent
2c453b4996
commit
c31ddef8b6
3 changed files with 33 additions and 3 deletions
|
@ -679,6 +679,12 @@ monitor:
|
||||||
action: append_const
|
action: append_const
|
||||||
const: infos
|
const: infos
|
||||||
dest: units
|
dest: units
|
||||||
|
-c:
|
||||||
|
full: --check
|
||||||
|
help: Check network configuration
|
||||||
|
action: append_const
|
||||||
|
const: check
|
||||||
|
dest: units
|
||||||
-H:
|
-H:
|
||||||
full: --human-readable
|
full: --human-readable
|
||||||
help: Print sizes in human readable format
|
help: Print sizes in human readable format
|
||||||
|
|
|
@ -33,6 +33,7 @@ import xmlrpclib
|
||||||
import os.path
|
import os.path
|
||||||
import errno
|
import errno
|
||||||
import os
|
import os
|
||||||
|
import dns.resolver
|
||||||
import cPickle as pickle
|
import cPickle as pickle
|
||||||
from urllib import urlopen
|
from urllib import urlopen
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
@ -160,7 +161,7 @@ def monitor_network(units=None, human_readable=False):
|
||||||
smtp_check = m18n.n('network_check_smtp_ko')
|
smtp_check = m18n.n('network_check_smtp_ko')
|
||||||
|
|
||||||
if units is None:
|
if units is None:
|
||||||
units = ['usage', 'infos']
|
units = ['check', 'usage', 'infos']
|
||||||
|
|
||||||
# Get network devices and their addresses
|
# Get network devices and their addresses
|
||||||
devices = {}
|
devices = {}
|
||||||
|
@ -173,7 +174,30 @@ def monitor_network(units=None, human_readable=False):
|
||||||
|
|
||||||
# Retrieve monitoring for unit(s)
|
# Retrieve monitoring for unit(s)
|
||||||
for u in units:
|
for u in units:
|
||||||
if u == 'usage':
|
if u == 'check':
|
||||||
|
result[u] = {}
|
||||||
|
with open('/etc/yunohost/current_host', 'r') as f:
|
||||||
|
domain = f.readline().rstrip()
|
||||||
|
cmd_check_smtp = os.system('/bin/nc -z -w1 yunohost.org 25')
|
||||||
|
if cmd_check_smtp == 0:
|
||||||
|
smtp_check = m18n.n('network_check_smtp_ok')
|
||||||
|
else:
|
||||||
|
smtp_check = m18n.n('network_check_smtp_ko')
|
||||||
|
|
||||||
|
try:
|
||||||
|
answers = dns.resolver.query(domain,'MX')
|
||||||
|
mx_check = {}
|
||||||
|
i = 0
|
||||||
|
for server in answers:
|
||||||
|
mx_check[i] = server
|
||||||
|
i = i + 1
|
||||||
|
except:
|
||||||
|
mx_check = m18n.n('network_check_mx_ko')
|
||||||
|
result[u] = {
|
||||||
|
'smtp_check': smtp_check,
|
||||||
|
'mx_check': mx_check
|
||||||
|
}
|
||||||
|
elif u == 'usage':
|
||||||
result[u] = {}
|
result[u] = {}
|
||||||
for i in json.loads(glances.getNetwork()):
|
for i in json.loads(glances.getNetwork()):
|
||||||
iname = i['interface_name']
|
iname = i['interface_name']
|
||||||
|
@ -210,7 +234,6 @@ def monitor_network(units=None, human_readable=False):
|
||||||
'public_ip': p_ip,
|
'public_ip': p_ip,
|
||||||
'local_ip': l_ip,
|
'local_ip': l_ip,
|
||||||
'gateway': gateway,
|
'gateway': gateway,
|
||||||
'smtp_check' : smtp_check
|
|
||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
raise MoulinetteError(errno.EINVAL, m18n.n('unit_unknown', u))
|
raise MoulinetteError(errno.EINVAL, m18n.n('unit_unknown', u))
|
||||||
|
|
|
@ -118,6 +118,7 @@
|
||||||
|
|
||||||
"network_check_smtp_ok" : "Outbound mail (SMTP port 25) is not blocked",
|
"network_check_smtp_ok" : "Outbound mail (SMTP port 25) is not blocked",
|
||||||
"network_check_smtp_ko" : "Outbound mail (SMTP port 25) seems to be blocked by your network",
|
"network_check_smtp_ko" : "Outbound mail (SMTP port 25) seems to be blocked by your network",
|
||||||
|
"network_check_mx_ko" : "DNS MX record is not set",
|
||||||
|
|
||||||
"ldap_initialized" : "LDAP successfully initialized",
|
"ldap_initialized" : "LDAP successfully initialized",
|
||||||
"admin_password_change_failed" : "Unable to change password",
|
"admin_password_change_failed" : "Unable to change password",
|
||||||
|
|
Loading…
Add table
Reference in a new issue