- if Machine.get_by(name=name):
- raise InvalidInput('name', name,
- "Name already exists.")
-
- owner = validation.testOwner(user, fields.getfirst('owner'))
-
- memory = fields.getfirst('memory')
- memory = validation.validMemory(owner, memory, on=True)
-
- disk_size = fields.getfirst('disk')
- disk_size = validation.validDisk(owner, disk_size)
-
- vm_type = fields.getfirst('vmtype')
- vm_type = validation.validVmType(vm_type)
-
- cdrom = fields.getfirst('cdrom')
- if cdrom is not None and not CDROM.get(cdrom):
- raise CodeError("Invalid cdrom type '%s'" % cdrom)
-
- clone_from = fields.getfirst('clone_from')
- if clone_from and clone_from != 'ice3':
- raise CodeError("Invalid clone image '%s'" % clone_from)
-
- return dict(contact=user, name=name, memory=memory, disk_size=disk_size,
- owner=owner, machine_type=vm_type, cdrom=cdrom, clone_from=clone_from)
-
-def create(user, fields):