[autotest] All suites now specify version_prefix.

The Reimager is how we know what version prefix to use.  We now have the
suite specify the version prefix to use, so that we don't rely on the
reimager.  This then gets threaded into the suite_dependencies so that
it gets attached onto all tests before we go to schedule them.

devserver_url was also threaded through in a couple suite control files
that were missing it.

BUG=chromium:250879, chromium:250586
TEST=Made trybot build trybot-lumpy-paladin/R31-4602.0.0-b1134 with
control file changes.  Ran a suite locally and verified suites are still
scheduled as expected.  (And double DEPENDENCIES are de-deuplicated.)

Change-Id: I00e06108dd5621086802bf7a7d447327d1f2ca72
Reviewed-on: https://chromium-review.googlesource.com/66605
Tested-by: Alexander Miller <milleral@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Alexander Miller <milleral@chromium.org>
diff --git a/server/cros/dynamic_suite/dynamic_suite.py b/server/cros/dynamic_suite/dynamic_suite.py
index 6da6799..1e1e8dd 100644
--- a/server/cros/dynamic_suite/dynamic_suite.py
+++ b/server/cros/dynamic_suite/dynamic_suite.py
@@ -9,6 +9,7 @@
 from autotest_lib.client.common_lib import base_job
 from autotest_lib.client.common_lib import error, utils
 from autotest_lib.client.common_lib.cros import dev_server
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import constants
 from autotest_lib.server.cros.dynamic_suite import frontend_wrappers
 from autotest_lib.server.cros.dynamic_suite import job_status
@@ -325,8 +326,7 @@
                  file_experimental_bugs=False, max_runtime_mins=24*60,
                  firmware_reimage=False,
                  try_job_timeout_mins=DEFAULT_TRY_JOB_TIMEOUT_MINS,
-                 suite_dependencies=[],
-                 reimage_type=constants.REIMAGE_TYPE_OS,
+                 suite_dependencies=[], version_prefix=None,
                  bug_template={}, devserver_url=None, **dargs):
         """
         Vets arguments for reimage_and_run() and populates self with supplied
@@ -357,10 +357,12 @@
                                        Default: False
         @param max_runtime_mins: Max runtime in mins for each of the sub-jobs
                                  this suite will run.
-        @param firmware_reimage: True if we should use the FwReimager,
-                                 False if we should use OsReimager.
+        @param firmware_reimage: True if we should use FW_VERSION_PREFIX as
+                                 the version_prefix.
+                                 False if we should use CROS_VERSION_PREFIX as
+                                 the version_prefix.
                                  (This flag has now been deprecated in favor of
-                                  reimage_type.)
+                                  version_prefix.)
         @param try_job_timeout_mins: Max time in mins we allow a try job to run
                                      before timing out.
         @param suite_dependencies: A list of strings of suite level
@@ -369,11 +371,11 @@
                                    set of dependencies at job creation time.
                                    A string of comma seperated labels is
                                    accepted for backwards compatibility.
-        @param reimage_type: A string identifying the type of reimaging that
-                             should be done before running tests.
         @param bug_template: A template dictionary specifying the default bug
                              filing options for failures in this suite.
         @param devserver_url: url to the selected devserver.
+        @param version_prefix: A version prefix from provision.py that the
+                               tests should be scheduled with.
         @param **dargs: these arguments will be ignored.  This allows us to
                         deprecate and remove arguments in ToT while not
                         breaking branch builds.
@@ -409,13 +411,13 @@
         self.max_runtime_mins = max_runtime_mins
         self.firmware_reimage = firmware_reimage
         self.try_job_timeout_mins = try_job_timeout_mins
-        self.reimage_type = reimage_type
         if isinstance(suite_dependencies, str):
             self.suite_dependencies = [dep.strip(' ') for dep
                                        in suite_dependencies.split(',')]
         else:
             self.suite_dependencies = suite_dependencies
         self.bug_template = bug_template
+        self.version_prefix = version_prefix
 
 
 def skip_reimage(g):
@@ -461,10 +463,6 @@
                                level dependencies, which act just like test
                                dependencies and are appended to each test's
                                set of dependencies at job creation time.
-    @param reimage_type: A string indicating what type of reimaging that the
-                         suite wishes to have done to the machines it will
-                         run on. Valid arguments are given as constants in this
-                         file.
     @param devserver_url: url to the selected devserver.
     @raises AsynchronousBuildFailure: if there was an issue finishing staging
                                       from the devserver.
@@ -474,23 +472,29 @@
     suite_spec = SuiteSpec(**dargs)
 
     # Horrible hacks to handle backwards compatibility, overall goal here is
-    #   reimage_firmware == True -> Firmware
-    #   reimage_firmware == False AND reimage_type == None -> OS
-    #   reimage_firmware == False AND reimage_type != None -> reimage_type
-    # and once we've set reimage_type right, ignore that reimage_firmware
+    # reimage_firmware == True -> Firmware
+    # reimage_firmware == False AND version_prefix == None -> OS
+    # reimage_firmware == False AND version_prefix != None -> version_prefix
+    # and once we've set version_prefix right, ignore that reimage_firmware
     # has ever existed...
-    # Remove all this code and reimage_firmware once R26 falls off stable.
+    # Remove all this code and reimage_firmware once R31 falls off stable.
     if suite_spec.firmware_reimage:
-        suite_spec.reimage_type = constants.REIMAGE_TYPE_FIRMWARE
+        suite_spec.version_prefix = provision.FW_VERSION_PREFIX
         logging.warning("reimage_and_run |firmware_reimage=True| argument "
-                "has been deprecated. Please use |reimage_type='firmware'| "
-                "instead.")
-    elif suite_spec.reimage_type is None:
-        suite_spec.reimage_type = constants.REIMAGE_TYPE_OS
+                "has been deprecated. Please use "
+                "|version_prefix=provision.FW_VERSION_PREFIX| instead.")
+    elif not suite_spec.version_prefix:
+        suite_spec.version_prefix = provision.CROS_VERSION_PREFIX
 
     suite_spec.firmware_reimage = False
     # </backwards_compatibility_hacks>
 
+    # version_prefix+build should make it into each test as a DEPENDENCY.  The
+    # easiest way to do this is to tack it onto the suite_dependencies.
+    if suite_spec.version_prefix:
+        dependency = provision.join(suite_spec.version_prefix, suite_spec.build)
+        suite_spec.suite_dependencies.append(dependency)
+
     suite_spec.dependencies = _gatherAndParseDependencies(suite_spec)
     logging.debug('Full dependency dictionary: %s', suite_spec.dependencies)
 
@@ -498,11 +502,13 @@
                                         user=suite_spec.job.user, debug=False)
     tko = frontend_wrappers.RetryingTKO(timeout_min=30, delay_sec=10,
                                         user=suite_spec.job.user, debug=False)
-    try:
-        reimager_class = reimager.reimager_for(suite_spec.reimage_type)
-    except KeyError:
-        raise error.UnknownReimageType("%s not recognized reimage_type" %
-                                       suite_spec.reimage_type)
+
+    # Temporary uglyness until all of reimager.py is removed.
+    if suite_spec.version_prefix == provision.FW_VERSION_PREFIX:
+        reimage_type = constants.REIMAGE_TYPE_FIRMWARE
+    else:
+        reimage_type = constants.REIMAGE_TYPE_OS
+    reimager_class = reimager.reimager_for(reimage_type)
 
     imager = reimager_class(suite_spec.job.autodir, suite_spec.board, afe,
                             tko, results_dir=suite_spec.job.resultdir)
diff --git a/server/cros/provision.py b/server/cros/provision.py
index ec33b4a..a09a9d6 100644
--- a/server/cros/provision.py
+++ b/server/cros/provision.py
@@ -117,10 +117,24 @@
     return configurations
 
 
-# This has been copied out of dynamic_suite's reimager.py, which will be killed
-# off in a future CL.  I'd prefer if this would go away by doing
-# http://crbug.com/249424, so that labels are just automatically made when we
-# try to add them to a host.
+def join(provision_type, provision_value):
+    """
+    Combine the provision type and value into the label name.
+
+    @param provision_type: One of the constants that are the label prefixes.
+    @param provision_value: A string of the value for this provision type.
+    @returns: A string that is the label name for this (type, value) pair.
+
+    >>> join(CROS_VERSION_PREFIX, 'lumpy-release/R27-3773.0.0')
+    'cros-version:lumpy-release/R27-3773.0.0'
+
+    """
+    return '%s:%s' % (provision_type, provision_value)
+
+
+# This has been copied out of dynamic_suite's reimager.py, which no longer
+# exists.  I'd prefer if this would go away by doing http://crbug.com/249424,
+# so that labels are just automatically made when we try to add them to a host.
 def ensure_label_exists(name):
     """
     Ensure that a label called |name| exists in the autotest DB.
diff --git a/test_suites/control.PGO_record b/test_suites/control.PGO_record
index 903b967..bd67c14 100644
--- a/test_suites/control.PGO_record
+++ b/test_suites/control.PGO_record
@@ -30,6 +30,7 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 
@@ -51,4 +52,4 @@
     build=build, board=board, name='PGO_record', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=True, skip_reimage=False, bug_template=_BUG_TEMPLATE,
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.au b/test_suites/control.au
index 30d672a..249f922 100644
--- a/test_suites/control.au
+++ b/test_suites/control.au
@@ -31,6 +31,7 @@
 
 import common
 from autotest_lib.client.common_lib.cros import dev_server
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 # Needs to be done to generate the control files for the suite.
@@ -43,4 +44,5 @@
     build=build, board=board, name='au', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=False,
-    max_runtime_mins=60, devserver_url=devserver_url)
+    max_runtime_mins=60, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.audio b/test_suites/control.audio
index 15d7e11..dbab7d8 100644
--- a/test_suites/control.audio
+++ b/test_suites/control.audio
@@ -25,10 +25,12 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='audio', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    max_runtime_mins=60, devserver_url=devserver_url)
+    max_runtime_mins=60, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.bluetooth b/test_suites/control.bluetooth
index d9ef915..ce64948 100644
--- a/test_suites/control.bluetooth
+++ b/test_suites/control.bluetooth
@@ -19,10 +19,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
-        build=build, board=board, name='bluetooth', job=job, pool=pool,
-        check_hosts=check_hosts, add_experimental=True, num=num,
-        file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-        devserver_url=devserver_url)
+    build=build, board=board, name='bluetooth', job=job, pool=pool,
+    check_hosts=check_hosts, add_experimental=True, num=num,
+    file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.bluetooth_qualification b/test_suites/control.bluetooth_qualification
index 9889410..7a25cf3 100644
--- a/test_suites/control.bluetooth_qualification
+++ b/test_suites/control.bluetooth_qualification
@@ -18,10 +18,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
-        build=build, board=board, name='bluetooth_qualification', job=job,
-        pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
-        file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-        devserver_url=devserver_url)
+    build=build, board=board, name='bluetooth_qualification', job=job,
+    pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
+    file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.bluetooth_sanity b/test_suites/control.bluetooth_sanity
index cd9ee15..15f6b18 100644
--- a/test_suites/control.bluetooth_sanity
+++ b/test_suites/control.bluetooth_sanity
@@ -19,10 +19,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
-        build=build, board=board, name='bluetooth_sanity', job=job, pool=pool,
-        check_hosts=check_hosts, add_experimental=True, num=num,
-        file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-        devserver_url=devserver_url)
+    build=build, board=board, name='bluetooth_sanity', job=job, pool=pool,
+    check_hosts=check_hosts, add_experimental=True, num=num,
+    file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.browsertests b/test_suites/control.browsertests
index 94b3eb4..1d241f8 100644
--- a/test_suites/control.browsertests
+++ b/test_suites/control.browsertests
@@ -27,10 +27,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='browsertests', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.bvt b/test_suites/control.bvt
index e28bdc1..e531a0f 100644
--- a/test_suites/control.bvt
+++ b/test_suites/control.bvt
@@ -39,6 +39,7 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 
@@ -58,4 +59,5 @@
     build=build, board=board, name='bvt', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    max_runtime_mins=20, bug_template=_BUG_TEMPLATE, devserver_url=devserver_url)
+    max_runtime_mins=20, bug_template=_BUG_TEMPLATE,
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.dummy b/test_suites/control.dummy
index 5b4beca..29439d9 100644
--- a/test_suites/control.dummy
+++ b/test_suites/control.dummy
@@ -18,10 +18,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='dummy', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.dummyflake b/test_suites/control.dummyflake
index 98673c8..faa0195 100644
--- a/test_suites/control.dummyflake
+++ b/test_suites/control.dummyflake
@@ -25,10 +25,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='dummyflake', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.enterprise b/test_suites/control.enterprise
index 650c012..0ef3f7a 100644
--- a/test_suites/control.enterprise
+++ b/test_suites/control.enterprise
@@ -25,10 +25,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='enterprise', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.enterprise_enroll b/test_suites/control.enterprise_enroll
index 99de171..1a41751 100644
--- a/test_suites/control.enterprise_enroll
+++ b/test_suites/control.enterprise_enroll
@@ -22,10 +22,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='enterprise_enroll', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.faft_dev b/test_suites/control.faft_dev
index 7e16234..cf9da9e 100644
--- a/test_suites/control.faft_dev
+++ b/test_suites/control.faft_dev
@@ -32,10 +32,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='faft_dev', job=job,
     pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    firmware_reimage=True, devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.FW_VERSION_PREFIX)
diff --git a/test_suites/control.faft_ec b/test_suites/control.faft_ec
index 9dd9fae..c13d92d 100644
--- a/test_suites/control.faft_ec
+++ b/test_suites/control.faft_ec
@@ -31,6 +31,7 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 # Values specified in this bug template will override default values when
@@ -49,4 +50,5 @@
     build=build, board=board, name='faft_ec', job=job,
     pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=True, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url)
+    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.faft_lab b/test_suites/control.faft_lab
index eac5d58..82edc31 100644
--- a/test_suites/control.faft_lab
+++ b/test_suites/control.faft_lab
@@ -22,6 +22,7 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 
@@ -42,4 +43,5 @@
     build=build, board=board, name='faft_lab', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=True, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url)
+    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.faft_normal b/test_suites/control.faft_normal
index 6bd9c7f..9c89c05 100644
--- a/test_suites/control.faft_normal
+++ b/test_suites/control.faft_normal
@@ -33,6 +33,7 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 # Values specified in this bug template will override default values when
@@ -51,4 +52,5 @@
     build=build, board=board, name='faft_normal', job=job,
     pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=True, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url)
+    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.gpu_hang b/test_suites/control.gpu_hang
index 64cd850..9e78f71 100644
--- a/test_suites/control.gpu_hang
+++ b/test_suites/control.gpu_hang
@@ -27,6 +27,7 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 
@@ -34,4 +35,5 @@
     build=build, board=board, name='gpu_hang', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    max_runtime_mins=60, devserver_url=devserver_url)
+    max_runtime_mins=60, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.graphics b/test_suites/control.graphics
index 3a630f8..a95a6a6 100644
--- a/test_suites/control.graphics
+++ b/test_suites/control.graphics
@@ -37,10 +37,12 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='graphics', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    max_runtime_mins=180, devserver_url=devserver_url)
+    max_runtime_mins=180, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.graphicsGLES b/test_suites/control.graphicsGLES
index ba7298e..a63127f 100644
--- a/test_suites/control.graphicsGLES
+++ b/test_suites/control.graphicsGLES
@@ -33,10 +33,12 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='graphicsGLES', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    max_runtime_mins=180, devserver_url=devserver_url)
+    max_runtime_mins=180, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.graphics_per-build b/test_suites/control.graphics_per-build
index 311e33d..52c79f8 100644
--- a/test_suites/control.graphics_per-build
+++ b/test_suites/control.graphics_per-build
@@ -32,10 +32,12 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='graphics_per-build', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    max_runtime_mins=60, devserver_url=devserver_url)
+    max_runtime_mins=60, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.hwqual b/test_suites/control.hwqual
index dd1165d..388ca46 100644
--- a/test_suites/control.hwqual
+++ b/test_suites/control.hwqual
@@ -22,10 +22,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='hwqual', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.kernel_daily_benchmarks b/test_suites/control.kernel_daily_benchmarks
index 1a438ff..257eb7f 100644
--- a/test_suites/control.kernel_daily_benchmarks
+++ b/test_suites/control.kernel_daily_benchmarks
@@ -26,10 +26,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='kernel_daily_benchmarks', job=job,
     pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.kernel_daily_regression b/test_suites/control.kernel_daily_regression
index 40270a7..f2544e0 100644
--- a/test_suites/control.kernel_daily_regression
+++ b/test_suites/control.kernel_daily_regression
@@ -26,10 +26,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='kernel_daily_regression', job=job,
     pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.kernel_per-build_benchmarks b/test_suites/control.kernel_per-build_benchmarks
index 191713a..a4fa932 100644
--- a/test_suites/control.kernel_per-build_benchmarks
+++ b/test_suites/control.kernel_per-build_benchmarks
@@ -29,10 +29,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='kernel_per-build_benchmarks', job=job,
     pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.kernel_per-build_regression b/test_suites/control.kernel_per-build_regression
index 9f41920..9c90520 100644
--- a/test_suites/control.kernel_per-build_regression
+++ b/test_suites/control.kernel_per-build_regression
@@ -31,10 +31,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='kernel_per-build_regression', job=job,
     pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.kernel_weekly_regression b/test_suites/control.kernel_weekly_regression
index ce247a5..271460a 100644
--- a/test_suites/control.kernel_weekly_regression
+++ b/test_suites/control.kernel_weekly_regression
@@ -27,10 +27,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='kernel_weekly_regression', job=job,
     pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.link_perf b/test_suites/control.link_perf
index 8805c47..2bc885d 100644
--- a/test_suites/control.link_perf
+++ b/test_suites/control.link_perf
@@ -14,10 +14,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='link_perf', job=job, pool=pool, num=num,
     add_experimental=True, file_bugs=file_bugs,
     skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.network3g b/test_suites/control.network3g
index 716b999..96df131 100644
--- a/test_suites/control.network3g
+++ b/test_suites/control.network3g
@@ -21,6 +21,7 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 # Values specified in this bug template will override default values when
@@ -45,4 +46,5 @@
     build=build, board=board, name='network3g', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url)
+    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.network3g_gobi b/test_suites/control.network3g_gobi
index 6f19e6e..e24af59 100644
--- a/test_suites/control.network3g_gobi
+++ b/test_suites/control.network3g_gobi
@@ -21,6 +21,7 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 # Values specified in this bug template will override default values when
@@ -45,4 +46,5 @@
     build=build, board=board, name='network3g_gobi', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url)
+    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.network3g_pseudomodem b/test_suites/control.network3g_pseudomodem
index 9715618..db59527 100644
--- a/test_suites/control.network3g_pseudomodem
+++ b/test_suites/control.network3g_pseudomodem
@@ -26,6 +26,7 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 # Values specified in this bug template will override default values when
@@ -48,4 +49,5 @@
     build=build, board=board, name='network3g_pseudomodem', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=True, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url)
+    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.network3g_tmobile b/test_suites/control.network3g_tmobile
index 211e28a..7ca270e 100644
--- a/test_suites/control.network3g_tmobile
+++ b/test_suites/control.network3g_tmobile
@@ -21,6 +21,7 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 # Values specified in this bug template will override default values when
@@ -45,5 +46,6 @@
     build=build, board=board, name='network3g_tmobile', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    suite_dependencies='carrier:tmobile', bug_template=_BUG_TEMPLATE,
