projects
/
invirt/packages/invirt-web.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Autoinstalls
[invirt/packages/invirt-web.git]
/
code
/
validation.py
diff --git
a/code/validation.py
b/code/validation.py
index
db3a365
..
8f81625
100644
(file)
--- a/
code/validation.py
+++ b/
code/validation.py
@@
-4,7
+4,7
@@
import cache_acls
import getafsgroups
import re
import string
import getafsgroups
import re
import string
-from sipb_xen_database import Machine, NIC, Type, Disk
+from sipb_xen_database import Machine, NIC, Type, Disk, CDROM, Autoinstall
from webcommon import InvalidInput
MAX_MEMORY_TOTAL = 512
from webcommon import InvalidInput
MAX_MEMORY_TOTAL = 512
@@
-17,9
+17,9
@@
MAX_VMS_TOTAL = 10
MAX_VMS_ACTIVE = 4
class Validate:
MAX_VMS_ACTIVE = 4
class Validate:
- def __init__(self, username, state, machine_id=None, name=None, owner=None,
+ def __init__(self, username, state, machine_id=None, name=None, description=None, owner=None,
admin=None, contact=None, memory=None, disksize=None,
admin=None, contact=None, memory=None, disksize=None,
- vmtype=None, cdrom=None, clone_from=None, strict=False):
+ vmtype=None, cdrom=None, autoinstall=None, strict=False):
# XXX Successive quota checks aren't a good idea, since you
# can't necessarily change the locker and disk size at the
# same time.
# XXX Successive quota checks aren't a good idea, since you
# can't necessarily change the locker and disk size at the
# same time.
@@
-28,6
+28,8
@@
class Validate:
if strict:
if name is None:
raise InvalidInput('name', name, "You must provide a machine name.")
if strict:
if name is None:
raise InvalidInput('name', name, "You must provide a machine name.")
+ if description is None:
+ raise InvalidInput('description', description, "You must provide a description.")
if memory is None:
raise InvalidInput('memory', memory, "You must provide a memory size.")
if disksize is None:
if memory is None:
raise InvalidInput('memory', memory, "You must provide a memory size.")
if disksize is None:
@@
-49,6
+51,9
@@
class Validate:
name = testName(username, name, machine)
if name is not None:
self.name = name
name = testName(username, name, machine)
if name is not None:
self.name = name
+ description = testDescription(username, description, machine)
+ if description is not None:
+ self.description = description
if memory is not None:
self.memory = validMemory(self.owner, state, memory, machine,
on=not created_new)
if memory is not None:
self.memory = validMemory(self.owner, state, memory, machine,
on=not created_new)
@@
-60,10
+65,8
@@
class Validate:
if not CDROM.get(cdrom):
raise CodeError("Invalid cdrom type '%s'" % cdrom)
self.cdrom = cdrom
if not CDROM.get(cdrom):
raise CodeError("Invalid cdrom type '%s'" % cdrom)
self.cdrom = cdrom
- if clone_from is not None:
- if clone_from not in ('ice3', ):
- raise CodeError("Invalid clone image '%s'" % clone_from)
- self.clone_from = clone_from
+ if autoinstall is not None:
+ self.autoinstall = Autoinstall.get(autoinstall)
def getMachinesByOwner(owner, machine=None):
def getMachinesByOwner(owner, machine=None):
@@
-269,6
+272,11
@@
def testName(user, name, machine=None):
return name
raise InvalidInput('name', name, "Name is already taken.")
return name
raise InvalidInput('name', name, "Name is already taken.")
+def testDescription(user, description, machine=None):
+ if description is None or description.strip() == '':
+ return None
+ return description.strip()
+
def testHostname(user, hostname, machine):
for nic in machine.nics:
if hostname == nic.hostname:
def testHostname(user, hostname, machine):
for nic in machine.nics:
if hostname == nic.hostname: