Get username and state from CherryPy request
[invirt/packages/invirt-web.git] / code / main.py
index 6fdd31a..fd95e84 100755 (executable)
@@ -13,8 +13,8 @@ import sys
 import time
 import urllib
 import socket
 import time
 import urllib
 import socket
+import cherrypy
 from StringIO import StringIO
 from StringIO import StringIO
-
 def revertStandardError():
     """Move stderr to stdout, and return the contents of the old stderr."""
     errio = sys.stderr
 def revertStandardError():
     """Move stderr to stdout, and return the contents of the old stderr."""
     errio = sys.stderr
@@ -45,6 +45,31 @@ from invirt.database import Machine, CDROM, session, connect, MachineAccess, Typ
 from invirt.config import structs as config
 from invirt.common import InvalidInput, CodeError
 
 from invirt.config import structs as config
 from invirt.common import InvalidInput, CodeError
 
+from view import View
+
+class InvirtWeb(View):
+    def __init__(self):
+        super(self.__class__,self).__init__()
+        connect()
+        self._cp_config['tools.require_login.on'] = True
+
+    @cherrypy.expose
+    @cherrypy.tools.mako(filename="/list.mako")
+    def list(self):
+        """Handler for list requests."""
+        checkpoint.checkpoint('Getting list dict')
+        d = getListDict(cherrypy.request.login, cherrypy.request.state)
+        checkpoint.checkpoint('Got list dict')
+        return d
+    index=list
+
+    @cherrypy.expose
+    @cherrypy.tools.mako(filename="/helloworld.mako")
+    def helloworld(self):
+        return {}
+        return "Hello world!\nYour request: "+repr(dir(cherrypy.request))
+    helloworld._cp_config['tools.require_login.on'] = False
+
 def pathSplit(path):
     if path.startswith('/'):
         path = path[1:]
 def pathSplit(path):
     if path.startswith('/'):
         path = path[1:]
@@ -217,13 +242,6 @@ def getListDict(username, state):
              can_clone=can_clone)
     return d
 
              can_clone=can_clone)
     return d
 
-def listVms(username, state, path, fields):
-    """Handler for list requests."""
-    checkpoint.checkpoint('Getting list dict')
-    d = getListDict(username, state)
-    checkpoint.checkpoint('Got list dict')
-    return templates.list(searchList=[d])
-
 def vnc(username, state, path, fields):
     """VNC applet page.
 
 def vnc(username, state, path, fields):
     """VNC applet page.
 
@@ -626,7 +644,7 @@ def throwError(_, __, ___, ____):
     """Throw an error, to test the error-tracing mechanisms."""
     raise RuntimeError("test of the emergency broadcast system")
 
     """Throw an error, to test the error-tracing mechanisms."""
     raise RuntimeError("test of the emergency broadcast system")
 
-mapping = dict(list=listVms,
+mapping = dict(#list=listVms,
                vnc=vnc,
                command=command,
                modify=modify,
                vnc=vnc,
                command=command,
                modify=modify,