-    devserver_url=devserver_url)
+    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
+    suite_dependencies='carrier:tmobile',
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.network3g_verizon b/test_suites/control.network3g_verizon
index 51212a6..e89af24 100644
--- a/test_suites/control.network3g_verizon
+++ b/test_suites/control.network3g_verizon
@@ -21,6 +21,7 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 # Values specified in this bug template will override default values when
@@ -45,5 +46,6 @@
     build=build, board=board, name='network3g_verizon', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    suite_dependencies='carrier:verizon', bug_template=_BUG_TEMPLATE,
-    devserver_url=devserver_url)
+    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
+    suite_dependencies='carrier:verizon',
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.network_nightly b/test_suites/control.network_nightly
index aa9d556..da0603a 100644
--- a/test_suites/control.network_nightly
+++ b/test_suites/control.network_nightly
@@ -28,10 +28,12 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name=NAME, job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    max_runtime_mins=20, devserver_url=devserver_url)
+    max_runtime_mins=20, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.network_ui b/test_suites/control.network_ui
index 7e3237c..1c0502c 100644
--- a/test_suites/control.network_ui
+++ b/test_suites/control.network_ui
@@ -27,6 +27,7 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 # Values specified in this bug template will override default values when
@@ -46,4 +47,5 @@
     build=build, board=board, name='network_ui', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=True, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url)
+    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.network_wifi b/test_suites/control.network_wifi
index 6f776fe..34a4cc3 100644
--- a/test_suites/control.network_wifi
+++ b/test_suites/control.network_wifi
@@ -27,10 +27,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='network_wifi', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.onccell b/test_suites/control.onccell
index 53cf65c..55d2e2d 100644
--- a/test_suites/control.onccell
+++ b/test_suites/control.onccell
@@ -22,10 +22,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='onccell', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.pagecycler b/test_suites/control.pagecycler
index ffd96b0..7a26739 100644
--- a/test_suites/control.pagecycler
+++ b/test_suites/control.pagecycler
@@ -25,10 +25,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='pagecycler', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.paygen_au_beta b/test_suites/control.paygen_au_beta
index adfc902..481e1c6 100644
--- a/test_suites/control.paygen_au_beta
+++ b/test_suites/control.paygen_au_beta
@@ -35,6 +35,7 @@
 
 import common
 from autotest_lib.client.common_lib.cros import dev_server
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 # Needs to be done to generate the control files for the suite.
@@ -47,4 +48,5 @@
     build=build, board=board, name='paygen_au', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=False,
-    max_runtime_mins=60, devserver_url=devserver_url)
+    max_runtime_mins=60, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.paygen_au_canary b/test_suites/control.paygen_au_canary
index 87da9cc..16652c0 100644
--- a/test_suites/control.paygen_au_canary
+++ b/test_suites/control.paygen_au_canary
@@ -35,6 +35,7 @@
 
 import common
 from autotest_lib.client.common_lib.cros import dev_server
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 # Needs to be done to generate the control files for the suite.
@@ -47,4 +48,5 @@
     build=build, board=board, name='paygen_au', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=False,
-    max_runtime_mins=60, devserver_url=devserver_url)
+    max_runtime_mins=60, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.paygen_au_dev b/test_suites/control.paygen_au_dev
index 0aaadd8..57015fe 100644
--- a/test_suites/control.paygen_au_dev
+++ b/test_suites/control.paygen_au_dev
@@ -35,6 +35,7 @@
 
 import common
 from autotest_lib.client.common_lib.cros import dev_server
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 # Needs to be done to generate the control files for the suite.
@@ -47,4 +48,5 @@
     build=build, board=board, name='paygen_au', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=False,
-    max_runtime_mins=60, devserver_url=devserver_url)
+    max_runtime_mins=60, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.paygen_au_stable b/test_suites/control.paygen_au_stable
index d4dbc12..e77dc8d 100644
--- a/test_suites/control.paygen_au_stable
+++ b/test_suites/control.paygen_au_stable
@@ -35,6 +35,7 @@
 
 import common
 from autotest_lib.client.common_lib.cros import dev_server
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 # Needs to be done to generate the control files for the suite.
@@ -47,4 +48,5 @@
     build=build, board=board, name='paygen_au', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=False,
