Replace case-sensitive logic in create_job with case-insensitive logic. The
MySQL database performs case-insensitive searches by default.

Signed-off-by: James Ren <jamesren@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4490 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/frontend/afe/rpc_interface.py b/frontend/afe/rpc_interface.py
index fc60a75..d9a10ba 100644
--- a/frontend/afe/rpc_interface.py
+++ b/frontend/afe/rpc_interface.py
@@ -439,6 +439,10 @@
     """
     user = models.User.current_user()
     owner = user.login
+
+    # Convert metahost names to lower case, to avoid case sensitivity issues
+    meta_hosts = [meta_host.lower() for meta_host in meta_hosts]
+
     # input validation
     if not (hosts or meta_hosts or one_time_hosts or atomic_group_name
             or hostless):
@@ -459,9 +463,9 @@
                     'control_type': 'Hostless jobs cannot use client-side '
                                     'control files'})
 
-    labels_by_name = dict((label.name, label)
+    labels_by_name = dict((label.name.lower(), label)
                           for label in models.Label.objects.all())
-    atomic_groups_by_name = dict((ag.name, ag)
+    atomic_groups_by_name = dict((ag.name.lower(), ag)
                                  for ag in models.AtomicGroup.objects.all())
 
     # Schedule on an atomic group automagically if one of the labels given
@@ -494,7 +498,7 @@
             atomic_group_name = atomic_group.name
         else:
             raise model_logic.ValidationError(
-                {'meta_hosts' : 'Label "%s" not found' % label})
+                {'meta_hosts' : 'Label "%s" not found' % label_name})
 
     # Create and sanity check an AtomicGroup object if requested.
     if atomic_group_name: