From: Quentin Smith <quentin@mit.edu>
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?hp=4adf053a3d1a84983d469dfed0e03740c7319086

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