update to match current error messages
[invirt/packages/invirt-web.git] / code / validation.py
index d291d61..04b53ba 100644 (file)
@@ -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.")