blob: 06f06e185e1b7f17ae19a66bc934cd9eebf595e5 [file]
plans:
- name: cros_audit
criticalactions:
- name: 'Set state: needs_repair (ALWAYS_RUN)'
exec_name: dut_set_state
exec_args:
- state:needs_repair
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: Cold reset by servo and wait for SSH (ALWAYS_RUN)
exec_name: sample_pass
docs:
- This repair action will use servod command to reset power_state on the DUT.
- 'TODO: (blocked by: b/221083688) Collect logs from a successfully repaired DUT.'
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 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: 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: Update FW from fw-image by servo and wait for boot
exec_name: sample_pass
docs:
- 'This action will repair the firmware on the DUT, and '
- 'then reboot and wait for the DUT to again become '
- 'available. This action exists to wrap these component '
- actions into a single repair action.
conditions:
- 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
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: 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: Update fingerpprint FW from USB drive (ALWAYS_RUN) (time:'16m40s')
exec_name: cros_install_in_recovery_mode
exec_args:
- badblocks_mode:not
- run_custom_commands:true
- boot_timeout:480
- boot_interval:10
- boot_retry:1
- halt_timeout:120
- custom_command_allowed_to_fail:true
- custom_command_timeout:60
- custom_commands:flash_fp_mcu /opt/google/biod/fw/$(cros_config /fingerprint board)*.bin
- ignore_reboot_failure:true
- after_reboot_check:true
- after_reboot_timeout:150
- after_reboot_allow_use_servo_reset:true
docs:
- The goal to force update fingerprint fw when devices booted from USB-stick
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
dependencies:
- name: Set fw_wp_state to force_off
exec_name: servo_set
exec_args:
- command:fw_wp_state
- string_value:force_off
docs:
- Force disable wp of FW by servo.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Install OS in recovery mode by booting from servo USB-drive (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 (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 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: Reset power using servo if booted from USB
exec_name: sample_pass
docs:
- 'This action will reboot the DUT using servo if device '
- 'is not booted after off/on performed as part of '
- re-imaging the device from USB device.
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 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: DUT has correct cros image version
exec_name: cros_is_on_stable_version
docs:
- Check whether the cros image version on the device is match expected.
conditions:
- name: Is it first deployment task (ALWAYS_RUN)
exec_name: sample_fail
docs:
- Check if deployment check not need to be run.
- If HWID or serial-number already collected from DUT then we already test it before.
conditions:
- name: Is HWID known (ALWAYS_RUN)
exec_name: dut_has_hwid
docs:
- Check whether the DUT information includes its HWID.
- name: Is serial-number known (ALWAYS_RUN)
exec_name: dut_has_serial_number
docs:
- 'Check whether the DUT information includes its '
- serial number.
- 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: 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: 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: Cold reset by servo and wait for SSH (ALWAYS_RUN)
exec_name: sample_pass
docs:
- This repair action will use servod command to reset power_state on the DUT.
- 'TODO: (blocked by: b/221083688) Collect logs from a successfully repaired DUT.'
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 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: 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: Update FW from fw-image by servo and wait for boot
exec_name: sample_pass
docs:
- 'This action will repair the firmware on the DUT, and '
- 'then reboot and wait for the DUT to again become '
- 'available. This action exists to wrap these component '
- actions into a single repair action.
conditions:
- 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
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: 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: Update fingerpprint FW from USB drive (ALWAYS_RUN) (time:'16m40s')
exec_name: cros_install_in_recovery_mode
exec_args:
- badblocks_mode:not
- run_custom_commands:true
- boot_timeout:480
- boot_interval:10
- boot_retry:1
- halt_timeout:120
- custom_command_allowed_to_fail:true
- custom_command_timeout:60
- custom_commands:flash_fp_mcu /opt/google/biod/fw/$(cros_config /fingerprint board)*.bin
- ignore_reboot_failure:true
- after_reboot_check:true
- after_reboot_timeout:150
- after_reboot_allow_use_servo_reset:true
docs:
- The goal to force update fingerprint fw when devices booted from USB-stick
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
dependencies:
- name: Set fw_wp_state to force_off
exec_name: servo_set
exec_args:
- command:fw_wp_state
- string_value:force_off
docs:
- Force disable wp of FW by servo.
dependencies:
- name: Setup has servo info
exec_name: dut_servo_host_present
- name: Install OS in recovery mode by booting from servo USB-drive (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 (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 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: Reset power using servo if booted from USB
exec_name: sample_pass
docs:
- 'This action will reboot the DUT using servo if device '
- 'is not booted after off/on performed as part of '
- re-imaging the device from USB device.
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 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.
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 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: Install OS in DEV mode with fresh image
exec_name: sample_pass
docs:
- Download fresh usb image and Install OS from it 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: 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: 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: Install OS in DEV mode, with force to DEV-mode with test firmware
exec_name: sample_pass
docs:
- Second attempt to install image 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
- 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: Flash EC (FW) by servo (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: Sleep 60 seconds (Allow to fail) (ALWAYS_RUN) (time:'1m10s')
exec_name: sample_sleep
exec_args:
- sleep:60
- 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: Audit storage (SMART only) (Allow to fail)
exec_name: cros_audit_storage_smart
docs:
- Quick audit internal storage by reading SMART data.
- The check updates storage state.
- The check is not critical as update storage state.
- name: Audit device storage using badblocks (Allow to fail) (time:'1h40m0s')
exec_name: cros_audit_storage_bad_blocks
exec_args:
- badblocks_mode:auto
- rw_badblocks_timeout:5400
- ro_badblocks_timeout:3600
docs:
- Use the badblocks command to audit the storage on the DUT