Fix small issues in port diagnoser

This commit is contained in:
Alexandre Aubin 2019-07-31 01:02:31 +02:00
parent f690ff6e1e
commit 6c48c131a8

View file

@ -4,6 +4,7 @@ import os
import requests import requests
from yunohost.diagnosis import Diagnoser from yunohost.diagnosis import Diagnoser
from yunohost.utils.error import YunohostError
class PortsDiagnoser(Diagnoser): class PortsDiagnoser(Diagnoser):
@ -19,11 +20,11 @@ class PortsDiagnoser(Diagnoser):
# Ideally, a port could be related to a service... # Ideally, a port could be related to a service...
# FIXME / TODO : for now this list of port is hardcoded, might want # FIXME / TODO : for now this list of port is hardcoded, might want
# to fetch this from the firewall.yml in /etc/yunohost/ # to fetch this from the firewall.yml in /etc/yunohost/
ports = [ 22, 25, 53, 80, 443, 587, 993, 5222, 5269 ] ports = [22, 25, 53, 80, 443, 587, 993, 5222, 5269]
try: try:
r = requests.post('https://ynhdiagnoser.netlib.re/check-ports', json={'ports': ports}).json() r = requests.post('https://ynhdiagnoser.netlib.re/check-ports', json={'ports': ports}, timeout=30).json()
if not "status" in r.keys(): if "status" not in r.keys():
raise Exception("Bad syntax for response ? Raw json: %s" % str(r)) raise Exception("Bad syntax for response ? Raw json: %s" % str(r))
elif r["status"] == "error": elif r["status"] == "error":
if "content" in r.keys(): if "content" in r.keys():
@ -37,16 +38,16 @@ class PortsDiagnoser(Diagnoser):
found_issues = False found_issues = False
for port in ports: for port in ports:
if r["ports"].get(str(port), None) != True: if r["ports"].get(str(port), None) is not True:
found_issues = True found_issues = True
yield dict(meta={"port": port}, yield dict(meta={"port": port},
status="ERROR", status="ERROR",
summary=("diagnosis_ports_unreachable", {"port":port})) summary=("diagnosis_ports_unreachable", {"port": port}))
if not found_issues: if not found_issues:
yield dict(meta={}, yield dict(meta={},
status="SUCCESS", status="SUCCESS",
summary=("diagnosis_ports_ok",{})) summary=("diagnosis_ports_ok", {}))
def main(args, env, loggers): def main(args, env, loggers):