-    max_runtime_mins=60, devserver_url=devserver_url)
+    max_runtime_mins=60, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.perf_v2 b/test_suites/control.perf_v2
index d4dd934..a84baa8 100644
--- a/test_suites/control.perf_v2
+++ b/test_suites/control.perf_v2
@@ -25,6 +25,7 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 
@@ -45,4 +46,5 @@
     build=build, board=board, name='perf_v2', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=False, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url)
+    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.perfalerts b/test_suites/control.perfalerts
index f889f9c..7660232 100644
--- a/test_suites/control.perfalerts
+++ b/test_suites/control.perfalerts
@@ -27,10 +27,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='perfalerts', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.power_build b/test_suites/control.power_build
index 05aae67..b6c14ac 100644
--- a/test_suites/control.power_build
+++ b/test_suites/control.power_build
@@ -22,10 +22,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='power_build', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.power_daily b/test_suites/control.power_daily
index 4db6d06..244f205 100644
--- a/test_suites/control.power_daily
+++ b/test_suites/control.power_daily
@@ -22,10 +22,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='power_daily', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.power_requirements b/test_suites/control.power_requirements
index 8dd7efc..aef6520 100644
--- a/test_suites/control.power_requirements
+++ b/test_suites/control.power_requirements
@@ -23,10 +23,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='power_requirements', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.pyauto b/test_suites/control.pyauto
index 185a8ad..b61a34e 100644
--- a/test_suites/control.pyauto
+++ b/test_suites/control.pyauto
@@ -25,10 +25,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='pyauto', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.pyauto_basic b/test_suites/control.pyauto_basic
index c957388..3a5d48e 100644
--- a/test_suites/control.pyauto_basic
+++ b/test_suites/control.pyauto_basic
@@ -25,10 +25,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='pyauto_basic', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.pyauto_perf b/test_suites/control.pyauto_perf
index c58806c..36124b0 100644
--- a/test_suites/control.pyauto_perf
+++ b/test_suites/control.pyauto_perf
@@ -25,10 +25,12 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='pyauto_perf', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    max_runtime_mins=360, devserver_url=devserver_url)
+    max_runtime_mins=360, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.regression b/test_suites/control.regression
index 717bc77..29fb0c4 100644
--- a/test_suites/control.regression
+++ b/test_suites/control.regression
@@ -26,10 +26,12 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='regression', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    max_runtime_mins=120, devserver_url=devserver_url)
+    max_runtime_mins=120, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.security b/test_suites/control.security
index c4860e7..b3e4686 100644
--- a/test_suites/control.security
+++ b/test_suites/control.security
@@ -28,10 +28,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='security', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.security_weekly b/test_suites/control.security_weekly
index 5d2b4fe..3c03e92 100644
--- a/test_suites/control.security_weekly
+++ b/test_suites/control.security_weekly
@@ -27,10 +27,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='security_weekly', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.servo b/test_suites/control.servo
index fbf2c7c..dadf33c 100644
--- a/test_suites/control.servo
+++ b/test_suites/control.servo
@@ -18,10 +18,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='servo', job=job, pool=pool, num=num,
     add_experimental=True, file_bugs=file_bugs,
     skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.smoke b/test_suites/control.smoke
