diff --git a/data/hooks/diagnosis/10-ip.py b/data/hooks/diagnosis/10-ip.py index d229eea8f..19e4806f6 100644 --- a/data/hooks/diagnosis/10-ip.py +++ b/data/hooks/diagnosis/10-ip.py @@ -55,6 +55,5 @@ class IPDiagnoser(Diagnoser): def main(args, env, loggers): - IPDiagnoser(args, env, loggers).diagnose() - return 0 + return IPDiagnoser(args, env, loggers).diagnose() diff --git a/data/hooks/diagnosis/12-dns.py b/data/hooks/diagnosis/12-dns.py index 90f52c82d..09f8cd4bf 100644 --- a/data/hooks/diagnosis/12-dns.py +++ b/data/hooks/diagnosis/12-dns.py @@ -92,6 +92,5 @@ class DNSDiagnoser(Diagnoser): def main(args, env, loggers): - DNSDiagnoser(args, env, loggers).diagnose() - return 0 + return DNSDiagnoser(args, env, loggers).diagnose() diff --git a/src/yunohost/diagnosis.py b/src/yunohost/diagnosis.py index 99767e1b8..38c59793f 100644 --- a/src/yunohost/diagnosis.py +++ b/src/yunohost/diagnosis.py @@ -100,18 +100,19 @@ def diagnosis_run(categories=[], force=False, args=None): args["force"] = force # Call the hook ... - successes = [] + diagnosed_categories = [] for category in categories: logger.debug("Running diagnosis for %s ..." % category) path = [p for n, p in all_categories if n == category ][0] try: hook_exec(path, args=args, env=None) - successes.append(category) except Exception as e: logger.error("Diagnosis failed for category '%s' : %s" % (category, str(e)), exc_info=True) # FIXME : i18n + else: + diagnosed_categories.append(category) - return diagnosis_show(successes) + return diagnosis_show(diagnosed_categories) def diagnosis_ignore(category, args="", unignore=False): pass @@ -125,8 +126,8 @@ class Diagnoser(): self.logger_debug, self.logger_warning, self.logger_info = loggers self.env = env - self.args = args - self.args.update(self.validate_args(args)) + self.args = args or {} + self.args.update(self.validate_args(self.args)) self.cache_file = Diagnoser.cache_file(self.id_) def cached_time_ago(self): @@ -158,6 +159,8 @@ class Diagnoser(): self.logger_debug("Updating cache %s" % self.cache_file) self.write_cache(new_report) + return 0, new_report + @staticmethod def cache_file(id_): return os.path.join(DIAGNOSIS_CACHE, "%s.json" % id_)