[autotest] Convert all the suite control files to use an argument dictionary

Currently we manually pass individual variables into the reimage_and_run method
of the suite control file to launch suite. It is not scalable. If we want to
add new variable to the reimage_and_run, we need to manually add into every
suite control file.

Now convert all the suite control files to use arg_dict, an argument dictionary
inserted into the control file by site_rpc_interface.py, for the reimage_and_run
method. It will be more scalable.

BUG=chromium:492910
TEST=Pass dummy suite on moblab with the image built from this CL

Change-Id: I0f1aec42687dd6eeaa0081c3d98e931a90477c75
Reviewed-on: https://chromium-review.googlesource.com/273625
Tested-by: Shuqian Zhao <shuqianz@chromium.org>
Trybot-Ready: Shuqian Zhao <shuqianz@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Shuqian Zhao <shuqianz@chromium.org>
diff --git a/test_suites/control.AFDO_record b/test_suites/control.AFDO_record
index 15e6c1a..9484e4c 100644
--- a/test_suites/control.AFDO_record
+++ b/test_suites/control.AFDO_record
@@ -50,11 +50,11 @@
     'cc': ['bjanakiraman@chromium.org']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='AFDO_record', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=True, bug_template=_BUG_TEMPLATE, priority=priority,
-    devserver_url=devserver_url, timeout_mins=timeout_mins,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['job'] = job
+args_dict['file_bugs'] = True
+args_dict['name'] = 'AFDO_record'
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.au b/test_suites/control.au
index 99e299d..a8e8486 100644
--- a/test_suites/control.au
+++ b/test_suites/control.au
@@ -52,12 +52,11 @@
 
 # TODO(sosa): Really should skip_reimage but suite logic does not currently
 # work without reimaging.
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='au', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, bug_template=_BUG_TEMPLATE,
-    devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['max_runtime_mins'] = 60
+args_dict['name'] = 'au'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.audio b/test_suites/control.audio
index 6aa60c2..93f2985 100644
--- a/test_suites/control.audio
+++ b/test_suites/control.audio
@@ -28,11 +28,10 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['name'] = 'audio'
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 60
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.bluetooth b/test_suites/control.bluetooth
index e86eafb..9a4b152 100644
--- a/test_suites/control.bluetooth
+++ b/test_suites/control.bluetooth
@@ -22,10 +22,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['name'] = 'bluetooth'
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.bluetooth_qualification b/test_suites/control.bluetooth_qualification
index e8d8ee1..09b9672 100644
--- a/test_suites/control.bluetooth_qualification
+++ b/test_suites/control.bluetooth_qualification
@@ -21,10 +21,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = 'bluetooth_qualification'
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.bluetooth_sanity b/test_suites/control.bluetooth_sanity
index b794664..0dd85dc 100644
--- a/test_suites/control.bluetooth_sanity
+++ b/test_suites/control.bluetooth_sanity
@@ -22,10 +22,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['add_experimental'] = True
+args_dict['name'] = 'bluetooth_sanity'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.bvt-cq b/test_suites/control.bvt-cq
index cbf0c2e..816157a 100644
--- a/test_suites/control.bvt-cq
+++ b/test_suites/control.bvt-cq
@@ -55,11 +55,11 @@
     'ccs': ['chromeos-lab-errors@google.com']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='bvt-cq', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=20, bug_template=_BUG_TEMPLATE,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['max_runtime_mins'] = 20
+args_dict['name'] = 'bvt-cq'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.bvt-inline b/test_suites/control.bvt-inline
index 97f2a51..fb2ea67 100644
--- a/test_suites/control.bvt-inline
+++ b/test_suites/control.bvt-inline
@@ -59,11 +59,11 @@
     'ccs': ['chromeos-lab-errors@google.com']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='bvt-inline', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=20, bug_template=_BUG_TEMPLATE,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['max_runtime_mins'] = 20
+args_dict['name'] = 'bvt-inline'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.bvt-perbuild b/test_suites/control.bvt-perbuild
index 5656675..0dfc13f 100644
--- a/test_suites/control.bvt-perbuild
+++ b/test_suites/control.bvt-perbuild
@@ -52,11 +52,11 @@
     'ccs': ['chromeos-lab-errors@google.com']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='bvt-perbuild', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=20, bug_template=_BUG_TEMPLATE,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['max_runtime_mins'] = 20
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['name'] = 'bvt-perbuild'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.cellular_mbim_compliance b/test_suites/control.cellular_mbim_compliance
index 8897d34..64d06e2 100644
--- a/test_suites/control.cellular_mbim_compliance
+++ b/test_suites/control.cellular_mbim_compliance
@@ -36,12 +36,12 @@
            'rpius@chromium.org', 'thieule@chromium.org']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='cellular_mbim_compliance', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, max_runtime_mins=20, priority=priority,
-    timeout_mins=timeout_mins, bug_template=_BUG_TEMPLATE,
-    devserver_url=devserver_url, suite_dependencies='modem_repair',
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['suite_dependencies'] = 'modem_repair'
+args_dict['max_runtime_mins'] = 20
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['name'] = 'cellular_mbim_compliance'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.cellular_modem_repair b/test_suites/control.cellular_modem_repair
index d261050..9ccd529 100644
--- a/test_suites/control.cellular_modem_repair
+++ b/test_suites/control.cellular_modem_repair
@@ -24,11 +24,10 @@
 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='cellular_modem_repair', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    suite_dependencies='modem_repair',
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['name'] = 'cellular_modem_repair'
+args_dict['add_experimental'] = True
+args_dict['suite_dependencies'] = 'modem_repair'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.chameleon_audio b/test_suites/control.chameleon_audio
index 954f7e4..134bc25 100644
--- a/test_suites/control.chameleon_audio
+++ b/test_suites/control.chameleon_audio
@@ -47,13 +47,12 @@
            'conradlo@chromium.org', 'chromeos-audio-bugs@google.com']
 }
 
