HVM/ParaVM
[invirt/packages/invirt-web.git] / templates / main.py
index 36518d6..cb8229c 100755 (executable)
@@ -41,7 +41,9 @@ def maxDisk(user, machine=None):
     return 10.0
 
 def haveAccess(user, machine):
-    return True
+    if user.username == 'quentin':
+        return True
+    return machine.owner == user.username
 
 def error(op, user, fields, err):
     d = dict(op=op, user=user, errorMessage=str(err))
@@ -268,11 +270,16 @@ def create(user, fields):
                    searchList=d);
 
 def listVms(user, fields):
-    machines = Machine.select()
+    machines = [m for m in Machine.select() if haveAccess(user, m)]    
     on = {}
     has_vnc = {}
     uptimes = getUptimes(machines)
-    on = has_vnc = uptimes
+    on = uptimes
+    for m in machines:
+        if on.get(m.name) and m.type.hvm:
+            has_vnc[m.name] = True
+        else:
+            has_vnc[m.name] = False
     #     for m in machines:
     #         status = statusInfo(m)
     #         on[m.name] = status is not None
@@ -434,6 +441,7 @@ def info(user, fields):
     display_fields = [('name', 'Name'),
                       ('owner', 'Owner'),
                       ('contact', 'Contact'),
+                      ('type', 'Type'),
                       'NIC_INFO',
                       ('uptime', 'uptime'),
                       ('cputime', 'CPU usage'),
@@ -450,6 +458,7 @@ def info(user, fields):
                       ]
     fields = []
     machine_info = {}
+    machine_info['type'] = machine.type.hvm and 'HVM' or 'ParaVM'
     machine_info['owner'] = machine.owner
     machine_info['contact'] = machine.contact