[autotest] Convert more DB queries to be case insensitive

See https://chromium-review.googlesource.com/c/386306/ for an example of
where changing our django queries to be case insensitive brings down the
query execution time a lot.

This CL changes some more of these queries to be faster.

TEST=Locally test that each of the DB query goes from being a BINARY
     match to a text match

Change-Id: I27bffb7ab2206725eed08db74d3f0d99a8b374fe
Reviewed-on: https://chromium-review.googlesource.com/470286
Commit-Ready: Prathmesh Prabhu <pprabhu@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
diff --git a/contrib/always_failing_tests.py b/contrib/always_failing_tests.py
index 9720842..32981a1 100755
--- a/contrib/always_failing_tests.py
+++ b/contrib/always_failing_tests.py
@@ -47,10 +47,10 @@
     tests = tko_models.Test.objects.select_related('job'
-            ).exclude(test__contains='/'
-            ).exclude(test__contains='_JOB'
+            ).exclude(test__icontains='/'
+            ).exclude(test__icontains='_JOB'
-            ).exclude(test__contains='try_new_image')
+            ).exclude(test__icontains='try_new_image')
     tests = list(tests)
     # These prints are vague profiling work.  We're handling a lot of data, so I
     # had to dump some decent work into making sure things chug along at a
diff --git a/frontend/afe/rpc_interface.py b/frontend/afe/rpc_interface.py
index 2ea3d65..aa575b6 100644
--- a/frontend/afe/rpc_interface.py
+++ b/frontend/afe/rpc_interface.py
@@ -576,14 +576,15 @@
     """Gets the counts of all passed and failed tests from the matching jobs.
     @param job_name_prefix: Name prefix of the jobs to get the summary
-           from, e.g., 'butterfly-release/R40-6457.21.0/bvt-cq/'.
+           from, e.g., 'butterfly-release/r40-6457.21.0/bvt-cq/'. Prefix
+           matching is case insensitive.
     @param label_name: Label that must be set in the jobs, e.g.,
     @returns A summary of the counts of all the passed and failed tests.
     job_ids = list(models.Job.objects.filter(
-            name__startswith=job_name_prefix,
+            name__istartswith=job_name_prefix,
                 'pk', flat=True))
     summary = {'passed': 0, 'failed': 0}
diff --git a/site_utils/abort_suite.py b/site_utils/abort_suite.py
index 63c4de9..c461463 100755
--- a/site_utils/abort_suite.py
+++ b/site_utils/abort_suite.py
@@ -60,11 +60,12 @@
     by autotest scheduler.
     @param afe: An instance of frontend.AFE to make RPCs with.
-    @param substring: A string used to search for the jobs.
+    @param substring: A string used to search for the jobs (case insensitive
+            matching).
     hqe_info = afe.run('abort_host_queue_entries',
-            job__name__contains=substring, job__owner=getpass.getuser(),
+            job__name__icontains=substring, job__owner=getpass.getuser(),
     if hqe_info:
         logging.info('The following suites have been aborted:\n%s', hqe_info)