-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, priority=priority,
-    suite_dependencies=suite_dependencies, timeout_mins=timeout_mins,
-    max_runtime_mins=240, bug_template=_BUG_TEMPLATE,
-    devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['name'] = NAME
+args_dict['suite_dependencies'] = suite_dependencies
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 240
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.chameleon_dp b/test_suites/control.chameleon_dp
index 3efeac4..97cde84 100644
--- a/test_suites/control.chameleon_dp
+++ b/test_suites/control.chameleon_dp
@@ -43,13 +43,12 @@
            'conradlo@chromium.org']
 }
 
-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, priority=priority,
-    suite_dependencies='chameleon:dp', timeout_mins=timeout_mins,
-    max_runtime_mins=240, bug_template=_BUG_TEMPLATE,
-    devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['name'] = NAME
+args_dict['suite_dependencies'] = 'chameleon:dp'
+args_dict['max_runtime_mins'] = 240
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.chameleon_dp_weekly b/test_suites/control.chameleon_dp_weekly
index dc38cb7..c8b9315 100644
--- a/test_suites/control.chameleon_dp_weekly
+++ b/test_suites/control.chameleon_dp_weekly
@@ -43,13 +43,12 @@
            'conradlo@chromium.org']
 }
 
-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, priority=priority,
-    suite_dependencies='chameleon:dp', timeout_mins=timeout_mins,
-    max_runtime_mins=240, bug_template=_BUG_TEMPLATE,
-    devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['name'] = NAME
+args_dict['suite_dependencies'] = 'chameleon:dp'
+args_dict['max_runtime_mins'] = 240
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.chameleon_hdmi b/test_suites/control.chameleon_hdmi
index 08e6b90..92b1b15 100644
--- a/test_suites/control.chameleon_hdmi
+++ b/test_suites/control.chameleon_hdmi
@@ -43,13 +43,12 @@
            'conradlo@chromium.org']
 }
 
-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, priority=priority,
-    suite_dependencies='chameleon:hdmi', timeout_mins=timeout_mins,
-    max_runtime_mins=240, bug_template=_BUG_TEMPLATE,
-    devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['suite_dependencies'] = 'chameleon:hdmi'
+args_dict['name'] = NAME
+args_dict['max_runtime_mins'] = 240
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.chameleon_hdmi_weekly b/test_suites/control.chameleon_hdmi_weekly
index 089d709..b3b3551 100644
--- a/test_suites/control.chameleon_hdmi_weekly
+++ b/test_suites/control.chameleon_hdmi_weekly
@@ -43,13 +43,12 @@
            'conradlo@chromium.org']
 }
 
-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, priority=priority,
-    suite_dependencies='chameleon:hdmi', timeout_mins=timeout_mins,
-    max_runtime_mins=240, bug_template=_BUG_TEMPLATE,
-    devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['suite_dependencies'] = 'chameleon:hdmi'
+args_dict['name'] = NAME
+args_dict['max_runtime_mins'] = 240
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.chameleon_vga b/test_suites/control.chameleon_vga
index e9caa83..780cf8d 100644
--- a/test_suites/control.chameleon_vga
+++ b/test_suites/control.chameleon_vga
@@ -30,12 +30,11 @@
 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, priority=priority,
-    suite_dependencies='chameleon:vga', timeout_mins=timeout_mins,
-    max_runtime_mins=240, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['suite_dependencies'] = 'chameleon:vga'
+args_dict['name'] = NAME
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 240
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.crosbolt_perf_nightly b/test_suites/control.crosbolt_perf_nightly
index 7688a71..05fc8a2 100644
--- a/test_suites/control.crosbolt_perf_nightly
+++ b/test_suites/control.crosbolt_perf_nightly
@@ -38,11 +38,12 @@
     'ccs': ['lafeenstra@chromium.org']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='crosbolt_perf_nightly', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=False, priority=priority, timeout_mins=480,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['timeout_mins'] = 480
+args_dict['file_bugs'] = False
+args_dict['name'] = 'crosbolt_perf_nightly'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.crosbolt_perf_perbuild b/test_suites/control.crosbolt_perf_perbuild
index ca0d4a8..f9967b4 100644
--- a/test_suites/control.crosbolt_perf_perbuild
+++ b/test_suites/control.crosbolt_perf_perbuild
@@ -38,11 +38,12 @@
     'ccs': ['lafeenstra@chromium.org']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='crosbolt_perf_perbuild', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=False, priority=priority, timeout_mins=480,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['timeout_mins'] = 480
+args_dict['file_bugs'] = False
+args_dict['name'] = 'crosbolt_perf_perbuild'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.dummy b/test_suites/control.dummy
index d627123..5a5d30e 100644
--- a/test_suites/control.dummy
+++ b/test_suites/control.dummy
@@ -21,10 +21,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['add_experimental'] = True
+args_dict['name'] = 'dummy'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.dummy_server b/test_suites/control.dummy_server
index b4b6d88..b878181 100644
--- a/test_suites/control.dummy_server
+++ b/test_suites/control.dummy_server
@@ -21,10 +21,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.dummyflake b/test_suites/control.dummyflake
index 2ebe5fb..3d45df9 100644
--- a/test_suites/control.dummyflake
+++ b/test_suites/control.dummyflake
@@ -28,10 +28,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['add_experimental'] = True
+args_dict['name'] = 'dummyflake'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.experimental b/test_suites/control.experimental
index 51f2686..298ff07 100644
--- a/test_suites/control.experimental
+++ b/test_suites/control.experimental
@@ -32,11 +32,9 @@
 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=False, num=num,
