blob: cf8e1079ec79169051e5e6683f359ea6e96b6932 [file]
plans:
- name: cros
criticalactions:
- name: 'Set state: repair_failed (RUN_ONCE)'
exec_name: dut_set_state
exec_args:
- state:repair_failed
docs:
- The action set devices with state means that repair tsk did not success to recover the devices.
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
recoveries:
- name: Power cycle DUT by RPM and wait (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Perform RPM cycle and wait to device to boot back.
conditions:
- name: has_rpm_info
exec_name: has_rpm_info
dependencies:
- name: rpm_power_cycle
exec_name: rpm_power_cycle
- name: Wait to be pingable (normal boot) (ALWAYS_RUN) (time:'2m30s')
exec_name: cros_ping
docs:
- Wait DUT to be pingable after some action on it.
- Waiting time 150 seconds.
- name: Ensure firmware is in good state
exec_name: cros_is_firmware_in_good_state
docs:
- Ensure that firmware is in good state.
conditions:
- name: dut_is_not_browser_legacy_duts
exec_name: dut_is_not_browser_legacy_duts
dependencies:
- name: Internal storage is responsive
exec_name: cros_is_file_system_writable
exec_args:
- paths:/mnt/stateful_partition,/var/tmp,/mnt/stateful_partition/encrypted
docs:
- Verify that internal storage is responsive
dependencies:
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
recoveries:
- name: Power cycle DUT by RPM and wait (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Perform RPM cycle and wait to device to boot back.
conditions:
- name: has_rpm_info
exec_name: has_rpm_info
dependencies:
- name: rpm_power_cycle
exec_name: rpm_power_cycle
- name: Wait to be pingable (normal boot) (ALWAYS_RUN) (time:'2m30s')
exec_name: cros_ping
docs:
- Wait DUT to be pingable after some action on it.
- Waiting time 150 seconds.
recoveries:
- name: Quick provision OS
exec_name: sample_pass
docs:
- Install stable OS on the device.
conditions:
- name: Recovery version has OS image path
exec_name: has_stable_version_cros_image
docs:
- Verify that recovery version has OS image path.
dependencies:
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
- name: Internal storage is responsive
exec_name: cros_is_file_system_writable
exec_args:
- paths:/mnt/stateful_partition,/var/tmp,/mnt/stateful_partition/encrypted
docs:
- Verify that internal storage is responsive
dependencies:
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
dependencies:
- name: Call provision for DUT (ALWAYS_RUN) (time:'1h0m0s')
exec_name: cros_provision
docs:
- Call provision OS of the DUT.
- name: Remove PROVISION repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:PROVISION
docs:
- Remove a PROVISION repair-request.
- name: Repair by powerwash
exec_name: sample_pass
docs:
- Install the stable test image designated for the DUT.
conditions:
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
- name: Internal storage is responsive
exec_name: cros_is_file_system_writable
exec_args:
- paths:/mnt/stateful_partition,/var/tmp,/mnt/stateful_partition/encrypted
docs:
- Verify that internal storage is responsive
dependencies:
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
dependencies:
- name: Write factory-install-reset to file system (Allow to fail)
exec_name: cros_run_shell_command
exec_args:
- echo "fast safe" > /mnt/stateful_partition/factory_install_reset
- name: Simple reboot (ALWAYS_RUN)
exec_name: cros_run_command
exec_args:
- host:dut
- command:reboot
- background:true
docs:
- Simple un-blocker reboot.
dependencies:
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
- name: Wait to be SSHable (normal boot) (ALWAYS_RUN) (time:'2m30s')
exec_name: cros_ssh
docs:
- Try to wait device to be sshable after the device being rebooted.
- Waiting time 150 seconds.
- name: Call provision for DUT (ALWAYS_RUN) (time:'1h0m0s')
exec_name: cros_provision
docs:
- Call provision OS of the DUT.
- name: Remove PROVISION repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:PROVISION
docs:
- Remove a PROVISION repair-request.
recoveries:
- name: Fix FW on the DUT to match stable-version and wait to boot
exec_name: sample_pass
docs:
- Update firmware from the host and reboot, then wait for host be available for SSH.
dependencies:
- name: Fix FW on the DUT to match stable-version (Allow to fail) (time:'2h0m0s')
exec_name: cros_update_firmware_from_firmware_image
exec_args:
- mode:recovery
- force:true
- update_ec_attempt_count:1
- update_ap_attempt_count:1
- updater_timeout:600
- use_cache_extractor:true
- use_fw_targets_from_inventory:true
docs:
- Download firmware image based on stable_version and install via firmware updater from DUT
- Update FW required the DUT to be run on stable-version OS.
- The reboot is not triggered as part of the action.
- Set timeout to 120 minutes = 10 minutes for download + 100 minutes for find and extract AP/EC images + 10 minutes for run updater.
conditions:
- name: Recovery version has OS image path
exec_name: has_stable_version_cros_image
docs:
- Verify that recovery version has OS image path.
dependencies:
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
- name: Recovery version has firmware image path
exec_name: has_stable_version_fw_image
docs:
- Verify that recovery version has firmware image path.
dependencies:
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
dependencies:
- name: Provision OS if needed
exec_name: sample_pass
docs:
- Perform provision OS if device is not running on it.
conditions:
- name: Recovery version has OS image path
exec_name: has_stable_version_cros_image
docs:
- Verify that recovery version has OS image path.
dependencies:
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
- name: DUT not on stable version
exec_name: cros_not_on_stable_version
docs:
- Confirm that DUT does not have stable version.
dependencies:
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
- name: Call provision for DUT (ALWAYS_RUN) (time:'1h0m0s')
exec_name: cros_provision
docs:
- Call provision OS of the DUT.
- name: Remove PROVISION repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:PROVISION
docs:
- Remove a PROVISION repair-request.
- name: Disable software-controlled write-protect for 'internal' (Allow to fail) (ALWAYS_RUN) (time:'5m0s')
exec_name: cros_disable_fprom_write_protect
exec_args:
- fprom:internal
docs:
- Disable write-protect fprom 'internal'.
dependencies:
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
- name: Disable software-controlled write-protect for 'ec' (Allow to fail) (ALWAYS_RUN) (time:'5m0s')
exec_name: cros_disable_fprom_write_protect
exec_args:
- fprom:ec
docs:
- Disable write-protect fprom 'ec'.
dependencies:
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
- name: Simple reboot (ALWAYS_RUN)
exec_name: cros_run_command
exec_args:
- host:dut
- command:reboot
- background:true
docs:
- Simple un-blocker reboot.
dependencies:
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
- name: Wait to be SSHable (normal boot) (ALWAYS_RUN) (time:'2m30s')
exec_name: cros_ssh
docs:
- Try to wait device to be sshable after the device being rebooted.
- Waiting time 150 seconds.
- name: RO Firmware validations without servo
exec_name: cros_is_on_ro_firmware_stable_version
exec_args:
- only_check_numbers:true
docs:
- Check if the version of RO firmware on DUT matches the stable firmware version.
conditions:
- name: dut_is_not_browser_legacy_duts
exec_name: dut_is_not_browser_legacy_duts
- name: has_stable_version_fw_version
exec_name: has_stable_version_fw_version
- name: has_stable_version_fw_image
exec_name: has_stable_version_fw_image
recoveries:
- name: Fix FW on the DUT to match stable-version and wait to boot
exec_name: sample_pass
docs:
- Update firmware from the host and reboot, then wait for host be available for SSH.
dependencies:
- name: Fix FW on the DUT to match stable-version (Allow to fail) (time:'2h0m0s')
exec_name: cros_update_firmware_from_firmware_image
exec_args:
- mode:recovery
- force:true
- update_ec_attempt_count:1
- update_ap_attempt_count:1
- updater_timeout:600
- use_cache_extractor:true
- use_fw_targets_from_inventory:true
docs:
- Download firmware image based on stable_version and install via firmware updater from DUT
- Update FW required the DUT to be run on stable-version OS.
- The reboot is not triggered as part of the action.
- Set timeout to 120 minutes = 10 minutes for download + 100 minutes for find and extract AP/EC images + 10 minutes for run updater.
conditions:
- name: Recovery version has OS image path
exec_name: has_stable_version_cros_image
docs:
- Verify that recovery version has OS image path.
dependencies:
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
- name: Recovery version has firmware image path
exec_name: has_stable_version_fw_image
docs:
- Verify that recovery version has firmware image path.
dependencies:
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
dependencies:
- name: Provision OS if needed
exec_name: sample_pass
docs:
- Perform provision OS if device is not running on it.
conditions:
- name: Recovery version has OS image path
exec_name: has_stable_version_cros_image
docs:
- Verify that recovery version has OS image path.
dependencies:
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
- name: DUT not on stable version
exec_name: cros_not_on_stable_version
docs:
- Confirm that DUT does not have stable version.
dependencies:
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
- name: Call provision for DUT (ALWAYS_RUN) (time:'1h0m0s')
exec_name: cros_provision
docs:
- Call provision OS of the DUT.
- name: Remove PROVISION repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:PROVISION
docs:
- Remove a PROVISION repair-request.
- name: Disable software-controlled write-protect for 'internal' (Allow to fail) (ALWAYS_RUN) (time:'5m0s')
exec_name: cros_disable_fprom_write_protect
exec_args:
- fprom:internal
docs:
- Disable write-protect fprom 'internal'.
dependencies:
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
- name: Disable software-controlled write-protect for 'ec' (Allow to fail) (ALWAYS_RUN) (time:'5m0s')
exec_name: cros_disable_fprom_write_protect
exec_args:
- fprom:ec
docs:
- Disable write-protect fprom 'ec'.
dependencies:
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
- name: Simple reboot (ALWAYS_RUN)
exec_name: cros_run_command
exec_args:
- host:dut
- command:reboot
- background:true
docs:
- Simple un-blocker reboot.
dependencies:
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
- name: Wait to be SSHable (normal boot) (ALWAYS_RUN) (time:'2m30s')
exec_name: cros_ssh
docs:
- Try to wait device to be sshable after the device being rebooted.
- Waiting time 150 seconds.
- name: Has repair-request for re-provision
exec_name: dut_has_any_repair_requests
exec_args:
- requests:PROVISION
docs:
- Check if PROVISION repair-request is present.
recoveries:
- name: Quick provision OS
exec_name: sample_pass
docs:
- Install stable OS on the device.
conditions:
- name: Recovery version has OS image path
exec_name: has_stable_version_cros_image
docs:
- Verify that recovery version has OS image path.
dependencies:
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
- name: Internal storage is responsive
exec_name: cros_is_file_system_writable
exec_args:
- paths:/mnt/stateful_partition,/var/tmp,/mnt/stateful_partition/encrypted
docs:
- Verify that internal storage is responsive
dependencies:
- name: Device is SSHable (ALWAYS_RUN) (time:'15s')
exec_name: cros_ssh
docs:
- Verify that device is reachable by SSH.
- Limited to 15 seconds.
dependencies:
- name: Call provision for DUT (ALWAYS_RUN) (time:'1h0m0s')
exec_name: cros_provision
docs:
- Call provision OS of the DUT.
- name: Remove PROVISION repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:PROVISION
docs:
- Remove a PROVISION repair-request.
- name: Install OS in recovery mode by booting from servo USB-drive (no storage check) (ALWAYS_RUN)
exec_name: sample_pass
docs:
- This action installs the test image on DUT utilizing the features of servo.
- DUT will be booted in recovery mode.
conditions:
- name: Recovery version has OS image path
exec_name: has_stable_version_cros_image
docs:
- Verify that recovery version has OS image path.
dependencies:
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Is a Chromebook (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:true
docs:
- Check that DUT is a Chromebook by checking for non-Chromebook boards
- name: Is servo USB key detected
exec_name: servo_usbkey_is_detected
exec_args:
- file_check:true
docs:
- The action used as codiion.
- The action verify that USB-key is detected and readable.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
dependencies:
- name: Servo USB-Key needs to be reflashed
exec_name: sample_pass
docs:
- Check if it is time to download image to servo usbkey.
- If so, then download the stable image to usbkey.
conditions:
- name: It is time to update USB-drive image
exec_name: cros_is_time_to_force_download_image_to_usbkey
exec_args:
- task_name:recovery
- repair_failed_count:1
- repair_failed_interval:10
docs:
- Check if it is time to force download image to usbkey
- from the number of failed recoveries since last successful PARIS repair task.
dependencies:
- name: Download stable image to USB-key (Allow to fail) (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Download lab stable image on servo USB-key
- Download the image can take longer if labstation download parallel a few images.
- This step is allowed to complete successfully even if some
- ' errors happen during download because the image can already'
- ' be present on the USB-drive.'
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Is servo USB key detected
exec_name: servo_usbkey_is_detected
exec_args:
- file_check:true
docs:
- The action used as codiion.
- The action verify that USB-key is detected and readable.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Call servod to download image to USB-key (ALWAYS_RUN) (time:'50m0s')
exec_name: servo_download_image_to_usb
docs:
- This action calls servod to download stable version OS image to servo USB-key.
- name: Remove UPDATE_USBKEY_IMAGE repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:UPDATE_USBKEY_IMAGE
docs:
- Remove UPDATE_USBKEY_IMAGE from repair-requests.
- name: Download stable version OS image to servo usbkey if necessary (allow fail) (Allow to fail) (RUN_ONCE)
exec_name: sample_pass
docs:
- This action will download model specific stable version OS image to servo usbkey.
- The action will be skipped if the required image is already loaded.
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
- name: Stable version image is missing from servo usbkey
exec_name: sample_fail
docs:
- This is a reverse action which fails when required image is already cached in servo usbkey.
- The purpose is to serve as a condition of Download stable image to USB-key action, so that we don't do duplicate download.
- If this action fails, it means the servo usbkey already have required stable_version OS image cached.
conditions:
- name: Servo usbkey has stable image
exec_name: servo_usbkey_has_stable_image
exec_args:
- retry_count:3
- retry_interval:1
- usb_file_check:true
docs:
- Check if the usbkey has the stable_version OS image.
- 'TODO: Collect data on the usual number of retries and tweak the default'
dependencies:
- name: servo_servod_echo_host
exec_name: servo_servod_echo_host
- name: Is servo USB key detected
exec_name: servo_usbkey_is_detected
exec_args:
- file_check:true
docs:
- The action used as codiion.
- The action verify that USB-key is detected and readable.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Call servod to download image to USB-key (ALWAYS_RUN) (time:'50m0s')
exec_name: servo_download_image_to_usb
docs:
- This action calls servod to download stable version OS image to servo USB-key.
- name: Remove UPDATE_USBKEY_IMAGE repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:UPDATE_USBKEY_IMAGE
docs:
- Remove UPDATE_USBKEY_IMAGE from repair-requests.
- name: Boot DUT in recovery and install from USB-drive (no storage check) (ALWAYS_RUN) (time:'2h13m20s')
exec_name: cros_install_in_recovery_mode
exec_args:
- run_tpm_reset:true
- run_os_install:true
- boot_timeout:480
- boot_interval:10
- boot_retry:2
- halt_timeout:120
- install_timeout:1200
- tpm_reset_timeout:60
- post_install_boot_time:15
- ignore_reboot_failure:true
- run_storage_checks:false
- badblocks_mode:not
- rw_badblocks_timeout:5400
- ro_badblocks_timeout:3600
- after_reboot_check:true
- after_reboot_timeout:150
- after_reboot_allow_use_servo_reset:true
docs:
- 'This action installs the test image on DUT utilizing '
- 'the features of servo. DUT will be booted in recovery '
- 'mode. In some cases RO FW is not allowed to boot in '
- 'recovery mode with active PD, so we will change it to '
- sink-mode if required.
- name: Wait to be SSHable (normal boot) (ALWAYS_RUN) (time:'2m30s')
exec_name: cros_ssh
docs:
- Try to wait device to be sshable after the device being rebooted.
- Waiting time 150 seconds.
- name: Remove REIMAGE_BY_USBKEY repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:PROVISION,REIMAGE_BY_USBKEY
docs:
- Remove REIMAGE_BY_USBKEY and PROVISION repair-requests.
- name: Install OS in recovery mode by booting from servo USB-drive (with FW update) (ALWAYS_RUN)
exec_name: sample_pass
docs:
- This action installs the test image on DUT utilizing the features of servo.
- DUT will be booted in recovery mode.
conditions:
- name: Recovery version has OS image path
exec_name: has_stable_version_cros_image
docs:
- Verify that recovery version has OS image path.
dependencies:
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
- name: Recovery version has firmware image path
exec_name: has_stable_version_fw_image
docs:
- Verify that recovery version has firmware image path.
dependencies:
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Is a Chromebook (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:true
docs:
- Check that DUT is a Chromebook by checking for non-Chromebook boards
- name: Is servo USB key detected
exec_name: servo_usbkey_is_detected
exec_args:
- file_check:true
docs:
- The action used as codiion.
- The action verify that USB-key is detected and readable.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
dependencies:
- name: Flash EC (FW) by servo (allowed failed) (Allow to fail) (time:'1h50m0s')
exec_name: cros_update_fw_with_fw_image_by_servo
exec_args:
- update_ec_attempt_count:5
- download_timeout:600
- use_cache_extractor:true
- use_fw_targets_from_inventory:true
docs:
- Download fw-image specified in stable version and flash EC to the DUT by servo
- Set timeout for 110 minutes for now as = 10m(download)+4*20m(find/extract file)+20m(ec-update with retry).
- We will retry up to 5 times since there is flakiness on flash EC.
conditions:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
dependencies:
- name: Recovery version has firmware image path
exec_name: has_stable_version_fw_image
docs:
- Verify that recovery version has firmware image path.
dependencies:
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
- name: Sleep 60 seconds (Allow to fail) (ALWAYS_RUN) (time:'1m10s')
exec_name: sample_sleep
exec_args:
- sleep:60
- name: Disable software write protection via servo (Allow to fail) (time:'1m0s')
exec_name: cros_disable_software_write_protection_by_servo
docs:
- Disable software write protection(for flash firmware) via servo.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Flash AP (FW) with GBB 0x18 by servo (Allow to fail) (time:'1h30m0s')
exec_name: cros_update_fw_with_fw_image_by_servo
exec_args:
- update_ap_attempt_count:3
- download_timeout:600
- gbb_flags:0x18
- use_cache_extractor:true
- use_fw_targets_from_inventory:true
docs:
- Download fw-image specified in stable version and flash AP to the DUT by servo
- Set timeout for 90 minutes for now as = 10m(download)+2*20m(find/extract file)+40m(ap-update with retry).
- We will retry up to 3 times since there may be flakiness on flash AP via servo.
conditions:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
dependencies:
- name: Recovery version has firmware image path
exec_name: has_stable_version_fw_image
docs:
- Verify that recovery version has firmware image path.
dependencies:
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
- name: Servo USB-Key needs to be reflashed
exec_name: sample_pass
docs:
- Check if it is time to download image to servo usbkey.
- If so, then download the stable image to usbkey.
conditions:
- name: It is time to update USB-drive image
exec_name: cros_is_time_to_force_download_image_to_usbkey
exec_args:
- task_name:recovery
- repair_failed_count:1
- repair_failed_interval:10
docs:
- Check if it is time to force download image to usbkey
- from the number of failed recoveries since last successful PARIS repair task.
dependencies:
- name: Download stable image to USB-key (Allow to fail) (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Download lab stable image on servo USB-key
- Download the image can take longer if labstation download parallel a few images.
- This step is allowed to complete successfully even if some
- ' errors happen during download because the image can already'
- ' be present on the USB-drive.'
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Is servo USB key detected
exec_name: servo_usbkey_is_detected
exec_args:
- file_check:true
docs:
- The action used as codiion.
- The action verify that USB-key is detected and readable.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Call servod to download image to USB-key (ALWAYS_RUN) (time:'50m0s')
exec_name: servo_download_image_to_usb
docs:
- This action calls servod to download stable version OS image to servo USB-key.
- name: Remove UPDATE_USBKEY_IMAGE repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:UPDATE_USBKEY_IMAGE
docs:
- Remove UPDATE_USBKEY_IMAGE from repair-requests.
- name: Download stable version OS image to servo usbkey if necessary (allow fail) (Allow to fail) (RUN_ONCE)
exec_name: sample_pass
docs:
- This action will download model specific stable version OS image to servo usbkey.
- The action will be skipped if the required image is already loaded.
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
- name: Stable version image is missing from servo usbkey
exec_name: sample_fail
docs:
- This is a reverse action which fails when required image is already cached in servo usbkey.
- The purpose is to serve as a condition of Download stable image to USB-key action, so that we don't do duplicate download.
- If this action fails, it means the servo usbkey already have required stable_version OS image cached.
conditions:
- name: Servo usbkey has stable image
exec_name: servo_usbkey_has_stable_image
exec_args:
- retry_count:3
- retry_interval:1
- usb_file_check:true
docs:
- Check if the usbkey has the stable_version OS image.
- 'TODO: Collect data on the usual number of retries and tweak the default'
dependencies:
- name: servo_servod_echo_host
exec_name: servo_servod_echo_host
- name: Is servo USB key detected
exec_name: servo_usbkey_is_detected
exec_args:
- file_check:true
docs:
- The action used as codiion.
- The action verify that USB-key is detected and readable.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Call servod to download image to USB-key (ALWAYS_RUN) (time:'50m0s')
exec_name: servo_download_image_to_usb
docs:
- This action calls servod to download stable version OS image to servo USB-key.
- name: Remove UPDATE_USBKEY_IMAGE repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:UPDATE_USBKEY_IMAGE
docs:
- Remove UPDATE_USBKEY_IMAGE from repair-requests.
- name: Boot DUT in recovery and install from USB-drive (ALWAYS_RUN) (time:'2h13m20s')
exec_name: cros_install_in_recovery_mode
exec_args:
- run_tpm_reset:true
- run_os_install:true
- boot_timeout:480
- boot_interval:10
- boot_retry:2
- halt_timeout:120
- install_timeout:1200
- tpm_reset_timeout:60
- post_install_boot_time:15
- ignore_reboot_failure:true
- badblocks_mode:auto
- rw_badblocks_timeout:5400
- ro_badblocks_timeout:3600
- after_reboot_check:true
- after_reboot_timeout:150
- after_reboot_allow_use_servo_reset:true
docs:
- 'This action installs the test image on DUT utilizing '
- 'the features of servo. DUT will be booted in recovery '
- 'mode. In some cases RO FW is not allowed to boot in '
- 'recovery mode with active PD, so we will change it to '
- sink-mode if required.
- name: Wait to be SSHable (normal boot) (ALWAYS_RUN) (time:'2m30s')
exec_name: cros_ssh
docs:
- Try to wait device to be sshable after the device being rebooted.
- Waiting time 150 seconds.
- name: Remove REIMAGE_BY_USBKEY repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:PROVISION,REIMAGE_BY_USBKEY
docs:
- Remove REIMAGE_BY_USBKEY and PROVISION repair-requests.
- name: Install OS in recovery mode by booting from servo USB-drive (Flex) (ALWAYS_RUN)
exec_name: sample_pass
docs:
- The action design only for Flex devices.
- This action installs the test image on DUT utilizing the features of servo.
- When DUT sees USB-key it will always try to boot from it.
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Is servo USB key detected
exec_name: servo_usbkey_is_detected
exec_args:
- file_check:true
docs:
- The action used as codiion.
- The action verify that USB-key is detected and readable.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Device does not have Intel AMT
exec_name: sample_fail
docs:
- Verify that the device does not have Intel AMT (vPro).
dependencies:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Intel AMT is present (ALWAYS_RUN)
exec_name: cros_flex_amt_present
docs:
- Check if Intel AMT (vPro) is present.
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
dependencies:
- name: Servo USB-Key needs to be reflashed
exec_name: sample_pass
docs:
- Check if it is time to download image to servo usbkey.
- If so, then download the stable image to usbkey.
conditions:
- name: It is time to update USB-drive image
exec_name: cros_is_time_to_force_download_image_to_usbkey
exec_args:
- task_name:recovery
- repair_failed_count:1
- repair_failed_interval:10
docs:
- Check if it is time to force download image to usbkey
- from the number of failed recoveries since last successful PARIS repair task.
dependencies:
- name: Download stable image to USB-key (Allow to fail) (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Download lab stable image on servo USB-key
- Download the image can take longer if labstation download parallel a few images.
- This step is allowed to complete successfully even if some
- ' errors happen during download because the image can already'
- ' be present on the USB-drive.'
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Is servo USB key detected
exec_name: servo_usbkey_is_detected
exec_args:
- file_check:true
docs:
- The action used as codiion.
- The action verify that USB-key is detected and readable.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Call servod to download image to USB-key (ALWAYS_RUN) (time:'50m0s')
exec_name: servo_download_image_to_usb
docs:
- This action calls servod to download stable version OS image to servo USB-key.
- name: Remove UPDATE_USBKEY_IMAGE repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:UPDATE_USBKEY_IMAGE
docs:
- Remove UPDATE_USBKEY_IMAGE from repair-requests.
- name: Download stable version OS image to servo usbkey if necessary (allow fail) (Allow to fail) (RUN_ONCE)
exec_name: sample_pass
docs:
- This action will download model specific stable version OS image to servo usbkey.
- The action will be skipped if the required image is already loaded.
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
- name: Stable version image is missing from servo usbkey
exec_name: sample_fail
docs:
- This is a reverse action which fails when required image is already cached in servo usbkey.
- The purpose is to serve as a condition of Download stable image to USB-key action, so that we don't do duplicate download.
- If this action fails, it means the servo usbkey already have required stable_version OS image cached.
conditions:
- name: Servo usbkey has stable image
exec_name: servo_usbkey_has_stable_image
exec_args:
- retry_count:3
- retry_interval:1
- usb_file_check:true
docs:
- Check if the usbkey has the stable_version OS image.
- 'TODO: Collect data on the usual number of retries and tweak the default'
dependencies:
- name: servo_servod_echo_host
exec_name: servo_servod_echo_host
- name: Is servo USB key detected
exec_name: servo_usbkey_is_detected
exec_args:
- file_check:true
docs:
- The action used as codiion.
- The action verify that USB-key is detected and readable.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Call servod to download image to USB-key (ALWAYS_RUN) (time:'50m0s')
exec_name: servo_download_image_to_usb
docs:
- This action calls servod to download stable version OS image to servo USB-key.
- name: Remove UPDATE_USBKEY_IMAGE repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:UPDATE_USBKEY_IMAGE
docs:
- Remove UPDATE_USBKEY_IMAGE from repair-requests.
- name: Direct USB-drive to DUT (ALWAYS_RUN) (time:'20s')
exec_name: servo_set
exec_args:
- command:image_usbkey_direction
- string_value:dut_sees_usbkey
docs:
- Switch servo's USB-drive to point to DUT.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Boot Flex from USB on next boot (ALWAYS_RUN)
exec_name: cros_flex_usb_nextboot
docs:
- Use efibootmgr to boot from USB on the next boot.
conditions:
- name: Device has UEFI firmware (ALWAYS_RUN)
exec_name: cros_run_command
exec_args:
- host:dut
- command:test -d /sys/firmware/efi
- background:false
docs:
- Check if the device has UEFI firmware.
- name: Power OFF DUT by servo (ALWAYS_RUN)
exec_name: servo_set
exec_args:
- command:power_state
- string_value:off
- timeout:30
docs:
- Turn DUT OFF by servo and do not wait.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Sleep 10 seconds (Allow to fail) (ALWAYS_RUN) (time:'11s')
exec_name: sample_sleep
exec_args:
- sleep:10
- name: Power ON DUT by servo (ALWAYS_RUN)
exec_name: servo_set
exec_args:
- command:power_state
- string_value:on
docs:
- Turn DUT ON by servo and do not wait.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Sleep 10 seconds (Allow to fail) (ALWAYS_RUN) (time:'11s')
exec_name: sample_sleep
exec_args:
- sleep:10
- name: Wait to be SSHable (normal boot) (ALWAYS_RUN) (time:'2m30s')
exec_name: cros_ssh
docs:
- Try to wait device to be sshable after the device being rebooted.
- Waiting time 150 seconds.
- name: Print active devices (Allow to fail) (ALWAYS_RUN)
exec_name: cros_run_command
exec_args:
- host:dut
- command:lsblk
- background:false
docs:
- Print active devices visible for DUT.
- name: Is Flex booted from USB-drive (ALWAYS_RUN)
exec_name: cros_run_command
exec_args:
- host:dut
- command:is_running_from_installer |grep yes
- background:false
docs:
- Check if device booted from USB in installer mode.
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Run chromeos-install for Flex (ALWAYS_RUN) (time:'10m0s')
exec_name: cros_run_command
exec_args:
- host:dut
- command:chromeos-install --dst $(lsblk --bytes --output NAME --paths -I 259 -n -d) --yes
- background:false
docs:
- Run chromeos-install for Flex DUTs with detecting destination.
- Flex device does not detect destination as part of chromeos-install script.
dependencies:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Sleep 10 seconds (Allow to fail) (ALWAYS_RUN) (time:'11s')
exec_name: sample_sleep
exec_args:
- sleep:10
- name: Power-off the DUT using AMT (ALWAYS_RUN)
exec_name: cros_flex_amt_power_off
docs:
- Power the DUT off using Intel AMT (vPro).
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Intel AMT is present (ALWAYS_RUN)
exec_name: cros_flex_amt_present
docs:
- Check if Intel AMT (vPro) is present.
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Direct USB-drive to servo host (ALWAYS_RUN) (time:'20s')
exec_name: servo_set
exec_args:
- command:image_usbkey_direction
- string_value:servo_sees_usbkey
docs:
- Switch servo's USB-drive to point to servo-host.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Power-on the DUT using AMT (ALWAYS_RUN)
exec_name: cros_flex_amt_power_on
docs:
- Power the DUT on using Intel AMT (vPro).
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Intel AMT is present (ALWAYS_RUN)
exec_name: cros_flex_amt_present
docs:
- Check if Intel AMT (vPro) is present.
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Wait to be SSHable (normal boot) (ALWAYS_RUN) (time:'2m30s')
exec_name: cros_ssh
docs:
- Try to wait device to be sshable after the device being rebooted.
- Waiting time 150 seconds.
- name: Remove REIMAGE_BY_USBKEY repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:PROVISION,REIMAGE_BY_USBKEY
docs:
- Remove REIMAGE_BY_USBKEY and PROVISION repair-requests.
- name: Install OS in recovery mode by booting from servo USB-drive (Flex with AMT) (ALWAYS_RUN)
exec_name: sample_pass
docs:
- The action design only for Flex devices.
- This action installs the test image on DUT utilizing the features of servo.
- Uses Intel AMT (vPro) to power off and power on the DUT.
- When DUT sees USB-key it will always try to boot from it.
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Is servo USB key detected
exec_name: servo_usbkey_is_detected
exec_args:
- file_check:true
docs:
- The action used as codiion.
- The action verify that USB-key is detected and readable.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Device has Intel AMT
exec_name: sample_pass
docs:
- Verify that the device has Intel AMT (vPro).
dependencies:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Intel AMT is present (ALWAYS_RUN)
exec_name: cros_flex_amt_present
docs:
- Check if Intel AMT (vPro) is present.
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
dependencies:
- name: Servo USB-Key needs to be reflashed
exec_name: sample_pass
docs:
- Check if it is time to download image to servo usbkey.
- If so, then download the stable image to usbkey.
conditions:
- name: It is time to update USB-drive image
exec_name: cros_is_time_to_force_download_image_to_usbkey
exec_args:
- task_name:recovery
- repair_failed_count:1
- repair_failed_interval:10
docs:
- Check if it is time to force download image to usbkey
- from the number of failed recoveries since last successful PARIS repair task.
dependencies:
- name: Download stable image to USB-key (Allow to fail) (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Download lab stable image on servo USB-key
- Download the image can take longer if labstation download parallel a few images.
- This step is allowed to complete successfully even if some
- ' errors happen during download because the image can already'
- ' be present on the USB-drive.'
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Is servo USB key detected
exec_name: servo_usbkey_is_detected
exec_args:
- file_check:true
docs:
- The action used as codiion.
- The action verify that USB-key is detected and readable.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Call servod to download image to USB-key (ALWAYS_RUN) (time:'50m0s')
exec_name: servo_download_image_to_usb
docs:
- This action calls servod to download stable version OS image to servo USB-key.
- name: Remove UPDATE_USBKEY_IMAGE repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:UPDATE_USBKEY_IMAGE
docs:
- Remove UPDATE_USBKEY_IMAGE from repair-requests.
- name: Download stable version OS image to servo usbkey if necessary (allow fail) (Allow to fail) (RUN_ONCE)
exec_name: sample_pass
docs:
- This action will download model specific stable version OS image to servo usbkey.
- The action will be skipped if the required image is already loaded.
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
- name: Stable version image is missing from servo usbkey
exec_name: sample_fail
docs:
- This is a reverse action which fails when required image is already cached in servo usbkey.
- The purpose is to serve as a condition of Download stable image to USB-key action, so that we don't do duplicate download.
- If this action fails, it means the servo usbkey already have required stable_version OS image cached.
conditions:
- name: Servo usbkey has stable image
exec_name: servo_usbkey_has_stable_image
exec_args:
- retry_count:3
- retry_interval:1
- usb_file_check:true
docs:
- Check if the usbkey has the stable_version OS image.
- 'TODO: Collect data on the usual number of retries and tweak the default'
dependencies:
- name: servo_servod_echo_host
exec_name: servo_servod_echo_host
- name: Is servo USB key detected
exec_name: servo_usbkey_is_detected
exec_args:
- file_check:true
docs:
- The action used as codiion.
- The action verify that USB-key is detected and readable.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Call servod to download image to USB-key (ALWAYS_RUN) (time:'50m0s')
exec_name: servo_download_image_to_usb
docs:
- This action calls servod to download stable version OS image to servo USB-key.
- name: Remove UPDATE_USBKEY_IMAGE repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:UPDATE_USBKEY_IMAGE
docs:
- Remove UPDATE_USBKEY_IMAGE from repair-requests.
- name: Direct USB-drive to DUT (ALWAYS_RUN) (time:'20s')
exec_name: servo_set
exec_args:
- command:image_usbkey_direction
- string_value:dut_sees_usbkey
docs:
- Switch servo's USB-drive to point to DUT.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Power-off the DUT using AMT (ALWAYS_RUN)
exec_name: cros_flex_amt_power_off
docs:
- Power the DUT off using Intel AMT (vPro).
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Intel AMT is present (ALWAYS_RUN)
exec_name: cros_flex_amt_present
docs:
- Check if Intel AMT (vPro) is present.
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Sleep 10 seconds (Allow to fail) (ALWAYS_RUN) (time:'11s')
exec_name: sample_sleep
exec_args:
- sleep:10
- name: Power-on the DUT using AMT (ALWAYS_RUN)
exec_name: cros_flex_amt_power_on
docs:
- Power the DUT on using Intel AMT (vPro).
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Intel AMT is present (ALWAYS_RUN)
exec_name: cros_flex_amt_present
docs:
- Check if Intel AMT (vPro) is present.
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Sleep 10 seconds (Allow to fail) (ALWAYS_RUN) (time:'11s')
exec_name: sample_sleep
exec_args:
- sleep:10
- name: Wait to be SSHable (normal boot) (ALWAYS_RUN) (time:'2m30s')
exec_name: cros_ssh
docs:
- Try to wait device to be sshable after the device being rebooted.
- Waiting time 150 seconds.
- name: Print active devices (Allow to fail) (ALWAYS_RUN)
exec_name: cros_run_command
exec_args:
- host:dut
- command:lsblk
- background:false
docs:
- Print active devices visible for DUT.
- name: Is Flex booted from USB-drive (ALWAYS_RUN)
exec_name: cros_run_command
exec_args:
- host:dut
- command:is_running_from_installer |grep yes
- background:false
docs:
- Check if device booted from USB in installer mode.
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Run chromeos-install for Flex (ALWAYS_RUN) (time:'10m0s')
exec_name: cros_run_command
exec_args:
- host:dut
- command:chromeos-install --dst $(lsblk --bytes --output NAME --paths -I 259 -n -d) --yes
- background:false
docs:
- Run chromeos-install for Flex DUTs with detecting destination.
- Flex device does not detect destination as part of chromeos-install script.
dependencies:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Sleep 10 seconds (Allow to fail) (ALWAYS_RUN) (time:'11s')
exec_name: sample_sleep
exec_args:
- sleep:10
- name: Power-off the DUT using AMT (ALWAYS_RUN)
exec_name: cros_flex_amt_power_off
docs:
- Power the DUT off using Intel AMT (vPro).
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Intel AMT is present (ALWAYS_RUN)
exec_name: cros_flex_amt_present
docs:
- Check if Intel AMT (vPro) is present.
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Direct USB-drive to servo host (ALWAYS_RUN) (time:'20s')
exec_name: servo_set
exec_args:
- command:image_usbkey_direction
- string_value:servo_sees_usbkey
docs:
- Switch servo's USB-drive to point to servo-host.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Power-on the DUT using AMT (ALWAYS_RUN)
exec_name: cros_flex_amt_power_on
docs:
- Power the DUT on using Intel AMT (vPro).
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Intel AMT is present (ALWAYS_RUN)
exec_name: cros_flex_amt_present
docs:
- Check if Intel AMT (vPro) is present.
conditions:
- name: Is Flex device (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:false
docs:
- Check that DUT is a Flex board
- name: Wait to be SSHable (normal boot) (ALWAYS_RUN) (time:'2m30s')
exec_name: cros_ssh
docs:
- Try to wait device to be sshable after the device being rebooted.
- Waiting time 150 seconds.
- name: Remove REIMAGE_BY_USBKEY repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:PROVISION,REIMAGE_BY_USBKEY
docs:
- Remove REIMAGE_BY_USBKEY and PROVISION repair-requests.
- name: Install OS in DEV mode, with force to DEV-mode
exec_name: sample_pass
docs:
- Install OS on the device from USB-key when device is in DEV-mode.
conditions:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Is a Chromebook (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:true
docs:
- Check that DUT is a Chromebook by checking for non-Chromebook boards
- name: Is servo USB key detected
exec_name: servo_usbkey_is_detected
exec_args:
- file_check:true
docs:
- The action used as codiion.
- The action verify that USB-key is detected and readable.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Recovery version has OS image path
exec_name: has_stable_version_cros_image
docs:
- Verify that recovery version has OS image path.
dependencies:
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
dependencies:
- name: Set GBB flags to 0x18 by servo (Allow to fail) (time:'5m0s')
exec_name: cros_set_gbb_by_servo
exec_args:
- gbb_flags:0x18
docs:
- Force to set GBB flags to 0x18 to boot in DEV mode and enable to boot from USB-drive.
- Allowed to fail as flags can applied but fail by some reason
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Install OS in DEV mode by USB-drive (ALWAYS_RUN)
exec_name: sample_pass
docs:
- This action installs the test image on DUT after booking the DUT in dev mode.
conditions:
- name: Recovery version has OS image path
exec_name: has_stable_version_cros_image
docs:
- Verify that recovery version has OS image path.
dependencies:
- name: Has a stable-version service (RUN_ONCE)
exec_name: has_stable_version_service_path
docs:
- Verify if we have access to the service provided access to the stable version
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Is a Chromebook (RUN_ONCE)
exec_name: dut_check_board
exec_args:
- string_values:aurora,reven
- invert_result:true
docs:
- Check that DUT is a Chromebook by checking for non-Chromebook boards
- name: Is servo USB key detected
exec_name: servo_usbkey_is_detected
exec_args:
- file_check:true
docs:
- The action used as codiion.
- The action verify that USB-key is detected and readable.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
dependencies:
- name: Boot DUT from USB in DEV mode (ALWAYS_RUN) (time:'10m50s')
exec_name: cros_dev_mode_boot_from_servo_usb_drive
exec_args:
- boot_retry:2
- boot_timeout:600
- retry_interval:1
- verify_usbkey_boot:true
docs:
- Restart and try to boot from USB-drive
- First boot in dev mode can take time so set boot time to 10 minutes.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Run install after boot from USB-drive (ALWAYS_RUN) (time:'20m0s')
exec_name: cros_run_chromeos_install_command_after_boot_usbdrive
docs:
- Perform install process when device booted from USB-drive.
- name: Cold reset DUT by servo and wait to boot (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Cold reset device by servo and wait for DUT to become ping-able.
conditions:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
dependencies:
- name: Cold reset DUT by servo (ALWAYS_RUN)
exec_name: servo_power_state_reset
exec_args:
- timeout:30
- more_logs:true
docs:
- Cold reset device by servo and do not wait.
dependencies:
- name: Is servod running (ALWAYS_RUN)
exec_name: sample_pass
docs:
- Verify that servo host specified in setup and servod is running.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Verify servod is responsive (ALWAYS_RUN) (time:'10s')
exec_name: servod_echo
exec_args:
- ssh_check:false
conditions:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Wait to be pingable (normal boot) (ALWAYS_RUN) (time:'2m30s')
exec_name: cros_ping
docs:
- Wait DUT to be pingable after some action on it.
- Waiting time 150 seconds.
- name: Wait to be SSHable (normal boot) (ALWAYS_RUN) (time:'2m30s')
exec_name: cros_ssh
docs:
- Try to wait device to be sshable after the device being rebooted.
- Waiting time 150 seconds.
- name: Remove REIMAGE_BY_USBKEY repair-request (ALWAYS_RUN)
exec_name: dut_remove_repair_requests
exec_args:
- requests:PROVISION,REIMAGE_BY_USBKEY
docs:
- Remove REIMAGE_BY_USBKEY and PROVISION repair-requests.
- name: Update provisioned info (ALWAYS_RUN)
exec_name: cros_update_provision_info
exec_args:
- update_job_repo_url:true
docs:
- Update cros_version and job_repo_url fields of provision info.
recoveries:
- name: Sleep 1s (Allow to fail) (ALWAYS_RUN)
exec_name: sample_sleep
exec_args:
- sleep:1
- name: 'Set state: ready (RUN_ONCE)'
exec_name: dut_set_state
exec_args:
- state:ready
docs:
- The action set devices with state ready for the testing.
dependencies:
- name: All repair-requests resolved
exec_name: dut_has_no_repair_requests
docs:
- Checks if all repair requests are resolved
- name: Reset DUT-state reason
exec_name: dut_reset_state_reason
docs:
- Reset DUT-state-reason for good DUT as it becomes stale.
- name: close (Allow to fail)
criticalactions:
- name: Update DUT state for failures more than threshold
exec_name: dut_set_state_reason
exec_args:
- allow_override:false
- reason:REPAIR_RETRY_REACHED_THRESHOLD
docs:
- 'Set the DUT state to the value passed in the '
- extra args.
conditions:
- name: DUT state is repair_failed
exec_name: dut_state_match
exec_args:
- state:repair_failed
docs:
- Check if the DUT's state is in repair_failed state, if not then fail.
- name: Failure count above threshold
exec_name: metrics_check_task_failures
exec_args:
- task_name:recovery
- repair_failed_count:6
docs:
- 'Check if the number of recovery task failures '
- on a servo-attached DUT is greater than a threshold
conditions:
- name: Servo-host known
exec_name: dut_servo_host_present
- name: Failure count above threshold (Servo-less)
exec_name: metrics_check_task_failures
exec_args:
- task_name:recovery
- repair_failed_count:3
docs:
- 'Check if the number of recovery task failures '
- on a non-servo-attached DUT is greater than a threshold
conditions:
- name: No Servo-host
exec_name: sample_fail
conditions:
- name: Servo-host known
exec_name: dut_servo_host_present
- name: 'Set state: needs_manual_repair (Allow to fail) (ALWAYS_RUN)'
exec_name: dut_set_state
exec_args:
- state:needs_manual_repair
docs:
- Set DUT state as needs_manual_repair.