More accurate validMachineName (no _, 63 character limit).
[invirt/packages/invirt-web.git] / code / validation.py
index d291d61..e69559a 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,6 +264,7 @@ 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):