mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Add category to services to have more meaningful messages in reports about port forwarding checks
This commit is contained in:
parent
69bc12454e
commit
937d339631
4 changed files with 22 additions and 7 deletions
|
@ -21,7 +21,8 @@ class PortsDiagnoser(Diagnoser):
|
|||
# 443: "nginx"
|
||||
# ... }
|
||||
ports = {}
|
||||
for service, infos in _get_services().items():
|
||||
services = _get_services()
|
||||
for service, infos in services.items():
|
||||
for port in infos.get("needs_exposed_ports", []):
|
||||
ports[port] = service
|
||||
|
||||
|
@ -39,17 +40,18 @@ class PortsDiagnoser(Diagnoser):
|
|||
except Exception as e:
|
||||
raise YunohostError("diagnosis_ports_could_not_diagnose", error=e)
|
||||
|
||||
for port, service in ports.items():
|
||||
for port, service in sorted(ports.items()):
|
||||
category = services[service].get("category", "[?]")
|
||||
if r["ports"].get(str(port), None) is not True:
|
||||
yield dict(meta={"port": port, "needed_by": service},
|
||||
status="ERROR",
|
||||
summary=("diagnosis_ports_unreachable", {"port": port}),
|
||||
details=[("diagnosis_ports_needed_by", (service,)), ("diagnosis_ports_forwarding_tip", ())])
|
||||
details=[("diagnosis_ports_needed_by", (service, category)), ("diagnosis_ports_forwarding_tip", ())])
|
||||
else:
|
||||
yield dict(meta={"port": port, "needed_by": service},
|
||||
status="SUCCESS",
|
||||
summary=("diagnosis_ports_ok", {"port": port}),
|
||||
details=[("diagnosis_ports_needed_by", (service))])
|
||||
details=[("diagnosis_ports_needed_by", (service, category))])
|
||||
|
||||
|
||||
def main(args, env, loggers):
|
||||
|
|
|
@ -3,40 +3,53 @@ dnsmasq: {}
|
|||
dovecot:
|
||||
log: [/var/log/mail.log,/var/log/mail.err]
|
||||
needs_exposed_ports: [993]
|
||||
category: email
|
||||
fail2ban:
|
||||
log: /var/log/fail2ban.log
|
||||
category: security
|
||||
metronome:
|
||||
log: [/var/log/metronome/metronome.log,/var/log/metronome/metronome.err]
|
||||
needs_exposed_ports: [5222, 5269]
|
||||
category: xmpp
|
||||
mysql:
|
||||
log: [/var/log/mysql.log,/var/log/mysql.err,/var/log/mysql/error.log]
|
||||
alternates: ['mariadb']
|
||||
category: database
|
||||
nginx:
|
||||
log: /var/log/nginx
|
||||
test_conf: nginx -t
|
||||
needs_exposed_ports: [80, 443]
|
||||
category: web
|
||||
nslcd: {}
|
||||
php7.0-fpm:
|
||||
log: /var/log/php7.0-fpm.log
|
||||
test_conf: php-fpm7.0 --test
|
||||
category: web
|
||||
postfix:
|
||||
log: [/var/log/mail.log,/var/log/mail.err]
|
||||
test_status: systemctl show postfix@- | grep -q "^SubState=running"
|
||||
needs_exposed_ports: [25, 587]
|
||||
category: email
|
||||
redis-server:
|
||||
log: /var/log/redis/redis-server.log
|
||||
category: database
|
||||
rspamd:
|
||||
log: /var/log/rspamd/rspamd.log
|
||||
slapd: {}
|
||||
category: email
|
||||
slapd:
|
||||
category: database
|
||||
ssh:
|
||||
log: /var/log/auth.log
|
||||
test_conf: sshd -t
|
||||
needs_exposed_ports: [22]
|
||||
category: admin
|
||||
yunohost-api:
|
||||
log: /var/log/yunohost/yunohost-api.log
|
||||
category: admin
|
||||
yunohost-firewall:
|
||||
need_lock: true
|
||||
test_status: iptables -S | grep "^-A INPUT" | grep " --dport" | grep -q ACCEPT
|
||||
category: security
|
||||
glances: null
|
||||
nsswitch: null
|
||||
ssl: null
|
||||
|
|
|
@ -210,7 +210,7 @@
|
|||
"diagnosis_ports_could_not_diagnose": "Could not diagnose if ports are reachable from outside. Error: {error}",
|
||||
"diagnosis_ports_unreachable": "Port {port} is not reachable from outside.",
|
||||
"diagnosis_ports_ok": "Port {port} is reachable from outside.",
|
||||
"diagnosis_ports_needed_by": "Exposing this port is needed for service {0}",
|
||||
"diagnosis_ports_needed_by": "Exposing this port is needed for {1} features (service {0})",
|
||||
"diagnosis_ports_forwarding_tip": "To fix this issue, you most probably need to configure port forwarding on your internet router as described in https://yunohost.org/isp_box_config",
|
||||
"diagnosis_http_could_not_diagnose": "Could not diagnose if domain is reachable from outside. Error: {error}",
|
||||
"diagnosis_http_ok": "Domain {domain} is reachable from outside.",
|
||||
|
|
|
@ -746,7 +746,7 @@
|
|||
"migration_description_0014_remove_app_status_json": "Supprimer les fichiers d'application status.json hérités",
|
||||
"diagnosis_services_running": "Le service {service} s'exécute correctement !",
|
||||
"diagnosis_services_conf_broken": "La configuration est cassée pour le service {service} !",
|
||||
"diagnosis_ports_needed_by": "Rendre ce port accessible est nécessaire pour le service {0}",
|
||||
"diagnosis_ports_needed_by": "Rendre ce port accessible est nécessaire pour les fonctionnalités de type {1} (service {0})",
|
||||
"diagnosis_ports_forwarding_tip": "Pour résoudre ce problème, vous devez probablement configurer la redirection de port sur votre routeur Internet comme décrit sur https://yunohost.org/isp_box_config",
|
||||
"diagnosis_http_connection_error": "Erreur de connexion : impossible de se connecter au domaine demandé, il est probablement injoignable.",
|
||||
"diagnosis_no_cache": "Pas encore de cache de diagnostique pour la catégorie « {category} »",
|
||||
|
|
Loading…
Add table
Reference in a new issue