-    file_bugs=file_bugs, priority=priority,
-    timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = False
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.faft_bios b/test_suites/control.faft_bios
index 431f84f..2ddec9a 100644
--- a/test_suites/control.faft_bios
+++ b/test_suites/control.faft_bios
@@ -47,11 +47,11 @@
     'ccs': ['faft-lab-auto-bugs@googlegroups.com']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='faft_bios', job=job,
-    pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=False, priority=priority, timeout_mins=timeout_mins,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['file_bugs'] = False
+args_dict['name'] = 'faft_bios'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.faft_dev b/test_suites/control.faft_dev
index 75abf72..b3339df 100644
--- a/test_suites/control.faft_dev
+++ b/test_suites/control.faft_dev
@@ -35,10 +35,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['job'] = job
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = 'faft_dev'
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.faft_ec b/test_suites/control.faft_ec
index 37f31d0..232d4c8 100644
--- a/test_suites/control.faft_ec
+++ b/test_suites/control.faft_ec
@@ -46,11 +46,11 @@
     'ccs': ['faft-lab-auto-bugs@googlegroups.com']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='faft_ec', job=job,
-    pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=False, priority=priority, timeout_mins=timeout_mins,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['file_bugs'] = False
+args_dict['name'] = 'faft_ec'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.faft_lab b/test_suites/control.faft_lab
index b7a0417..6565272 100644
--- a/test_suites/control.faft_lab
+++ b/test_suites/control.faft_lab
@@ -39,11 +39,11 @@
            'beeps@chromium.org']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='faft_lab', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=True, priority=priority, timeout_mins=timeout_mins,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['file_bugs'] = True
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['name'] = 'faft_lab'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.faft_lv1 b/test_suites/control.faft_lv1
index 811ea4b..04afb0f 100644
--- a/test_suites/control.faft_lv1
+++ b/test_suites/control.faft_lv1
@@ -51,11 +51,11 @@
     'ccs': ['faft-lab-auto-bugs@googlegroups.com']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='faft_lv1', job=job,
-    pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=False, priority=priority, timeout_mins=timeout_mins,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['name'] = 'faft_lv1'
+args_dict['file_bugs'] = False
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.faft_lv2 b/test_suites/control.faft_lv2
index a8b0459..e6b9f90 100644
--- a/test_suites/control.faft_lv2
+++ b/test_suites/control.faft_lv2
@@ -51,11 +51,11 @@
     'ccs': ['faft-lab-auto-bugs@googlegroups.com']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='faft_lv2', job=job,
-    pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=False, priority=priority, timeout_mins=timeout_mins,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['file_bugs'] = False
+args_dict['name'] = 'faft_lv2'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.faft_lv3 b/test_suites/control.faft_lv3
index edcf23e..ebde601 100644
--- a/test_suites/control.faft_lv3
+++ b/test_suites/control.faft_lv3
@@ -51,11 +51,11 @@
     'ccs': ['faft-lab-auto-bugs@googlegroups.com']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='faft_lv3', job=job,
-    pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=False, priority=priority, timeout_mins=timeout_mins,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['file_bugs'] = False
+args_dict['name'] = 'faft_lv3'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.faft_lv4 b/test_suites/control.faft_lv4
index f46bd82..99da519 100644
--- a/test_suites/control.faft_lv4
+++ b/test_suites/control.faft_lv4
@@ -51,11 +51,11 @@
     'ccs': ['faft-lab-auto-bugs@googlegroups.com']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='faft_lv4', job=job,
-    pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=False, priority=priority, timeout_mins=timeout_mins,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['file_bugs'] = False
+args_dict['job'] = job
+args_dict['name'] = 'faft_lv4'
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.faft_normal b/test_suites/control.faft_normal
index a54d0d7..7035be9 100644
--- a/test_suites/control.faft_normal
+++ b/test_suites/control.faft_normal
@@ -48,11 +48,11 @@
     'ccs': ['faft-lab-auto-bugs@googlegroups.com']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='faft_normal', job=job,
-    pool=pool, check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=False, priority=priority, timeout_mins=timeout_mins,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['file_bugs'] = False
+args_dict['name'] = 'faft_normal'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.gpu_hang b/test_suites/control.gpu_hang
index c59df07..589b6b5 100644
--- a/test_suites/control.gpu_hang
+++ b/test_suites/control.gpu_hang
@@ -31,11 +31,10 @@
 from autotest_lib.server.cros.dynamic_suite import dynamic_suite
 
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='gpu_hang', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 60
+args_dict['name'] = 'gpu_hang'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.graphics b/test_suites/control.graphics
index 7d25fef..b519205 100644
--- a/test_suites/control.graphics
+++ b/test_suites/control.graphics
@@ -40,11 +40,10 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=240, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['max_runtime_mins'] = 240
+args_dict['add_experimental'] = True
+args_dict['name'] = 'graphics'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.graphics_browser b/test_suites/control.graphics_browser
index 315f6bb..87c6dca 100644
--- a/test_suites/control.graphics_browser
+++ b/test_suites/control.graphics_browser
@@ -30,11 +30,10 @@
 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_browser', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=240, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['max_runtime_mins'] = 240
+args_dict['add_experimental'] = True
+args_dict['name'] = 'graphics_browser'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.graphics_per-build b/test_suites/control.graphics_per-build
index 3328ad6..82ca42e 100644
--- a/test_suites/control.graphics_per-build
+++ b/test_suites/control.graphics_per-build
@@ -31,11 +31,10 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 60
+args_dict['name'] = 'graphics_per-build'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.graphics_per-day b/test_suites/control.graphics_per-day
index 78f3331..97ea513 100644
--- a/test_suites/control.graphics_per-day
+++ b/test_suites/control.graphics_per-day
@@ -30,11 +30,10 @@
 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-day', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=240, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['max_runtime_mins'] = 240
