From: Quentin Smith Date: Thu, 29 Oct 2009 07:27:33 +0000 (-0400) Subject: Document MachineView.__getattr__ X-Git-Tag: 0.1.0^2~20 X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/commitdiff_plain/dc296d4ff582fb8a636b6d71ff64013fb499fdb6 Document MachineView.__getattr__ svn path=/package_branches/invirt-web/cherrypy-rebased/; revision=2715 --- diff --git a/code/main.py b/code/main.py index a494046..872b17e 100755 --- a/code/main.py +++ b/code/main.py @@ -248,11 +248,17 @@ console will suffer artifacts. raise RuntimeError("test of the emergency broadcast system") 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): + """Synthesize attributes to allow RESTful URLs like + /machine/13/info. This is hairy. CherryPy 3.2 adds a + method called _cp_dispatch that allows you to explicitly + handle URLs that can't be mapped, and it allows you to + rewrite the path components and continue processing. + + This function gets the next path component being resolved + as a string. _cp_dispatch will get an array of strings + representing any subsequent path components as well.""" + try: cherrypy.request.params['machine_id'] = int(name) return self