fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
--- a/pvl/verkko/db.py Wed Oct 10 21:59:34 2012 +0300
+++ b/pvl/verkko/db.py Wed Oct 10 22:10:16 2012 +0300
@@ -3,8 +3,6 @@
import logging; log = logging.getLogger('pvl.verkko.db')
-DATABASE = 'sqlite:////home/terom/pvl/web/verkko/var/verkko.db'
-
# schema
metadata = MetaData()
@@ -27,7 +25,6 @@
Session = sessionmaker()
-
class Database (object) :
"""
Our underlying database.
@@ -36,7 +33,11 @@
# XXX: alias Tables in?
dhcp_hosts = dhcp_hosts
- def __init__ (self, database=DATABASE) :
+ def __init__ (self, database) :
+ """
+ database - sqlalchemy connection URI
+ """
+
self.engine = create_engine(database,
echo = (log.isEnabledFor(logging.DEBUG)),
)
--- a/pvl/verkko/wsgi.py Wed Oct 10 21:59:34 2012 +0300
+++ b/pvl/verkko/wsgi.py Wed Oct 10 22:10:16 2012 +0300
@@ -6,27 +6,37 @@
from pvl.verkko import db as database, web, hosts
-@Request.application
-def application (request) :
- db = database.Database()
-
- # path?
- path = request.path.strip('/')
-
- if path :
- path = path.split('/')
- else :
- path = []
+class Application (object) :
+ def __init__ (self, db) :
+ """
+ Initialize app with db.
+ """
- log.debug("path: %s", path)
-
- # respond
- if not path :
- return web.render_index()
+ self.db = database.Database(db)
- elif path[0] == 'hosts' :
- return hosts.respond(request, db, path[1:])
+ @Request.application
+ def __call__ (self, request) :
+ """
+ WSGI entry point, werkzeug Request -> Response
+ """
+
+ # path?
+ path = request.path.strip('/')
+
+ if path :
+ path = path.split('/')
+ else :
+ path = []
- else :
- return Response("Not Found", status=404)
-
+ log.debug("path: %s", path)
+
+ # respond
+ if not path :
+ return web.render_index()
+
+ elif path[0] == 'hosts' :
+ return hosts.respond(request, self.db, path[1:])
+
+ else :
+ return Response("Not Found", status=404)
+
--- a/test.py Wed Oct 10 21:59:34 2012 +0300
+++ b/test.py Wed Oct 10 22:10:16 2012 +0300
@@ -30,6 +30,9 @@
# common
parser.add_option_group(pvl.args.parser(parser))
+ parser.add_option('-d', '--database-read', default='sqlite:///var/verkko.db',
+ help="Database to use (readonly)")
+
# parse
options, args = parser.parse_args(args)
@@ -47,7 +50,7 @@
options, args = parse_argv(argv, doc=__doc__)
# app
- application = pvl.verkko.wsgi.application
+ application = pvl.verkko.wsgi.Application(options.database_read)
# wsgi wrapper
run_simple('0.0.0.0', 8080, application,
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test.wsgi Wed Oct 10 22:10:16 2012 +0300
@@ -0,0 +1,9 @@
+"""
+ WSGI entry point
+"""
+
+import pvl.verkko.wsgi
+
+DATABASE_READ = 'sqlite:////home/terom/pvl/web/verkko/var/verkko.db'
+
+application = pvl.verkko.wsgi.Application(DATABASE_READ)