[FIX] bad response from the server

This commit is contained in:
Kay0u 2020-01-25 20:49:29 +07:00
parent be3ffce003
commit 87a3ceb983
No known key found for this signature in database
GPG key ID: 7FF262C033518333
2 changed files with 24 additions and 16 deletions

View file

@ -26,16 +26,20 @@ class PortsDiagnoser(Diagnoser):
ports[port] = service ports[port] = service
try: try:
r = requests.post('https://diagnosis.yunohost.org/check-ports', json={'ports': ports.keys()}, timeout=30).json() r = requests.post('https://diagnosis.yunohost.org/check-ports', json={'ports': ports.keys()}, timeout=30)
if "status" not in r.keys(): if r.status_code == 200:
raise Exception("Bad syntax for response ? Raw json: %s" % str(r)) r = r.json()
elif r["status"] == "error": if "status" not in r.keys():
if "content" in r.keys():
raise Exception(r["content"])
else:
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"] != "ok" or "ports" not in r.keys() or not isinstance(r["ports"], dict): elif r["status"] == "error":
raise Exception("Bad syntax for response ? Raw json: %s" % str(r)) if "content" in r.keys():
raise Exception(r["content"])
else:
raise Exception("Bad syntax for response ? Raw json: %s" % str(r))
elif r["status"] != "ok" or "ports" not in r.keys() or not isinstance(r["ports"], dict):
raise Exception("Bad syntax for response ? Raw json: %s" % str(r))
else:
raise Exception("Bad response from the server https://diagnosis.yunohost.org : %s" % str(r.status_code))
except Exception as e: except Exception as e:
raise YunohostError("diagnosis_ports_could_not_diagnose", error=e) raise YunohostError("diagnosis_ports_could_not_diagnose", error=e)

View file

@ -28,14 +28,18 @@ class HttpDiagnoser(Diagnoser):
os.system("touch /tmp/.well-known/ynh-diagnosis/%s" % nonce) os.system("touch /tmp/.well-known/ynh-diagnosis/%s" % nonce)
try: try:
r = requests.post('https://diagnosis.yunohost.org/check-http', json={'domain': domain, "nonce": nonce}, timeout=30).json() r = requests.post('https://diagnosis.yunohost.org/check-http', json={'domain': domain, "nonce": nonce}, timeout=30)
if "status" not in r.keys(): if r.status_code == 200:
raise Exception("Bad syntax for response ? Raw json: %s" % str(r)) r = r.json()
elif r["status"] == "error" and ("code" not in r.keys() or not r["code"].startswith("error_http_check_")): if "status" not in r.keys():
if "content" in r.keys():
raise Exception(r["content"])
else:
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" and ("code" not in r.keys() or not r["code"].startswith("error_http_check_")):
if "content" in r.keys():
raise Exception(r["content"])
else:
raise Exception("Bad syntax for response ? Raw json: %s" % str(r))
else:
raise Exception("Bad response from the server https://diagnosis.yunohost.org : %s" % str(r.status_code))
except Exception as e: except Exception as e:
raise YunohostError("diagnosis_http_could_not_diagnose", error=e) raise YunohostError("diagnosis_http_could_not_diagnose", error=e)