+args_dict['add_experimental'] = True
+args_dict['name'] = 'graphics_per-day'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.graphics_per-week b/test_suites/control.graphics_per-week
index 1c0e5db..027b3ec 100644
--- a/test_suites/control.graphics_per-week
+++ b/test_suites/control.graphics_per-week
@@ -30,11 +30,10 @@
 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-week', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=240, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['max_runtime_mins'] = 240
+args_dict['add_experimental'] = True
+args_dict['name'] = 'graphics_per-week'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.graphics_system b/test_suites/control.graphics_system
index de099af..ba23b7a 100644
--- a/test_suites/control.graphics_system
+++ b/test_suites/control.graphics_system
@@ -31,11 +31,10 @@
 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_system', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=240, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['max_runtime_mins'] = 240
+args_dict['add_experimental'] = True
+args_dict['name'] = 'graphics_system'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.hardware_memoryqual b/test_suites/control.hardware_memoryqual
index 6619b5c..353a66f 100644
--- a/test_suites/control.hardware_memoryqual
+++ b/test_suites/control.hardware_memoryqual
@@ -26,12 +26,10 @@
 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()),
-    devserver_url=devserver_url, timeout_mins=timeout_mins,
-    max_runtime_mins=max_runtime_mins,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['skip_reimage'] = dynamic_suite.skip_reimage(globals())
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.hardware_memoryqual_quick b/test_suites/control.hardware_memoryqual_quick
index 75dd29c..58f2de2 100644
--- a/test_suites/control.hardware_memoryqual_quick
+++ b/test_suites/control.hardware_memoryqual_quick
@@ -27,12 +27,10 @@
 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()),
-    devserver_url=devserver_url, timeout_mins=timeout_mins,
-    max_runtime_mins=max_runtime_mins,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['skip_reimage'] = dynamic_suite.skip_reimage(globals())
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.hardware_storagequal b/test_suites/control.hardware_storagequal
index 21217ac..f7b5b3d 100644
--- a/test_suites/control.hardware_storagequal
+++ b/test_suites/control.hardware_storagequal
@@ -28,12 +28,10 @@
 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()),
-    devserver_url=devserver_url, timeout_mins=timeout_mins,
-    max_runtime_mins=max_runtime_mins,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['skip_reimage'] = dynamic_suite.skip_reimage(globals())
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.hardware_storagequal_quick b/test_suites/control.hardware_storagequal_quick
index 28496fa..75263e4 100644
--- a/test_suites/control.hardware_storagequal_quick
+++ b/test_suites/control.hardware_storagequal_quick
@@ -27,12 +27,10 @@
 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()),
-    devserver_url=devserver_url, timeout_mins=timeout_mins,
-    max_runtime_mins=max_runtime_mins,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['skip_reimage'] = dynamic_suite.skip_reimage(globals())
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.hardware_storagequal_temp b/test_suites/control.hardware_storagequal_temp
index 213f30d..ec957b5 100644
--- a/test_suites/control.hardware_storagequal_temp
+++ b/test_suites/control.hardware_storagequal_temp
@@ -28,12 +28,10 @@
 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()),
-    devserver_url=devserver_url, timeout_mins=timeout_mins,
-    max_runtime_mins=max_runtime_mins,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['skip_reimage'] = dynamic_suite.skip_reimage(globals())
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.hotrod b/test_suites/control.hotrod
index 4fa6d94..303ce25 100644
--- a/test_suites/control.hotrod
+++ b/test_suites/control.hotrod
@@ -33,11 +33,10 @@
            'vidster@chromium.org', 'jennyz@chromium.org']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='hotrod', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['name'] = 'hotrod'
+args_dict['add_experimental'] = True
+args_dict['bug_template'] = _BUG_TEMPLATE
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.hwqual b/test_suites/control.hwqual
index d9a601a..1a6ea9f 100644
--- a/test_suites/control.hwqual
+++ b/test_suites/control.hwqual
@@ -25,10 +25,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = 'hwqual'
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.jailed_build b/test_suites/control.jailed_build
index d272403..cc1d03a 100644
--- a/test_suites/control.jailed_build
+++ b/test_suites/control.jailed_build
@@ -32,11 +32,9 @@
 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, priority=priority,
-    timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.kernel_daily_benchmarks b/test_suites/control.kernel_daily_benchmarks
index c3166c2..caeb4ef 100644
--- a/test_suites/control.kernel_daily_benchmarks
+++ b/test_suites/control.kernel_daily_benchmarks
@@ -37,11 +37,10 @@
     'title': None,
 }
 
-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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    bug_template=_BUG_TEMPLATE, wait_for_results=wait_for_results,
-    job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['name'] = 'kernel_daily_benchmarks'
+args_dict['add_experimental'] = True
+args_dict['bug_template'] = _BUG_TEMPLATE
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.kernel_daily_regression b/test_suites/control.kernel_daily_regression
index be79abc..4f8741a 100644
--- a/test_suites/control.kernel_daily_regression
+++ b/test_suites/control.kernel_daily_regression
@@ -29,10 +29,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['add_experimental'] = True
+args_dict['name'] = 'kernel_daily_regression'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.kernel_per-build_benchmarks b/test_suites/control.kernel_per-build_benchmarks
index e6d8018..4f6a897 100644
--- a/test_suites/control.kernel_per-build_benchmarks
+++ b/test_suites/control.kernel_per-build_benchmarks
@@ -32,10 +32,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['add_experimental'] = True
+args_dict['name'] = 'kernel_per-build_benchmarks'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.kernel_per-build_regression b/test_suites/control.kernel_per-build_regression
index 43a88b6..e6c6fe6 100644
--- a/test_suites/control.kernel_per-build_regression
+++ b/test_suites/control.kernel_per-build_regression
@@ -34,10 +34,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['add_experimental'] = True
+args_dict['name'] = 'kernel_per-build_regression'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.kernel_usb b/test_suites/control.kernel_usb
index d9fd037..8db0489 100644
--- a/test_suites/control.kernel_usb
+++ b/test_suites/control.kernel_usb
@@ -40,10 +40,10 @@
 }
 
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='kernel_usb', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries, bug_template=_BUG_TEMPLATE)
+args_dict['add_experimental'] = True
+args_dict['bug_template'] = _BUG_TEMPLATE
+args_dict['name'] = 'kernel_usb'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.kernel_usb_set1 b/test_suites/control.kernel_usb_set1
index eac16cc..0208ad0 100644
--- a/test_suites/control.kernel_usb_set1
+++ b/test_suites/control.kernel_usb_set1
@@ -43,10 +43,10 @@
 }
 
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='kernel_usb_set1', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries, bug_template=_BUG_TEMPLATE)
+args_dict['add_experimental'] = True
+args_dict['bug_template'] = _BUG_TEMPLATE
+args_dict['name'] = 'kernel_usb_set1'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.kernel_weekly_regression b/test_suites/control.kernel_weekly_regression
index d69ba51..ccab9f9 100644
--- a/test_suites/control.kernel_weekly_regression
+++ b/test_suites/control.kernel_weekly_regression
@@ -30,10 +30,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['add_experimental'] = True
+args_dict['name'] = 'kernel_weekly_regression'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.link_perf b/test_suites/control.link_perf
index c4096e5..f327b31 100644
--- a/test_suites/control.link_perf
+++ b/test_suites/control.link_perf
@@ -17,10 +17,9 @@
 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, priority=priority,
