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
name = fields.getfirst('name')
if not validMachineName(name):
raise InvalidInput('name', name)
- name = user.username + '_' + name.lower()
+ name = name.lower()
if Machine.get_by(name=name):
raise InvalidInput('name', name,
return disksize
def testName(user, name, machine=None):
- return name
+ if Machine.select_by(name=name) == []:
+ return name
+ if name == machine.name:
+ return name
+ raise InvalidInput('name', name,
+ "Already taken")
def testHostname(user, hostname, machine):
for nic in machine.nics:
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
+ command="modify"
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)
-
+ else:
+ disksize = machine.disks[0].size
for disk in machine.disks:
- disk.size = disksize
olddisk[disk.guest_device_name] = disk.size
+ disk.size = disksize
ctx.current.save(disk)
# XXX all NICs get same hostname on change? Interface doesn't support more.
transaction.commit()
except:
transaction.rollback()
+ raise
remctl("web", "moveregister", oldname, name)
for disk in machine.disks:
# XXX all disks get the same size on change? Interface doesn't support more.
if oldname != name:
remctl("web", "lvrename", oldname, disk.guest_device_name, name)
d = dict(user=user,
- command="modify",
+ command=command,
machine=machine)
return Template(file="command.tmpl", searchList=[d, global_dict])