New x86 boot table and required changes

Changes:
    - New boot table for x86 OpenBMC build which doesn't support
      BootProgress.
    - Initialize state.py boot_progress to make it optional if it
      fails in state URI enumeration.

Note: We don't have x86 setup to test the changes.

To test use bellow option in robot CLI

     -v BOOT_TABLE_PATH:data/boot_table_x86.json

Change-Id: I74e334ab30e4b2e35f2520870f6a002d9b5bf6b8
Signed-off-by: George Keishing <gkeishin@in.ibm.com>
diff --git a/data/boot_table_x86.json b/data/boot_table_x86.json
new file mode 100644
index 0000000..412a5cf
--- /dev/null
+++ b/data/boot_table_x86.json
@@ -0,0 +1,768 @@
+{
+    # Power on boot types:
+
+    # Initiate a power on using the REST API interface.
+    "REST Power On": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "Initiate Host Boot  wait=${0}",
+        "lib_file_path": "state_manager.robot"
+    },
+    # Initiate a power on using the Redfish API interface.
+    "Redfish Power On": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "Redfish Power Operation  On",
+        "lib_file_path": "bmc_redfish_utils.robot"
+    },
+    # Initiate a power on using the IPMI interface.
+    "IPMI Power On": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "Run External IPMI Standard Command  power on -N 10 -R 1",
+        "lib_file_path": "ipmi_client.robot"
+    },
+
+    # Power off boot types:
+
+    # Initiate a power off using the REST API interface.
+    "REST Power Off": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$",
+            "os_ping": "^0$",
+            "os_login": "^0$",
+            "os_run_cmd": "^0$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "Initiate Host PowerOff  wait=${0}",
+        "lib_file_path": "state_manager.robot"
+    },
+    # Initiate a power off using the Redfish API interface.
+    "Redfish Power Off": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$",
+            "os_ping": "^0$",
+            "os_login": "^0$",
+            "os_run_cmd": "^0$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "Redfish Power Operation  GracefulShutdown",
+        "lib_file_path": "bmc_redfish_utils.robot"
+    },
+    # Initiate a hard power off using the REST API interface.
+    "REST Hard Power Off": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$",
+            "os_ping": "^0$",
+            "os_login": "^0$",
+            "os_run_cmd": "^0$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "Hard Power Off  wait=${0}",
+        "lib_file_path": "state_manager.robot"
+    },
+    # Initiate a hard power off using the Redfish API interface.
+    "Redfish Hard Power Off": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$",
+            "os_ping": "^0$",
+            "os_login": "^0$",
+            "os_run_cmd": "^0$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "Redfish Power Operation  ForceOff",
+        "lib_file_path": "bmc_redfish_utils.robot"
+    },
+    # Initiate a power off using the IPMI interface.
+    "IPMI Power Off": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$",
+            "os_ping": "^0$",
+            "os_login": "^0$",
+            "os_run_cmd": "^0$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "Run External IPMI Standard Command  power off -N 10 -R 1",
+        "lib_file_path": "ipmi_client.robot"
+    },
+    # Initiate a power soft using the IPMI interface.
+    "IPMI Power Soft": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$",
+            "os_ping": "^0$",
+            "os_login": "^0$",
+            "os_run_cmd": "^0$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "Run External IPMI Standard Command  power soft -N 10 -R 1",
+        "lib_file_path": "ipmi_client.robot"
+    },
+    # Run a "shutdown" command on the OS_HOST.
+    "Host Power Off": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$",
+            "os_ping": "^0$",
+            "os_login": "^0$",
+            "os_run_cmd": "^0$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "utils.Initiate OS Host Power Off",
+        "lib_file_path": "utils.robot"
+    },
+
+    # OBMC re-boot boot types:
+
+    # APOR - Auto Power On Restart - Note that this is functionally equivalent
+    # to 'PDU AC Cycle (run)'.
+    "APOR": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Set Global Variable  ${PDU_TYPE}  pdu ; Set Global Variable  ${PDU_IP}  ${PDU_HOST} ; PDU Power Cycle",
+        "lib_file_path": "pdu/pdu.robot:pdu/synaccess.robot"
+    },
+    # Run a "reboot" on the OBMC while host is running.
+    "OBMC Reboot (run)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "BMC Execute Command  /sbin/reboot  fork=${1}"
+    },
+    # Run a REST "reboot" on the OBMC while host is running.
+    "REST OBMC Reboot (run)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Initiate BMC Reboot  wait=${0}",
+        "lib_file_path": "state_manager.robot"
+    },
+    # Run a Redfish "reboot" on the OBMC while host is running.
+    "Redfish OBMC Reboot (run)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Redfish BMC Reset Operation",
+        "lib_file_path": "bmc_redfish_utils.robot"
+    },
+    # Run a "reboot" on the OBMC while host is off.
+    "OBMC Reboot (off)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^Off$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "BMC Execute Command  /sbin/reboot  fork=${1}"
+    },
+    # Run a "reboot" on the OBMC while host is off.
+    "REST OBMC Reboot (off)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^Off$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Initiate BMC Reboot  wait=${0}",
+        "lib_file_path": "state_manager.robot"
+    },
+    # Run a "reboot" on the OBMC while host is off.
+    "Redfish OBMC Reboot (off)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^Off$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Redfish BMC Reset Operation",
+        "lib_file_path": "bmc_redfish_utils.robot"
+    },
+    # Cycle AC via the PDU while host is off.
+    "PDU AC Cycle (run)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Set Global Variable  ${PDU_TYPE}  pdu ; Set Global Variable  ${PDU_IP}  ${PDU_HOST} ; PDU Power Cycle",
+        "lib_file_path": "pdu/pdu.robot:pdu/synaccess.robot"
+    },
+    # Cycle AC via the PDU while host is off.
+    "PDU AC Cycle (off)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^Off$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Set Global Variable  ${PDU_TYPE}  pdu ; Set Global Variable  ${PDU_IP}  ${PDU_HOST} ; PDU Power Cycle",
+        "lib_file_path": "pdu/pdu.robot:pdu/synaccess.robot"
+    },
+    # Initiate an mc reset warm using the IPMI interface while chassis is
+    # powered on.
+    "IPMI MC Reset Warm (run)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Run External IPMI Standard Command  mc reset warm -N 10 -R 1 ; Printn",
+        "lib_file_path": "ipmi_client.robot:gen_print.py"
+    },
+    # Initiate an mc reset warm using the IPMI interface while chassis is
+    # powered off.
+    "IPMI MC Reset Warm (off)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^Off$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Run External IPMI Standard Command  mc reset warm -N 10 -R 1 ; Printn",
+        "lib_file_path": "ipmi_client.robot:gen_print.py"
+    },
+    # Initiate an mc reset cold using the IPMI interface while chassis is
+    # powered on.
+    "IPMI MC Reset Cold (run)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Run External IPMI Standard Command  mc reset cold -N 10 -R 1 ; Printn",
+        "lib_file_path": "ipmi_client.robot:gen_print.py"
+    },
+    # Initiate an mc reset cold using the IPMI interface while chassis is
+    # powered off.
+    "IPMI MC Reset Cold (off)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^Off$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Run External IPMI Standard Command  mc reset cold -N 10 -R 1 ; Printn",
+        "lib_file_path": "ipmi_client.robot:gen_print.py"
+    },
+    # Initiate an mc reset warm using the IPMI standard interface while chassis
+    # is powered on.
+    "IPMI Std MC Reset Warm (run)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Run IPMI Standard Command  mc reset warm -N 10 -R 1 ; Printn",
+        "lib_file_path": "ipmi_client.robot:gen_print.py"
+    },
+    # Initiate an mc reset warm using the IPMI standard interface while chassis
+    # is powered off.
+    "IPMI Std MC Reset Warm (off)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^Off$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Run IPMI Standard Command  mc reset warm -N 10 -R 1 ; Printn",
+        "lib_file_path": "ipmi_client.robot:gen_print.py"
+    },
+    # Initiate an mc reset cold using the IPMI standard interface while chassis
+    # is powered on.
+    "IPMI Std MC Reset Cold (run)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Run IPMI Standard Command  mc reset cold -N 10 -R 1 ; Printn",
+        "lib_file_path": "ipmi_client.robot:gen_print.py"
+    },
+    # Initiate an mc reset cold using the IPMI standard interface while chassis
+    # is powered off.
+    "IPMI Std MC Reset Cold (off)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^Off$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Run IPMI Standard Command  mc reset cold -N 10 -R 1 ; Printn",
+        "lib_file_path": "ipmi_client.robot:gen_print.py"
+    },
+
+    # Host OS re-boot boot types:
+
+    # Initiate a power cycle using the IPMI interface (equivalent to off/on).
+    "IPMI Power Cycle": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "Run External IPMI Standard Command  power cycle -N 10 -R 1",
+        "lib_file_path": "ipmi_client.robot"
+    },
+    # Initiate a power reset using the IPMI interface (equivalent to off/on).
+    # Functionally equivalent to "IPMI Power Cycle".
+    "IPMI Power Reset": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "Run External IPMI Standard Command  power reset -N 10 -R 1",
+        "lib_file_path": "ipmi_client.robot"
+    },
+    # Do an auto reboot by setting auto reboot to "yes" and going to quiesce state.
+    "Auto Reboot": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "utils.Initiate Auto Reboot  1000",
+        "lib_file_path": "utils.robot"
+    },
+    # Run a "reboot" command on the OS_HOST.
+    "Host Reboot": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "utils.Initiate OS Host Reboot",
+        "lib_file_path": "utils.robot"
+    },
+    # Initiate host reboot using the Redfish API interface (GracefulRestart).
+    "RF SYS GracefulRestart": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "Redfish Power Operation  GracefulRestart",
+        "lib_file_path": "bmc_redfish_utils.robot"
+    },
+    # Initiate host reboot using the Redfish API interface (ForceRestart).
+    "RF SYS ForceRestart": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "Redfish Power Operation  ForceRestart",
+        "lib_file_path": "bmc_redfish_utils.robot"
+    },
+    # OPAL Terminate Immediate.
+    "OPAL TI": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 0,
+        "method_type": "keyword",
+        "method": "Inject OPAL TI",
+        "lib_file_path": "open_power_utils.robot"
+    }
+}
diff --git a/lib/state.py b/lib/state.py
index d13e50a..02eb2bd 100755
--- a/lib/state.py
+++ b/lib/state.py
@@ -576,7 +576,10 @@
     requested_chassis = ''
     bmc = ''
     requested_bmc = ''
-    boot_progress = ''
+    # BootProgress state will get populated when state logic enumerates the
+    # state URI. This is to prevent state dictionary  boot_progress value
+    # getting empty when the BootProgress is NOT found, making it optional.
+    boot_progress = 'NA'
     operating_system = ''
     host = ''
     requested_host = ''