-    devserver_url=devserver_url, timeout_mins=timeout_mins,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['name'] = 'link_perf'
+args_dict['job'] = job
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['add_experimental'] = True
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.moblab b/test_suites/control.moblab
index 89ede33..f2df5ef 100644
--- a/test_suites/control.moblab
+++ b/test_suites/control.moblab
@@ -28,11 +28,9 @@
 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='moblab', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['name'] = 'moblab'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.moblab_quick b/test_suites/control.moblab_quick
index 3cd4a99..a029aa9 100644
--- a/test_suites/control.moblab_quick
+++ b/test_suites/control.moblab_quick
@@ -28,11 +28,9 @@
 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='moblab_quick', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['name'] = 'moblab_quick'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.network3g b/test_suites/control.network3g
index e0dbf42..64f1c93 100644
--- a/test_suites/control.network3g
+++ b/test_suites/control.network3g
@@ -40,12 +40,12 @@
 
 # TODO(benchan): Re-enable automated bug filing for network3g_pseudomodem
 # suite once de-duplication logic works (crbug.com/241510).
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='network3g', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, max_runtime_mins=20, priority=priority,
-    timeout_mins=timeout_mins, suite_dependencies='modem_repair',
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['suite_dependencies'] = 'modem_repair'
+args_dict['max_runtime_mins'] = 20
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['name'] = 'network3g'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.network3g_att b/test_suites/control.network3g_att
index 0913947..971e10d 100644
--- a/test_suites/control.network3g_att
+++ b/test_suites/control.network3g_att
@@ -38,12 +38,12 @@
            'thieule@chromium.org']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='network3g_att', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, max_runtime_mins=20, priority=priority,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    suite_dependencies='carrier:att,modem_repair', timeout_mins=timeout_mins,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['max_runtime_mins'] = 20
+args_dict['name'] = 'network3g_att'
+args_dict['suite_dependencies'] = 'carrier:att,modem_repair'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.network3g_pseudomodem b/test_suites/control.network3g_pseudomodem
index 9441fda..129b065 100644
--- a/test_suites/control.network3g_pseudomodem
+++ b/test_suites/control.network3g_pseudomodem
@@ -43,11 +43,11 @@
            'thieule@chromium.org']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='network3g_pseudomodem', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, max_runtime_mins=10, priority=priority,
-    timeout_mins=timeout_mins, bug_template=_BUG_TEMPLATE,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['name'] = 'network3g_pseudomodem'
+args_dict['max_runtime_mins'] = 10
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.network3g_tmobile b/test_suites/control.network3g_tmobile
index 65aedac..fdc7226 100644
--- a/test_suites/control.network3g_tmobile
+++ b/test_suites/control.network3g_tmobile
@@ -40,13 +40,12 @@
 
 # TODO(benchan): Re-enable automated bug filing for network3g_pseudomodem
 # suite once de-duplication logic works (crbug.com/241510).
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='network3g_tmobile', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, max_runtime_mins=20, priority=priority,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    suite_dependencies='carrier:tmobile,modem_repair',
-    timeout_mins=timeout_mins,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['max_runtime_mins'] = 20
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['name'] = 'network3g_tmobile'
+args_dict['suite_dependencies'] = 'carrier:tmobile,modem_repair'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.network3g_verizon b/test_suites/control.network3g_verizon
index 8e0668c..e8b2ba3 100644
--- a/test_suites/control.network3g_verizon
+++ b/test_suites/control.network3g_verizon
@@ -40,13 +40,12 @@
 
 # TODO(benchan): Re-enable automated bug filing for network3g_pseudomodem
 # suite once de-duplication logic works (crbug.com/241510).
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='network3g_verizon', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, max_runtime_mins=20, priority=priority,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    suite_dependencies='carrier:verizon,modem_repair',
-    timeout_mins=timeout_mins,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['max_runtime_mins'] = 20
+args_dict['name'] = 'network3g_verizon'
+args_dict['suite_dependencies'] = 'carrier:verizon,modem_repair'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.network_nightly b/test_suites/control.network_nightly
index e31522b..02afcdd 100644
--- a/test_suites/control.network_nightly
+++ b/test_suites/control.network_nightly
@@ -41,11 +41,11 @@
            'tienchang@chromium.org']
 }
 
