aboutsummaryrefslogtreecommitdiffstats
path: root/torouterui.py
diff options
context:
space:
mode:
Diffstat (limited to 'torouterui.py')
-rwxr-xr-xtorouterui.py89
1 files changed, 89 insertions, 0 deletions
diff --git a/torouterui.py b/torouterui.py
new file mode 100755
index 0000000..33a0018
--- /dev/null
+++ b/torouterui.py
@@ -0,0 +1,89 @@
+#!/usr/bin/env python
+
+from flask import Flask, render_template, send_from_directory, request
+import argparse
+import os
+
+from helpers import sysstatus
+from helpers import netif
+import config
+
+app = Flask(__name__)
+
+
+@app.route('/')
+def status():
+ status = dict()
+ status['system'] = sysstatus.get_system_status()
+ status['wan'] = netif.get_wan_status()
+ status['lan'] = netif.get_lan_status()
+ status['wireless'] = netif.get_wireless_status()
+ return render_template('home.html', settings=None, status=status)
+
+@app.route('/administer/', methods=['GET', 'POST'])
+def administer():
+ return render_template('administer.html', settings=None, status=None)
+
+@app.route('/reboot/', methods=['GET', 'POST'])
+def administer():
+ print request.form
+ if request.method == 'GET':
+ return render_template('reboot.html', status=None)
+ if request.form.has_key('confirm'):
+ # TODO: check reboot flag here?
+ return render_template('reboot.html', status='rebooting')
+ else:
+ # XXX: flashing introduces cookies
+ #flash("Didn't confirm, not rebooting", "warning")
+ return render_template('reboot.html', status=None)
+
+
+@app.route('/wan/', methods=['GET', 'POST'])
+def wan():
+ status = dict()
+ status['wan'] = netif.get_wan_status()
+ return render_template('wan.html', settings=None, status=None)
+
+@app.route('/lan/', methods=['GET', 'POST'])
+def lan():
+ return render_template('lan.html', settings=None, status=None)
+
+@app.route('/wireless/', methods=['GET', 'POST'])
+def wireless():
+ return render_template('wireless.html', settings=None, status=None)
+
+@app.route('/tor/', methods=['GET', 'POST'])
+def tor():
+ return render_template('tor.html', settings=None, status=None)
+
+@app.route('/logs/', methods=['GET'])
+def logs():
+ logs = dict()
+ logs['dmesg'] = sysstatus.get_dmesg()
+ logs['syslog'] = sysstatus.get_syslog()
+ logs['authlog'] = sysstatus.get_authlog()
+ return render_template('logs.html', logs=logs)
+
+@app.route('/processes/', methods=['GET'])
+def processes():
+ process_list = sysstatus.get_process_list()
+ return render_template('processes.html', process_list=process_list)
+
+@app.route('/favicon.ico')
+def favicon():
+ return send_from_directory(os.path.join(app.root_path, 'static'),
+ 'favicon.ico',
+ mimetype='image/vnd.microsoft.icon')
+
+@app.route('/robots.txt')
+def robots():
+ return send_from_directory(os.path.join(app.root_path, 'static'),
+ 'robots.txt',
+ mimetype='text/plain')
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--debug', action='store_true',
+ help="enable debugging interface")
+ args = parser.parse_args()
+ app.run(debug=args.debug)