aboutsummaryrefslogtreecommitdiffstats
path: root/torouterui.py
diff options
context:
space:
mode:
authorficus <ficus@robocracy.org>2012-09-15 22:50:14 +0200
committerficus <ficus@robocracy.org>2012-09-15 22:50:14 +0200
commitced83335a5a338cb9c24956b96da526465d94df8 (patch)
treeb345cd21dfcbb9e660aceb2433c92bd50848938f /torouterui.py
parent57a1e70dee45f5cd9493d6d23f8fc7b6435d5388 (diff)
downloadtui-ced83335a5a338cb9c24956b96da526465d94df8.tar.gz
tui-ced83335a5a338cb9c24956b96da526465d94df8.zip
refactor to distributable format
Diffstat (limited to 'torouterui.py')
-rwxr-xr-xtorouterui.py230
1 files changed, 0 insertions, 230 deletions
diff --git a/torouterui.py b/torouterui.py
deleted file mode 100755
index fe72475..0000000
--- a/torouterui.py
+++ /dev/null
@@ -1,230 +0,0 @@
-#!/usr/bin/env python
-"""
-Main Flask web application code for the torouter user interface. See also
-README and TODO.
-
-Run ``./torouterui.py --help`` for command line argument options; see bottom of
-this file for that code.
-
-The code that actually interacts with the operating system is the /helpers
-directory.
-
-This code under a BSD license; see LICENSE file included with this code.
-
-<https://trac.torproject.org/projects/tor/wiki/doc/Torouter>
-"""
-
-from flask import Flask, render_template, send_from_directory, request
-import argparse
-import os
-
-from helpers import sysstatus
-from helpers import netif
-from helpers import tor
-
-app = Flask(__name__)
-
-
-@app.route('/')
-def statuspage():
- status = dict()
- status['system'] = sysstatus.get_system_status()
- status['resources'] = sysstatus.get_resources_status()
- status['wan'] = netif.get_wan_status()
- status['lan'] = netif.get_lan_status()
- status['wifi'] = netif.get_wifi_status()
- status['tor'] = tor.get_tor_status()
- return render_template('home.html', settings=None, status=status)
-
-@app.route('/reboot/', methods=['GET', 'POST'])
-def rebootpage():
- msg = list()
- if request.method == 'GET':
- return render_template('reboot.html', status=None)
- elif 'confirm' in request.form:
- # TODO: actually execute reboot
- #os.system('reboot &')
- return render_template('reboot.html', status='rebooting')
- else:
- msg.append(("error", "Didn't confirm, not rebooting",),)
- return render_template('reboot.html', status=None, messages=msg)
-
-@app.route('/wan/', methods=['GET', 'POST'])
-def wanpage():
- msg = list()
- status = dict(wan=netif.get_wan_status())
- if not status['wan']:
- msg.append(("error",
- "Interface not detected, can not be configured."),)
- return render_template('wan.html', form=None, status=status,
- messages=msg, formerr=None)
- if request.method == 'GET':
- form = netif.get_wan_settings()
- return render_template('wan.html', form=form, status=status,
- formerr=None)
- # Got this far, need to validated form
- formerr = dict()
- if request.form['ipv4method'] == 'disabled':
- pass # no further validation
- elif request.form['ipv4method'] == 'dhcp':
- pass # no further validation
- elif request.form['ipv4method'] == 'static':
- if not netif.is_valid_ipv4(request.form['ipv4addr']):
- formerr['ipv4addr'] = "Not a valid IPv4 address"
- if not netif.is_valid_ipv4mask(request.form['ipv4netmask']):
- formerr['ipv4netmask'] = "Not a valid IPv4 netmask"
- if not netif.is_valid_ipv4(request.form['ipv4gateway']):
- formerr['ipv4gateway'] = "Not a valid IPv4 address"
- else:
- ke = KeyError("Invalid net config method: %s" % form['ipv4method'])
- print ke
- raise ke
- if len(formerr.keys()) > 0:
- msg.append(("error",
- "Please correct the validation issues below"),)
- else:
- # Ok, we have a valid form, now to commit it
- try:
- netif.save_wan_settings(request.form)
- msg.append(("success",
- "Configuration saved! Check logs for any errors"),)
- except IOError, ioerr:
- msg.append(("error",
- "Was unable to commit changes... permissions problem? \"%s\""
- % ioerr))
- return render_template('wan.html', form=request.form, status=status,
- formerr=formerr, messages=msg)
-
-@app.route('/lan/', methods=['GET', 'POST'])
-def lanpage():
- msg = list()
- status = dict()
- status['lan'] = netif.get_lan_status()
- if not status['lan']:
- msg.append(("error",
- "Interface not detected, can not be configured."),)
- return render_template('lan.html', form=None, status=status,
- messages=msg, formerr=None)
- if request.method == 'GET':
- form = netif.get_lan_settings()
- return render_template('lan.html', form=form, status=status,
- formerr=None)
- # Got this far, need to validated form
- formerr = dict()
- if request.form['ipv4method'] == 'disabled':
- pass # no further validation
- elif request.form['ipv4method'] == 'static':
- if not netif.is_valid_ipv4(request.form['ipv4addr']):
- formerr['ipv4addr'] = "Not a valid IPv4 address"
- if not netif.is_valid_ipv4mask(request.form['ipv4netmask']):
- formerr['ipv4netmask'] = "Not a valid IPv4 netmask"
- if not netif.is_valid_ipv4(request.form['ipv4gateway']):
- formerr['ipv4gateway'] = "Not a valid IPv4 address"
- else:
- ke = KeyError("Invalid method: %s" % form['ipv4method'])
- print ke
- raise ke
- if len(formerr.keys()) > 0:
- msg.append(("error",
- "Please correct the validation issues below"),)
- else:
- # Ok, we have a valid form, now to commit it
- try:
- netif.save_lan_settings(request.form)
- msg.append(("success",
- "Configuration saved! Check logs for any errors"),)
- except IOError, ioerr:
- msg.append(("error",
- "Was unable to commit changes... permissions problem? \"%s\""
- % ioerr))
- return render_template('lan.html', form=request.form, status=status,
- formerr=formerr, messages=msg)
-
-@app.route('/wifi/', methods=['GET', 'POST'])
-def wifipage():
- msg = list()
- status = dict()
- status['wifi'] = netif.get_wifi_status()
- if not status['wifi']:
- msg.append(("error",
- "Interface not detected, can not be configured."),)
- return render_template('wifi.html', form=None, status=status,
- messages=msg, formerr=None)
- if request.method == 'GET':
- form = netif.get_wifi_settings()
- return render_template('wifi.html', form=form, status=status,
- formerr=None)
- # Got this far, need to validated form
- formerr = dict()
- if request.form['ipv4method'] == 'disabled':
- pass # no further validation
- elif request.form['ipv4method'] == 'static':
- if not netif.is_valid_ipv4(request.form['ipv4addr']):
- formerr['ipv4addr'] = "Not a valid IPv4 address"
- if not netif.is_valid_ipv4mask(request.form['ipv4netmask']):
- formerr['ipv4netmask'] = "Not a valid IPv4 netmask"
- if not netif.is_valid_ipv4(request.form['ipv4gateway']):
- formerr['ipv4gateway'] = "Not a valid IPv4 address"
- else:
- ke = KeyError("Invalid method: %s" % form['ipv4method'])
- print ke
- raise ke
- if len(formerr.keys()) > 0:
- msg.append(("error",
- "Please correct the validation issues below"),)
- else:
- # Ok, we have a valid form, now to commit it
- try:
- netif.save_wifi_settings(request.form)
- msg.append(("success",
- "Configuration saved! Check logs for any errors"),)
- except IOError, ioerr:
- msg.append(("error",
- "Was unable to commit changes... permissions problem? \"%s\""
- % ioerr))
- return render_template('wifi.html', form=request.form, status=status,
- formerr=formerr, messages=msg)
- return render_template('wifi.html', settings=None, status=None)
-
-@app.route('/tor/', methods=['GET', 'POST'])
-def torpage():
- # TODO: unimplemented
- msg = list()
- return render_template('tor.html', settings=None, status=None,
- form=request.form, formerr=None, messages=msg)
-
-@app.route('/logs/', methods=['GET'])
-def logspage():
- 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 processespage():
- process_list = sysstatus.get_process_list()
- return render_template('processes.html', process_list=process_list)
-
-@app.route('/favicon.ico')
-def favicon():
- """ Simple static redirect """
- return send_from_directory(os.path.join(app.root_path, 'static'),
- 'favicon.ico',
- mimetype='image/vnd.microsoft.icon')
-
-@app.route('/robots.txt')
-def robots():
- """ "Just in case?" """
- 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)