-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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=20, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries, bug_template=_BUG_TEMPLATE)
+args_dict['name'] = NAME
+args_dict['max_runtime_mins'] = 20
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.network_ui b/test_suites/control.network_ui
index e3e8dbb..72578b3 100644
--- a/test_suites/control.network_ui
+++ b/test_suites/control.network_ui
@@ -43,11 +43,11 @@
            'pneubeck@chromium.org', 'stevenjb@chromium.org']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='network_ui', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=True, priority=priority, timeout_mins=timeout_mins,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['file_bugs'] = True
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['bug_template'] = _BUG_TEMPLATE
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = 'network_ui'
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.partners b/test_suites/control.partners
index 762e13b..7e1924e 100644
--- a/test_suites/control.partners
+++ b/test_suites/control.partners
@@ -28,11 +28,11 @@
 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='partners', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=False, priority=priority, timeout_mins=480,
-    devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['timeout_mins'] = 480
+args_dict['file_bugs'] = False
+args_dict['name'] = 'partners'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.perf_v2 b/test_suites/control.perf_v2
index 33f8f14..b5707e8 100644
--- a/test_suites/control.perf_v2
+++ b/test_suites/control.perf_v2
@@ -42,11 +42,11 @@
             'beeps@chromium.org']
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='perf_v2', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=False, priority=priority, timeout_mins=timeout_mins,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['file_bugs'] = False
+args_dict['name'] = 'perf_v2'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.perfalerts b/test_suites/control.perfalerts
index 1cdcde7..ab8cf25 100644
--- a/test_suites/control.perfalerts
+++ b/test_suites/control.perfalerts
@@ -30,10 +30,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['name'] = 'perfalerts'
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.power_build b/test_suites/control.power_build
index 1d2f94c..718b77f 100644
--- a/test_suites/control.power_build
+++ b/test_suites/control.power_build
@@ -25,10 +25,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['add_experimental'] = True
+args_dict['name'] = 'power_build'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.power_daily b/test_suites/control.power_daily
index 702a3a1..d9a3f5d 100644
--- a/test_suites/control.power_daily
+++ b/test_suites/control.power_daily
@@ -34,11 +34,10 @@
     'cc': ['dbasehore@chromium.org', 'snanda@chromium.org', 'tbroch@chromium.org']
 }
 
-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, priority=priority, timeout_mins=timeout_mins,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['bug_template'] = _BUG_TEMPLATE
+args_dict['name'] = 'power_daily'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.power_requirements b/test_suites/control.power_requirements
index 623f0e1..8e3d7f9 100644
--- a/test_suites/control.power_requirements
+++ b/test_suites/control.power_requirements
@@ -26,10 +26,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['add_experimental'] = True
+args_dict['name'] = 'power_requirements'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.push_to_prod b/test_suites/control.push_to_prod
index a83dfa7..9eb8845 100644
--- a/test_suites/control.push_to_prod
+++ b/test_suites/control.push_to_prod
@@ -54,11 +54,12 @@
     'ccs': []
 }
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='push_to_prod', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=True, priority=priority, timeout=timeout,
-    max_runtime_mins=20, bug_template=_BUG_TEMPLATE,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['max_runtime_mins'] = 20
+args_dict['file_bugs'] = True
+args_dict['name'] = 'push_to_prod'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.regression b/test_suites/control.regression
index 12cfd26..9ce9d62 100644
--- a/test_suites/control.regression
+++ b/test_suites/control.regression
@@ -29,11 +29,10 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=120, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 120
+args_dict['job'] = job
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = 'regression'
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.sanity b/test_suites/control.sanity
index e9b9dc8..469adf5 100644
--- a/test_suites/control.sanity
+++ b/test_suites/control.sanity
@@ -26,10 +26,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.security b/test_suites/control.security
index dd69a31..f81766e 100644
--- a/test_suites/control.security
+++ b/test_suites/control.security
@@ -31,10 +31,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['name'] = 'security'
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.security_weekly b/test_suites/control.security_weekly
index 0e672b0..d1fc575 100644
--- a/test_suites/control.security_weekly
+++ b/test_suites/control.security_weekly
@@ -30,10 +30,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['add_experimental'] = True
+args_dict['name'] = 'security_weekly'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.smoke b/test_suites/control.smoke
index 34844bb..2f0a595 100644
--- a/test_suites/control.smoke
+++ b/test_suites/control.smoke
@@ -29,10 +29,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['name'] = 'smoke'
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.storagequal b/test_suites/control.storagequal
index 8e54711..182be24 100644
--- a/test_suites/control.storagequal
+++ b/test_suites/control.storagequal
@@ -27,12 +27,10 @@
 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()),
-    devserver_url=devserver_url, timeout_mins=timeout_mins,
-    max_runtime_mins=max_runtime_mins,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['skip_reimage'] = dynamic_suite.skip_reimage(globals())
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.stress b/test_suites/control.stress
index ed6285b..7bde797 100644
--- a/test_suites/control.stress
+++ b/test_suites/control.stress
@@ -39,10 +39,10 @@
 }
 
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='stress', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries, bug_template=_BUG_TEMPLATE)
+args_dict['add_experimental'] = True
+args_dict['bug_template'] = _BUG_TEMPLATE
+args_dict['name'] = 'stress'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.stress2 b/test_suites/control.stress2
index 98c2220..d5afba1 100644
--- a/test_suites/control.stress2
+++ b/test_suites/control.stress2
@@ -39,10 +39,10 @@
 }
 
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='stress2', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries, bug_template=_BUG_TEMPLATE)
+args_dict['add_experimental'] = True
+args_dict['bug_template'] = _BUG_TEMPLATE
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = 'stress2'
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.stress3 b/test_suites/control.stress3
index 7858afc..53c92fa 100644
--- a/test_suites/control.stress3
+++ b/test_suites/control.stress3
@@ -39,10 +39,10 @@
 }
 
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='stress3', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries, bug_template=_BUG_TEMPLATE)
+args_dict['add_experimental'] = True
+args_dict['name'] = 'stress3'
+args_dict['bug_template'] = _BUG_TEMPLATE
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.stress4 b/test_suites/control.stress4
index e231e2c..e9d6605 100644
--- a/test_suites/control.stress4
+++ b/test_suites/control.stress4
@@ -39,10 +39,10 @@
 }
 
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='stress4', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries, bug_template=_BUG_TEMPLATE)
+args_dict['add_experimental'] = True
+args_dict['bug_template'] = _BUG_TEMPLATE
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = 'stress4'
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.stress5 b/test_suites/control.stress5
index b1b9fb7..41d521f 100644
--- a/test_suites/control.stress5
+++ b/test_suites/control.stress5
@@ -39,10 +39,10 @@
 }
 
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='stress5', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries, bug_template=_BUG_TEMPLATE)
+args_dict['name'] = 'stress5'
+args_dict['add_experimental'] = True
+args_dict['bug_template'] = _BUG_TEMPLATE
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.stress_experimental b/test_suites/control.stress_experimental
index 6dbe7e1..48400aa 100644
--- a/test_suites/control.stress_experimental
+++ b/test_suites/control.stress_experimental
@@ -37,10 +37,10 @@
 }
 
 
