cli: Timeout option for flash reboot

.. as certain flash operations can take extremely long periods.
Due to stateful repairs during startup of older images / etc.

BUG=b:273635799
TEST=./run_tests \
  cli/device_imager_unittest.py  cli/flash_unittest.py \
  cli/cros/cros_flash_unittest.py

Change-Id: I5b1516fabd46b447b776965d87dd48ec82505c28
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/4338603
Auto-Submit: Jae Hoon Kim <kimjae@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Jae Hoon Kim <kimjae@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
diff --git a/cli/flash.py b/cli/flash.py
index 80b520f..a5af417 100644
--- a/cli/flash.py
+++ b/cli/flash.py
@@ -378,6 +378,7 @@
     debug=False,
     clear_tpm_owner=False,
     delta=False,
+    reboot_timeout=None,
 ):
     """Flashes a device, USB drive, or file with an image.
 
@@ -411,6 +412,7 @@
         debug: Print additional debugging messages.
         version: Default version.
         delta: Whether to use delta compression when transferring image bytes.
+        reboot_timeout: The timeout for reboot.
 
     Raises:
         FlashError: An unrecoverable error occurred.
@@ -448,6 +450,7 @@
                 clobber_stateful=clobber_stateful,
                 clear_tpm_owner=clear_tpm_owner,
                 delta=delta,
+                reboot_timeout=reboot_timeout,
             ).Run()
     elif device.scheme == commandline.DEVICE_SCHEME_USB:
         path = osutils.ExpandPath(device.path) if device.path else ""