fix invalid input exception, and let you "change" machine to it's own name
authorEric Price <ecprice@mit.edu>
Wed, 10 Oct 2007 02:50:11 +0000 (22:50 -0400)
committerEric Price <ecprice@mit.edu>
Wed, 10 Oct 2007 02:50:11 +0000 (22:50 -0400)
svn path=/trunk/web/; revision=164

templates/main.py

index bf40069..c708752 100755 (executable)
@@ -34,7 +34,7 @@ class InvalidInput(MyException):
     the select box).
     """
     def __init__(self, err_field, err_value, expl=None):
     the select box).
     """
     def __init__(self, err_field, err_value, expl=None):
-        super(InvalidInput, self).__init__(expl)
+        MyException.__init__(self, expl)
         self.err_field = err_field
         self.err_value = err_value
 
         self.err_field = err_field
         self.err_value = err_value
 
@@ -585,6 +585,8 @@ def testDisk(user, disksize, machine=None):
 def testName(user, name, machine=None):
     if Machine.select_by(name=name) == []:
         return name
 def testName(user, name, machine=None):
     if Machine.select_by(name=name) == []:
         return name
+    if name == machine.name:
+        return name
     raise InvalidInput('name', name,
                        "Already taken")
 
     raise InvalidInput('name', name,
                        "Already taken")
 
@@ -610,20 +612,21 @@ def modify(user, fields):
         contact = testContact(user, fields.getfirst('contact'))
         hostname = testHostname(owner, fields.getfirst('hostname'),
                             machine)
         contact = testContact(user, fields.getfirst('contact'))
         hostname = testHostname(owner, fields.getfirst('hostname'),
                             machine)
-        name = testName(user, fields.getfirst('name'))
+        name = testName(user, fields.getfirst('name'), machine)
         oldname = machine.name
         olddisk = {}
 
         memory = fields.getfirst('memory')
         if memory is not None:
             memory = validMemory(user, memory, machine)
         oldname = machine.name
         olddisk = {}
 
         memory = fields.getfirst('memory')
         if memory is not None:
             memory = validMemory(user, memory, machine)
+        else:
+            memory = machine.memory
         if memory != machine.memory:
             machine.memory = memory
 
         disksize = testDisk(user, fields.getfirst('disk'))
         if disksize is not None:
             disksize = validDisk(user, disksize, machine)
         if memory != machine.memory:
             machine.memory = memory
 
         disksize = testDisk(user, fields.getfirst('disk'))
         if disksize is not None:
             disksize = validDisk(user, disksize, machine)
-        
         for disk in machine.disks:
             disk.size = disksize
             olddisk[disk.guest_device_name] = disk.size
         for disk in machine.disks:
             disk.size = disksize
             olddisk[disk.guest_device_name] = disk.size