diff --git a/actions/diagnostic-test b/actions/diagnostic-test new file mode 100755 index 000000000..10f8610d5 --- /dev/null +++ b/actions/diagnostic-test @@ -0,0 +1,3 @@ +#!/bin/sh + +/usr/lib/freedombox/testsuite/check diff --git a/modules/diagnostics.py b/modules/diagnostics.py new file mode 120000 index 000000000..31b7abf86 --- /dev/null +++ b/modules/diagnostics.py @@ -0,0 +1 @@ +installed/system/diagnostics.py \ No newline at end of file diff --git a/modules/installed/system/diagnostics.py b/modules/installed/system/diagnostics.py new file mode 100644 index 000000000..50bce40e3 --- /dev/null +++ b/modules/installed/system/diagnostics.py @@ -0,0 +1,48 @@ +import os, cherrypy +from gettext import gettext as _ +from auth import require +from plugin_mount import PagePlugin +import actions +import cfg + +class diagnostics(PagePlugin): + order = 30 + def __init__(self, *args, **kwargs): + PagePlugin.__init__(self, *args, **kwargs) + self.register_page("sys.diagnostics") + cfg.html_root.sys.menu.add_item("Diagnostics", "icon-screenshot", "/sys/diagnostics", 30) + + @cherrypy.expose + @require() + def index(self): + main = _(""" +
The system diagnostic test will run a number of checks on your + system to confirm that network services are running and configured + properly. It may take a minute to complete.
+ """) + main += '' + return self.fill_template(title=_("System Diagnostics"), main=main) + +class test(PagePlugin): + order = 31 + def __init__(self, *args, **kwargs): + PagePlugin.__init__(self, *args, **kwargs) + self.register_page("sys.diagnostics.test") + + @cherrypy.expose + @require() + def index(self): + main = '' + output, error = actions.superuser_run("diagnostic-test") + + if error: + main += _("The diagnostic test encountered an error:") + for line in error.split('\n'): + main += line + "" + + if output: + main += _("Output of diagnostic test:") + for line in output.split('\n'): + main += line + "" + + return self.fill_template(title=_("Diagnostic Test"), main=main)