From f31914f3e22b4982fcccd1634a8bb49dca0c155c Mon Sep 17 00:00:00 2001 From: ficus Date: Sat, 24 Nov 2012 02:46:55 +0100 Subject: fix logs 500 error (due to string encoding) --- TODO | 1 - torouterui/sysstatus.py | 25 ++++++------------------- torouterui/views.py | 6 +++--- 3 files changed, 9 insertions(+), 23 deletions(-) diff --git a/TODO b/TODO index b3ab8d1..982079a 100644 --- a/TODO +++ b/TODO @@ -1,7 +1,6 @@ # Soon -- /logs/ is often a 500 server error - use 'platform' python module where appropriate - switch from os.popen to subprocess - ifup/down doesn't set link status? diff --git a/torouterui/sysstatus.py b/torouterui/sysstatus.py index efab9de..cc3af87 100644 --- a/torouterui/sysstatus.py +++ b/torouterui/sysstatus.py @@ -4,6 +4,7 @@ in system log files. """ import os +import codecs from util import * @@ -58,30 +59,16 @@ def get_resources_status(): def get_dmesg(): try: - return cli_read('dmesg') + return cli_read('dmesg').decode('utf-8') except IOError: - return "Couldn't read dmesg" + return None -def get_authlog(): +def get_log(fname): try: - with open('/var/log/auth.log') as f: + with codecs.open(fname, 'r', 'utf-8') as f: return ''.join(f.readlines()) except IOError: - return "Couldn't read /var/log/auth.log" - -def get_syslog(): - try: - with open('/var/log/syslog') as f: - return ''.join(f.readlines()) - except IOError: - return "Couldn't read /var/log/syslog" - -def get_torlog(): - try: - with open('/var/log/tor/notices.log') as f: - return ''.join(f.readlines()) - except IOError: - return "Couldn't read /var/log/tor/notices.log" + return None def get_process_list(): """ diff --git a/torouterui/views.py b/torouterui/views.py index 418c391..f52a89b 100644 --- a/torouterui/views.py +++ b/torouterui/views.py @@ -232,9 +232,9 @@ def torpage(): def logspage(): logs = dict() logs['dmesg'] = sysstatus.get_dmesg() - logs['syslog'] = sysstatus.get_syslog() - logs['authlog'] = sysstatus.get_authlog() - logs['tor'] = sysstatus.get_torlog() + logs['syslog'] = sysstatus.get_log("/var/log/syslog") + logs['authlog'] = sysstatus.get_log("/var/log/auth.log") + logs['tor'] = sysstatus.get_log("/var/log/tor/notices.log") return render_template('logs.html', logs=logs) @app.route('/processes/', methods=['GET']) -- cgit v1.2.3