index f94302a..c3ae6cf 100644
--- a/test_suites/control.smoke
+++ b/test_suites/control.smoke
@@ -26,10 +26,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='smoke', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.sync b/test_suites/control.sync
index 8fae350..0d81225 100644
--- a/test_suites/control.sync
+++ b/test_suites/control.sync
@@ -25,10 +25,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='sync', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.telemetry_unit b/test_suites/control.telemetry_unit
index ad04aff..9f860d9 100644
--- a/test_suites/control.telemetry_unit
+++ b/test_suites/control.telemetry_unit
@@ -25,10 +25,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='telemetry_unit', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    devserver_url=devserver_url)
+    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.vda b/test_suites/control.vda
index fcf44a3..bcb13a5 100644
--- a/test_suites/control.vda
+++ b/test_suites/control.vda
@@ -29,10 +29,12 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='vda', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    max_runtime_mins=60, devserver_url=devserver_url)
+    max_runtime_mins=60, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.video b/test_suites/control.video
index 0884ee0..a3387a7 100644
--- a/test_suites/control.video
+++ b/test_suites/control.video
@@ -25,10 +25,12 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='video', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    max_runtime_mins=240, devserver_url=devserver_url)
+    max_runtime_mins=240, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.video_weekly_regression b/test_suites/control.video_weekly_regression
index 356f548..81525ff 100644
--- a/test_suites/control.video_weekly_regression
+++ b/test_suites/control.video_weekly_regression
@@ -27,10 +27,12 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='video_weekly_regression', job=job,
     pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    max_runtime_mins=240, devserver_url=devserver_url)
+    max_runtime_mins=240, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.webrtc b/test_suites/control.webrtc
index c509c28..fd2a580 100644
--- a/test_suites/control.webrtc
+++ b/test_suites/control.webrtc
@@ -22,6 +22,7 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 
@@ -42,4 +43,5 @@
     build=build, board=board, name='webrtc', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=True, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url)
+    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.wifi_flaky b/test_suites/control.wifi_flaky
index 1e90948..9debf44 100644
--- a/test_suites/control.wifi_flaky
+++ b/test_suites/control.wifi_flaky
@@ -19,10 +19,12 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name=NAME, job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    max_runtime_mins=60)
+    max_runtime_mins=60, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.wifi_matfunc b/test_suites/control.wifi_matfunc
index e7f9e84..654db4a 100644
--- a/test_suites/control.wifi_matfunc
+++ b/test_suites/control.wifi_matfunc
@@ -27,10 +27,12 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name=NAME, job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    max_runtime_mins=60, devserver_url=devserver_url)
+    max_runtime_mins=60, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.wifichaos b/test_suites/control.wifichaos
index 3bd01c2..bd98de6 100644
--- a/test_suites/control.wifichaos
+++ b/test_suites/control.wifichaos
@@ -22,9 +22,11 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='wifichaos', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, devserver_url=devserver_url)
+    file_bugs=file_bugs, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.wifirvr b/test_suites/control.wifirvr
index 0445cd6..b864f3c 100644
--- a/test_suites/control.wifirvr
+++ b/test_suites/control.wifirvr
@@ -27,10 +27,12 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name=NAME, job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=True, max_runtime_mins=60,
-    devserver_url=devserver_url)
+    devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.youtube_mse_eme b/test_suites/control.youtube_mse_eme
index 2f6e030..ce6220e 100644
--- a/test_suites/control.youtube_mse_eme
+++ b/test_suites/control.youtube_mse_eme
@@ -27,10 +27,12 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
-        build=build, board=board, name=NAME, job=job, pool=pool,
-        check_hosts=check_hosts, add_experimental=True, num=num,
-        file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-        max_runtime_mins=60)
+    build=build, board=board, name=NAME, job=job, pool=pool,
+    check_hosts=check_hosts, add_experimental=True, num=num,
+    file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
+    max_runtime_mins=60, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)
diff --git a/test_suites/control.youtube_page b/test_suites/control.youtube_page
index 1c2a854..4539efe 100644
--- a/test_suites/control.youtube_page
+++ b/test_suites/control.youtube_page
@@ -27,10 +27,12 @@
 """
 
 import common
+from autotest_lib.server.cros import provision
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 dynamic_suite.reimage_and_run(
     build=build, board=board, name='youtube_page', job=job, pool=pool,
     check_hosts=check_hosts, add_experimental=True, num=num,
     file_bugs=file_bugs, skip_reimage=dynamic_suite.skip_reimage(globals()),
-    max_runtime_mins=60)
+    max_runtime_mins=60, devserver_url=devserver_url,
+    version_prefix=provision.CROS_VERSION_PREFIX)