*** Settings ***
Documentation  This file includes all the varaibles used by obmc_boot_test.robot

*** Variables ***
# Alias of the master connection to the BMC
${master_alias}  master

# The count of the boot we're currently doing - used in the FOR loop.
${BOOT_COUNT}  ${0}

# The status of the last boots that finished
${BOOT_STATUS}  ${EMPTY}

# A list of the last 10 boots that have been performed (see Log Last Ten)
@{LAST_TEN}

# A list of keywords of valid boots that can be performed
@{VALID_POWER_ON}  BMC Power On
@{VALID_POWER_OFF}  BMC Power Off
#@{VALID_ACCYCLE}
#@{VALID_REBOOT}

# The master list of all boots possible, for reference. (Currently not in use).
@{MASTER_BOOT_LIST}  BMC Power On  BMC Power Off

# The list of available boots - Modifying this will limit what boots can be done.
# This list is also used by: Setup Run Table, Log Run Table
@{AVAIL_BOOTS}  BMC Power On  BMC Power Off
