return {'request': cherrypy.request, 'kwargs': kwargs}
helloworld._cp_config['tools.require_login.on'] = False
+ class MachineView(View):
+ # This is hairy. Fix when CherryPy 3.2 is out. (rename to
+ # _cp_dispatch, and parse the argument as a list instead of
+ # string
+
+ def __getattr__(self, name):
+ try:
+ machine_id = int(name)
+ cherrypy.request.params['machine_id'] = machine_id
+ return self
+ except ValueError:
+ return None
+
+ @cherrypy.expose
+ @cherrypy.tools.mako(filename="/info.mako")
+ def info(self, machine_id):
+ """Handler for info on a single VM."""
+ machine = validation.Validate(cherrypy.request.login, cherrypy.request.state, machine_id=machine_id).machine
+ d = infoDict(cherrypy.request.login, cherrypy.request.state, machine)
+ checkpoint.checkpoint('Got infodict')
+ return d
+ index = info
+
+ machine = MachineView()
+
def pathSplit(path):
if path.startswith('/'):
path = path[1:]
fields = fields)
return d
-def info(username, state, path, fields):
- """Handler for info on a single VM."""
- machine = validation.Validate(username, state, machine_id=fields.getfirst('machine_id')).machine
- d = infoDict(username, state, machine)
- checkpoint.checkpoint('Got infodict')
- return templates.info(searchList=[d])
-
def unauthFront(_, _2, _3, fields):
"""Information for unauth'd users."""
return templates.unauth(searchList=[{'simple' : True,
mapping = dict(vnc=vnc,
command=command,
modify=modify,
- info=info,
create=create,
unauth=unauthFront,
admin=admin,