-dynamic_suite.reimage_and_run(
-    build=build, board=board, name='stress_experimental', job=job, pool=pool,
-    check_hosts=check_hosts, add_experimental=True, num=num,
-    file_bugs=file_bugs, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries, bug_template=_BUG_TEMPLATE)
+args_dict['name'] = 'stress_experimental'
+args_dict['add_experimental'] = True
+args_dict['bug_template'] = _BUG_TEMPLATE
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.suite_attr_wrapper b/test_suites/control.suite_attr_wrapper
index 113ce35..21c93f2 100644
--- a/test_suites/control.suite_attr_wrapper
+++ b/test_suites/control.suite_attr_wrapper
@@ -45,6 +45,7 @@
 args_dict.update(suite_args_dict)
 args_dict['predicate'] = attr_predicate
 args_dict.setdefault('name', NAME)
+args_dict['job'] = job
 args_dict.setdefault('version_prefix', provision.CROS_VERSION_PREFIX)
 
-dynamic_suite.reimage_and_run(job=job, **args_dict)
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.telemetry_unit b/test_suites/control.telemetry_unit
index ff9a3e0..a92b473 100644
--- a/test_suites/control.telemetry_unit
+++ b/test_suites/control.telemetry_unit
@@ -28,10 +28,9 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = 'telemetry_unit'
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.tendo_experimental b/test_suites/control.tendo_experimental
index fa8868e..465b014 100644
--- a/test_suites/control.tendo_experimental
+++ b/test_suites/control.tendo_experimental
@@ -31,12 +31,9 @@
 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=False, num=num,
-    file_bugs=file_bugs, priority=priority,
-    timeout_mins=timeout_mins,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = False
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
 
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.test_that_wrapper b/test_suites/control.test_that_wrapper
index d430cde..aaf2fcc 100644
--- a/test_suites/control.test_that_wrapper
+++ b/test_suites/control.test_that_wrapper
@@ -62,11 +62,12 @@
 
 combined_predicate = lambda test: any(f(test) for f in sub_predicates)
 
-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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=20, bug_template=_BUG_TEMPLATE,
-    devserver_url=devserver_url, version_prefix=provision.CROS_VERSION_PREFIX,
-    predicate=combined_predicate, wait_for_results=wait_for_results,
-    job_retry=job_retry, max_retries=max_retries)
+args_dict['name'] = NAME
+args_dict['max_runtime_mins'] = 20
+args_dict['predicate'] = combined_predicate
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.video b/test_suites/control.video
index 7eb31da..5443a19 100644
--- a/test_suites/control.video
+++ b/test_suites/control.video
@@ -36,12 +36,11 @@
     'cc': ['chromeos-video-test-failures@google.com'],
 }
 
-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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=240, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries,
-    bug_template=_BUG_TEMPLATE)
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 240
+args_dict['name'] = 'video'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['bug_template'] = _BUG_TEMPLATE
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.wifi_atten_perf b/test_suites/control.wifi_atten_perf
index 3e18b84..b650dca 100644
--- a/test_suites/control.wifi_atten_perf
+++ b/test_suites/control.wifi_atten_perf
@@ -30,11 +30,10 @@
 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, priority=priority,
