Moo!
authorEric Price <ecprice@mit.edu>
Mon, 8 Oct 2007 06:17:26 +0000 (02:17 -0400)
committerEric Price <ecprice@mit.edu>
Mon, 8 Oct 2007 06:17:26 +0000 (02:17 -0400)
svn path=/trunk/web/; revision=134

templates/command.tmpl [new file with mode: 0644]
templates/create.tmpl
templates/main.py

diff --git a/templates/command.tmpl b/templates/command.tmpl
new file mode 100644 (file)
index 0000000..d7a6890
--- /dev/null
@@ -0,0 +1,17 @@
+#from skeleton import skeleton
+#extends skeleton
+
+#def title
+$command $machine.name
+#end def
+
+
+#def body
+<h1>Command succesful</h1>
+<p>$command ${machine.name} was successful.</p>
+#if $command == "Delete VM"
+<p><a href="list">Return</a></p>
+#else
+<p><a href="info?machine_id=${machine.machine_id}">Return</a></p>
+#end if
+#end def
index af38122..768f0ed 100644 (file)
@@ -12,4 +12,5 @@ Created!
 #else
 <p>Odd... no error, but no machine.</p>
 #end if
 #else
 <p>Odd... no error, but no machine.</p>
 #end if
+<p><a href="list">Return</a></p>
 #end def
 #end def
index e2a88b3..36518d6 100755 (executable)
@@ -212,36 +212,44 @@ def createVm(user, name, memory, disk, is_hvm, cdrom):
 
     return machine
 
 
     return machine
 
-def create(user, fields):
-    name = fields.getfirst('name')
-    if not validMachineName(name):
-        raise MyException("Invalid name '%s'" % name)
-    name = user.username + '_' + name.lower()
-
-    if Machine.get_by(name=name):
-        raise MyException("A machine named '%s' already exists" % name)
-    
-    memory = fields.getfirst('memory')
+def validMemory(user, memory, machine=None):
     try:
         memory = int(memory)
         if memory <= 0:
             raise ValueError
     except ValueError:
         raise MyException("Invalid memory amount")
     try:
         memory = int(memory)
         if memory <= 0:
             raise ValueError
     except ValueError:
         raise MyException("Invalid memory amount")
-    if memory > maxMemory(user):
+    if memory > maxMemory(user, machine):
         raise MyException("Too much memory requested")
         raise MyException("Too much memory requested")
-    
-    disk = fields.getfirst('disk')
+    return memory
+
+def validDisk(user, disk, machine=None):
     try:
         disk = float(disk)
     try:
         disk = float(disk)
-        if disk > maxDisk(user):
+        if disk > maxDisk(user, machine):
             raise MyException("Too much disk requested")
         disk = int(disk * 1024)
         if disk <= 0:
             raise ValueError
     except ValueError:
         raise MyException("Invalid disk amount")
             raise MyException("Too much disk requested")
         disk = int(disk * 1024)
         if disk <= 0:
             raise ValueError
     except ValueError:
         raise MyException("Invalid disk amount")
+    return disk
+
+def create(user, fields):
+    name = fields.getfirst('name')
+    if not validMachineName(name):
+        raise MyException("Invalid name '%s'" % name)
+    name = user.username + '_' + name.lower()
+
+    if Machine.get_by(name=name):
+        raise MyException("A machine named '%s' already exists" % name)
+    
+    memory = fields.getfirst('memory')
+    memory = validMemory(user, memory)
     
     
+    disk = fields.getfirst('disk')
+    disk = validDisk(user, disk)
+
     vm_type = fields.getfirst('vmtype')
     if vm_type not in ('hvm', 'paravm'):
         raise MyException("Invalid vm type '%s'"  % vm_type)    
     vm_type = fields.getfirst('vmtype')
     if vm_type not in ('hvm', 'paravm'):
         raise MyException("Invalid vm type '%s'"  % vm_type)