X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/daa95318e6cee597593b33f77a99cd224c8be893..b001dd5804c18377b497d87ddf23138282ef2690:/code/validation.py diff --git a/code/validation.py b/code/validation.py index d291d61..817c2cf 100644 --- a/code/validation.py +++ b/code/validation.py @@ -4,7 +4,7 @@ import cache_acls import getafsgroups import re import string -from sipb_xen_database import Machine, NIC, Type, Disk, CDROM, Autoinstall +from invirt.database import Machine, NIC, Type, Disk, CDROM, Autoinstall from webcommon import InvalidInput MAX_MEMORY_TOTAL = 512 @@ -135,8 +135,8 @@ def validMachineName(name): """Check that name is valid for a machine name""" if not name: return False - charset = string.ascii_letters + string.digits + '-_' - if name[0] in '-_' or len(name) > 22: + charset = string.lowercase + string.digits + '-' + if '-' in (name[0], name[-1]) or len(name) > 63: return False for x in name: if x not in charset: @@ -264,11 +264,12 @@ def testDisk(user, disksize, machine=None): def testName(user, name, machine=None): if name is None: return None + name = name.lower() if machine is not None and name == machine.name: return None if not Machine.select_by(name=name): if not validMachineName(name): - raise InvalidInput('name', name, 'You must provide a machine name. Max 22 chars, alnum plus \'-\' and \'_\'.') + raise InvalidInput('name', name, 'You must provide a machine name. Max 63 chars, alnum plus \'-\', does not begin or end with \'-\'.') return name raise InvalidInput('name', name, "Name is already taken.")