-    max_runtime_mins=60 * 6, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX, timeout_mins=timeout_mins,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 60 * 6
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.wifi_correctness_cros_core b/test_suites/control.wifi_correctness_cros_core
index 3552223..0d55a83 100644
--- a/test_suites/control.wifi_correctness_cros_core
+++ b/test_suites/control.wifi_correctness_cros_core
@@ -30,11 +30,10 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 60
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.wifi_flaky b/test_suites/control.wifi_flaky
index 7d52b18..fc4249b 100644
--- a/test_suites/control.wifi_flaky
+++ b/test_suites/control.wifi_flaky
@@ -22,11 +22,10 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 60
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.wifi_interop b/test_suites/control.wifi_interop
index 517df56..8178e53 100644
--- a/test_suites/control.wifi_interop
+++ b/test_suites/control.wifi_interop
@@ -30,11 +30,10 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60*6, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 60*6
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.wifi_matfunc b/test_suites/control.wifi_matfunc
index 6043f7a..63623c1 100644
--- a/test_suites/control.wifi_matfunc
+++ b/test_suites/control.wifi_matfunc
@@ -30,11 +30,10 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 60
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.wifi_matfunc_bcm4356 b/test_suites/control.wifi_matfunc_bcm4356
index 186033b..a3eb56d 100644
--- a/test_suites/control.wifi_matfunc_bcm4356
+++ b/test_suites/control.wifi_matfunc_bcm4356
@@ -30,11 +30,11 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX, job_retry=job_retry,
-    max_retries=max_retries, suite_dependencies='wifi:bcm4356',
-    wait_for_results=wait_for_results)
+args_dict['suite_dependencies'] = 'wifi:bcm4356'
+args_dict['max_runtime_mins'] = 60
+args_dict['name'] = NAME
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.wifi_matfunc_intel7265 b/test_suites/control.wifi_matfunc_intel7265
index 5f2834c..3535fba 100644
--- a/test_suites/control.wifi_matfunc_intel7265
+++ b/test_suites/control.wifi_matfunc_intel7265
@@ -30,11 +30,11 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX, job_retry=job_retry,
-    max_retries=max_retries, suite_dependencies='wifi:intel7265',
-    wait_for_results=wait_for_results)
+args_dict['max_runtime_mins'] = 60
+args_dict['name'] = NAME
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['suite_dependencies'] = 'wifi:intel7265'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.wifi_matfunc_marvell8897 b/test_suites/control.wifi_matfunc_marvell8897
index 4be0325..f3cfcf9 100644
--- a/test_suites/control.wifi_matfunc_marvell8897
+++ b/test_suites/control.wifi_matfunc_marvell8897
@@ -30,11 +30,11 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX, job_retry=job_retry,
-    max_retries=max_retries, suite_dependencies='wifi:marvell8897',
-    wait_for_results=wait_for_results)
+args_dict['max_runtime_mins'] = 60
+args_dict['name'] = NAME
+args_dict['suite_dependencies'] = 'wifi:marvell8897'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.wifi_perf b/test_suites/control.wifi_perf
index 0cb5681..286cbf6 100644
--- a/test_suites/control.wifi_perf
+++ b/test_suites/control.wifi_perf
@@ -28,11 +28,10 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 60
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.wifi_perf_bcm4356 b/test_suites/control.wifi_perf_bcm4356
index e2a0a98..960ceac 100644
--- a/test_suites/control.wifi_perf_bcm4356
+++ b/test_suites/control.wifi_perf_bcm4356
@@ -28,11 +28,11 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries, suite_dependencies='wifi:bcm4356')
+args_dict['suite_dependencies'] = 'wifi:bcm4356'
+args_dict['max_runtime_mins'] = 60
+args_dict['name'] = NAME
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.wifi_perf_intel7265 b/test_suites/control.wifi_perf_intel7265
index 4f78075..d956fcb 100644
--- a/test_suites/control.wifi_perf_intel7265
+++ b/test_suites/control.wifi_perf_intel7265
@@ -28,11 +28,11 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries, suite_dependencies='wifi:intel7265')
+args_dict['max_runtime_mins'] = 60
+args_dict['name'] = NAME
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['suite_dependencies'] = 'wifi:intel7265'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.wifi_perf_marvell8897 b/test_suites/control.wifi_perf_marvell8897
index 80af512..5cd13d3 100644
--- a/test_suites/control.wifi_perf_marvell8897
+++ b/test_suites/control.wifi_perf_marvell8897
@@ -28,11 +28,11 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries, suite_dependencies='wifi:marvell8897')
+args_dict['max_runtime_mins'] = 60
+args_dict['name'] = NAME
+args_dict['suite_dependencies'] = 'wifi:marvell8897'
+args_dict['job'] = job
+args_dict['add_experimental'] = True
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.wifi_release b/test_suites/control.wifi_release
index ffbd6e9..88f16aa 100644
--- a/test_suites/control.wifi_release
+++ b/test_suites/control.wifi_release
@@ -30,11 +30,10 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 60
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.wifi_update_router b/test_suites/control.wifi_update_router
index 275ac32..29a4c43 100644
--- a/test_suites/control.wifi_update_router
+++ b/test_suites/control.wifi_update_router
@@ -30,11 +30,10 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 60
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.wifichaos b/test_suites/control.wifichaos
index fe1ebe5..b2f2742 100644
--- a/test_suites/control.wifichaos
+++ b/test_suites/control.wifichaos
@@ -25,10 +25,9 @@
 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, priority=priority,
-    timeout_mins=timeout_mins, version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
\ No newline at end of file
+args_dict['add_experimental'] = True
+args_dict['name'] = 'wifichaos'
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.wimax b/test_suites/control.wimax
index 37ccac8..787f15b 100644
--- a/test_suites/control.wimax
+++ b/test_suites/control.wimax
@@ -48,11 +48,10 @@
 
 # TODO(benchan): Enable auto bug filing when the tests are stable and no longer
 # marked as experimental.
-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, priority=priority, timeout_mins=timeout_mins,
-    bug_template=_BUG_TEMPLATE, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['bug_template'] = _BUG_TEMPLATE
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.youtube_mse_eme b/test_suites/control.youtube_mse_eme
index a4fc895..332c3a0 100644
--- a/test_suites/control.youtube_mse_eme
+++ b/test_suites/control.youtube_mse_eme
@@ -30,11 +30,10 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 60
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['name'] = NAME
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)
diff --git a/test_suites/control.youtube_page b/test_suites/control.youtube_page
index cceaba8..258aedf 100644
--- a/test_suites/control.youtube_page
+++ b/test_suites/control.youtube_page
@@ -30,11 +30,10 @@
 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, priority=priority, timeout_mins=timeout_mins,
-    max_runtime_mins=60, devserver_url=devserver_url,
-    version_prefix=provision.CROS_VERSION_PREFIX,
-    wait_for_results=wait_for_results, job_retry=job_retry,
-    max_retries=max_retries)
+args_dict['name'] = 'youtube_page'
+args_dict['add_experimental'] = True
+args_dict['max_runtime_mins'] = 60
+args_dict['version_prefix'] = provision.CROS_VERSION_PREFIX
+args_dict['job'] = job
+
+dynamic_suite.reimage_and_run(**args_dict)