import mitsql
-from cheetah import templates
+
import cherrypy
+mako = cherrypy.tools.mako
from pprint import pformat
-def _500(*argv, **kw):
- s_exc = cherrypy._cperror.format_exc()
- mitsql.logging.error(s_exc)
- return templates.common.shell(title='%s (CherryPy %s)' % (kw.get('status'), kw.get('version')),
- content=('<p>%s</p>' + (2*'<div><pre>%s</pre></div>'))
- % (kw.get('message'), kw.get('traceback'),
- _phtml(dict(filter(lambda x: not x[0][:2] == '__',
- cherrypy.request.__dict__.items())))))
+#def _500(*argv, **kw):
+# s_exc = cherrypy._cperror.format_exc()
+# mitsql.logging.error(s_exc)
+# return templates.common.shell(title='%s (CherryPy %s)' % (kw.get('status'), kw.get('version')),
+# content=('<p>%s</p>' + (2*'<div><pre>%s</pre></div>'))
+# % (kw.get('message'), kw.get('traceback'),
+# _phtml(dict(filter(lambda x: not x[0][:2] == '__',
+# cherrypy.request.__dict__.items())))))
+
+def _before_request_body():
+ if not cherrypy.request.login is None:
+ if cherrypy.request.login.endswith('@MIT.EDU'):
+ cherrypy.request.login = cherrypy.request.login[:-8]
+ else:
+ cherrypy.request.login = None
+
+from databases import mysql, pgsql
class Root(object):
- class Error(object):
- @cherrypy.expose
- def _404(*argv, **kw):
- return templates.common._404()
- def _500(*argv, **kw):
- return _500(*argv, **kw)
- error = Error()
+ _cp_config = {
+ 'hooks.before_request_body': _before_request_body,
+ 'tools.mako.collection_size': 500,
+ 'tools.mako.directories': mitsql._base+'/www/templates',
+ }
+ #class Error(object):
+ # def _404(*argv, **kw):
+ # return templates.common._404()
+ # def _500(*argv, **kw):
+ # return _500(*argv, **kw)
+ #error = Error()
- class DB(object):
- def list(*argv, **kw):
- r = {'db_list': [],
- 'size_tot': '1M',
- 'size_max': '100M',
- 'user': {
- 'db_prefix': 'presbrey+'
- }}
- return templates.main.db_list(**r)
- list.exposed = True
- db = DB()
-
+ @cherrypy.expose
def test(self, *argv, **kw):
cherrypy.response.headers['Content-type'] = 'text/plain'
return pformat(dict(filter(lambda x: not x[0][:2] == '__', cherrypy.request.__dict__.items())))
- test.exposed = True
+ @cherrypy.expose
+ @mako(filename='index')
def index(self, *argv, **kw):
- return templates.main.index()
- index.exposed = True
+ return {
+ 'title': 'SQL Service',
+ 'login': cherrypy.request.login,
+ }
+ @cherrypy.expose
+ @mako(filename='passwd')
def passwd(self, *argv, **kw):
- return templates.main.passwd()
- passwd.exposed = True
\ No newline at end of file
+ return {
+ 'title': 'Change Passwords',
+ 'login': cherrypy.request.login,
+ }
+
+ @cherrypy.expose
+ @mako(filename='contact')
+ def contact(self, *argv, **kw):
+ return {
+ 'title': 'Contact',
+ }
+
+ @cherrypy.expose
+ @mako(filename='database')
+ def database(self, *argv, **kw):
+ return {
+ 'title': 'Databases',
+ 'login': cherrypy.request.login,
+ 'mysql': mysql.list(cherrypy.request.login),
+ 'pgsql': pgsql.list(cherrypy.request.login),
+ }
+
+#Root._cp_config['error_page.404'] = Root.error._404
+#Root._cp_config['error_page.500'] = Root.error._500