Remove calls to helppopup from outside templates
[invirt/packages/invirt-web.git] / code / main.py
index 593b9f0..222520c 100755 (executable)
@@ -139,8 +139,7 @@ console will suffer artifacts.
         if not isinstance(subject, list):
             subject = [subject]
 
-        return dict(user=cherrypy.request.login,
-                    simple=simple,
+        return dict(simple=simple,
                     subjects=subject,
                     mapping=help_mapping)
     help._cp_config['tools.require_login.on'] = False
@@ -151,6 +150,31 @@ console will suffer artifacts.
         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:]
@@ -291,7 +315,7 @@ def getListDict(username, state):
             elif m.type.hvm:
                 has_vnc[m] = "WTF?"
             else:
-                has_vnc[m] = "ParaVM"+helppopup("ParaVM Console")
+                has_vnc[m] = "ParaVM"
     max_memory = validation.maxMemory(username, state)
     max_disk = validation.maxDisk(username)
     checkpoint.checkpoint('Got max mem/disk')
@@ -548,7 +572,6 @@ def infoDict(username, state, machine):
                       ('memory', 'RAM'),
                       'DISK_INFO',
                       ('state', 'state (xen format)'),
-                      ('cpu_weight', 'CPU weight'+helppopup('CPU Weight')),
                       ]
     fields = []
     machine_info = {}
@@ -602,17 +625,9 @@ def infoDict(username, state, machine):
              ram=machine.memory,
              max_mem=max_mem,
              max_disk=max_disk,
-             owner_help=helppopup("Owner"),
              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, 
@@ -637,7 +652,6 @@ def throwError(_, __, ___, ____):
 mapping = dict(vnc=vnc,
                command=command,
                modify=modify,
-               info=info,
                create=create,
                unauth=unauthFront,
                admin=admin,