Fix chromeos device trigger script when shards > 1.

Change-Id: I1c2903e46e002a5a0f3bd3507563b56d66b6b7ea
Reviewed-on: https://chromium-review.googlesource.com/c/1484589
Reviewed-by: Erik Chen <[email protected]>
Reviewed-by: John Budorick <[email protected]>
Commit-Queue: Ben Pastene <[email protected]>
Cr-Commit-Position: refs/heads/master@{#635608}
diff --git a/testing/trigger_scripts/chromeos_device_trigger.py b/testing/trigger_scripts/chromeos_device_trigger.py
index 7ac28fa2..ce190317 100755
--- a/testing/trigger_scripts/chromeos_device_trigger.py
+++ b/testing/trigger_scripts/chromeos_device_trigger.py
@@ -49,7 +49,7 @@
   return lkgm.split('.')[0]
 
 
-def parse_args():
+def parse_args(triggerer):
   # This script will do nothing but inspect and tweak the dimension args to
   # `swarming.py trigger`. So let's pull just those out.
   parser = argparse.ArgumentParser(description=__doc__)
@@ -68,7 +68,12 @@
       '--primary-expiration', type=int, default=600,
       help='How long to wait (in seconds) for an available bot in the primary '
            'task slice.')
+  # BaseTestTriggerer's setup_parser_contract() takes care of adding needed
+  # swarming.py args if they're not already present.
+  base_test_triggerer.BaseTestTriggerer.setup_parser_contract(parser)
   args, additional_args = parser.parse_known_args()
+  additional_args = triggerer.modify_args(
+      additional_args, 0, args.shard_index, args.shards, args.dump_json)
 
   if additional_args[0] != 'trigger':
     parser.error(
@@ -91,7 +96,8 @@
 
 
 def main():
-  args, additional_args = parse_args()
+  triggerer = base_test_triggerer.BaseTestTriggerer()
+  args, additional_args = parse_args(triggerer)
 
   current_lkgm = read_current_lkgm()
   if not current_lkgm:
@@ -120,7 +126,7 @@
   ])
   new_args += additional_args[1:]
 
-  return base_test_triggerer.BaseTestTriggerer().run_swarming(new_args, True)
+  return triggerer.run_swarming(new_args, True)
 
 
 if __name__ == '__main__':