Added new obmc boot tests

IPMI MC Reset Cold (off)
IPMI MC Reset Cold (run)
IPMI Std MC Reset Warm (off)
IPMI Std MC Reset Warm (run)
IPMI Std MC Reset Cold (off)
IPMI Std MC Reset Cold (run)

Notes:
- IPMIs = IPMI Standard (vs external)
- Due to DB logging field size, boot test names are limited to 30 chars.

Change-Id: Iaa117f20e75dc0d35c5bb50a48edb395b26eff69
Signed-off-by: Michael Walsh <micwalsh@us.ibm.com>
diff --git a/data/boot_lists/All b/data/boot_lists/All
index 21b7da2..65edf4a 100755
--- a/data/boot_lists/All
+++ b/data/boot_lists/All
@@ -32,6 +32,18 @@
 IPMI MC Reset Warm (run) (mfg)
 IPMI MC Reset Warm (off)
 IPMI MC Reset Warm (off) (mfg)
+IPMI MC Reset Cold (off)
+IPMI MC Reset Cold (off) (mfg)
+IPMI MC Reset Cold (run)
+IPMI MC Reset Cold (run) (mfg)
+IPMI Std MC Reset Warm (off)
+IPMI Std MC Reset Warm (off) (mfg)
+IPMI Std MC Reset Warm (run)
+IPMI Std MC Reset Warm (run) (mfg)
+IPMI Std MC Reset Cold (off)
+IPMI Std MC Reset Cold (off) (mfg)
+IPMI Std MC Reset Cold (run)
+IPMI Std MC Reset Cold (run) (mfg)
 IPMI Power Cycle
 IPMI Power Cycle (mfg)
 IPMI Power Reset
diff --git a/data/boot_lists/Manufacturing b/data/boot_lists/Manufacturing
index 8a8bdd0..f157ee5 100755
--- a/data/boot_lists/Manufacturing
+++ b/data/boot_lists/Manufacturing
@@ -14,6 +14,12 @@
 PDU AC Cycle (off) (mfg)
 IPMI MC Reset Warm (run) (mfg)
 IPMI MC Reset Warm (off) (mfg)
+IPMI MC Reset Cold (off) (mfg)
+IPMI MC Reset Cold (run) (mfg)
+IPMI Std MC Reset Warm (off) (mfg)
+IPMI Std MC Reset Warm (run) (mfg)
+IPMI Std MC Reset Cold (off) (mfg)
+IPMI Std MC Reset Cold (run) (mfg)
 IPMI Power Cycle (mfg)
 IPMI Power Reset (mfg)
 Auto Reboot (mfg)
diff --git a/data/boot_lists/OBMC_reboot b/data/boot_lists/OBMC_reboot
index ba2ed82..29637d1 100755
--- a/data/boot_lists/OBMC_reboot
+++ b/data/boot_lists/OBMC_reboot
@@ -16,3 +16,15 @@
 IPMI MC Reset Warm (run) (mfg)
 IPMI MC Reset Warm (off)
 IPMI MC Reset Warm (off) (mfg)
+IPMI MC Reset Cold (off)
+IPMI MC Reset Cold (off) (mfg)
+IPMI MC Reset Cold (run)
+IPMI MC Reset Cold (run) (mfg)
+IPMI Std MC Reset Warm (off)
+IPMI Std MC Reset Warm (off) (mfg)
+IPMI Std MC Reset Warm (run)
+IPMI Std MC Reset Warm (run) (mfg)
+IPMI Std MC Reset Cold (off)
+IPMI Std MC Reset Cold (off) (mfg)
+IPMI Std MC Reset Cold (run)
+IPMI Std MC Reset Cold (run) (mfg)
diff --git a/data/boot_table.json b/data/boot_table.json
index d9b3b31..6a4fc33 100644
--- a/data/boot_table.json
+++ b/data/boot_table.json
@@ -374,6 +374,147 @@
         "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$",
+            "boot_progress": "^FW Progress, Starting OS|OSStart$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "boot_progress": "^FW Progress, Starting OS|OSStart$",
+            "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$",
+            "boot_progress": "^Off|Unspecified$",
+            "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$",
+            "boot_progress": "^FW Progress, Starting OS|OSStart$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "boot_progress": "^FW Progress, Starting OS|OSStart$",
+            "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$",
+            "boot_progress": "^Off|Unspecified$",
+            "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$",
+            "boot_progress": "^FW Progress, Starting OS|OSStart$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "boot_progress": "^FW Progress, Starting OS|OSStart$",
+            "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$",
+            "boot_progress": "^Off|Unspecified$",
+            "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:
 
diff --git a/lib/boot_utils.robot b/lib/boot_utils.robot
index e5f1fd1..fd41737 100644
--- a/lib/boot_utils.robot
+++ b/lib/boot_utils.robot
@@ -425,6 +425,168 @@
     Run Key U  ${cmd_buf}
 
 
+IPMI MC Reset Cold (run)
+    [Documentation]  Do "IPMI MC Reset Cold (run)" boot test.
+    [Arguments]  ${stack_mode}=${stack_mode}  ${quiet}=${quiet}
+
+    # Description of argument(s):
+    # stack_mode                    If stack_mode is set to "skip", each test
+    #                               specified in the boot_stack is only
+    #                               performed if the machine is not already in
+    #                               the state that would normally result from
+    #                               running the given boot test.  Otherwise,
+    #                               the test is skipped.  If stack_mode is set
+    #                               to "normal", all tests from the boot_stack
+    #                               are performed.  "skip" mode is useful when
+    #                               you simply want the machine in a desired
+    #                               state.  The default value is the global
+    #                               value of "${stack_mode}"
+    # quiet                         If this parameter is set to ${1}, this
+    #                               keyword will print only essential
+    #                               information.  The default value is the
+    #                               global value of "${quiet}"
+
+    ${cmd_buf}  Catenate  OBMC Boot Test
+    ...  \ loc_boot_stack=IPMI MC Reset Cold (run)
+    ...  \ loc_stack_mode=${stack_mode} \ loc_quiet=${quiet}
+    Run Key U  ${cmd_buf}
+
+
+IPMI MC Reset Cold (off)
+    [Documentation]  Do "IPMI MC Reset Cold (off)" boot test.
+    [Arguments]  ${stack_mode}=${stack_mode}  ${quiet}=${quiet}
+
+    # Description of argument(s):
+    # stack_mode                    If stack_mode is set to "skip", each test
+    #                               specified in the boot_stack is only
+    #                               performed if the machine is not already in
+    #                               the state that would normally result from
+    #                               running the given boot test.  Otherwise,
+    #                               the test is skipped.  If stack_mode is set
+    #                               to "normal", all tests from the boot_stack
+    #                               are performed.  "skip" mode is useful when
+    #                               you simply want the machine in a desired
+    #                               state.  The default value is the global
+    #                               value of "${stack_mode}"
+    # quiet                         If this parameter is set to ${1}, this
+    #                               keyword will print only essential
+    #                               information.  The default value is the
+    #                               global value of "${quiet}"
+
+    ${cmd_buf}  Catenate  OBMC Boot Test
+    ...  \ loc_boot_stack=IPMI MC Reset Cold (off)
+    ...  \ loc_stack_mode=${stack_mode} \ loc_quiet=${quiet}
+    Run Key U  ${cmd_buf}
+
+
+IPMI Std MC Reset Warm (run)
+    [Documentation]  Do "IPMI Std MC Reset Warm (run)" boot test.
+    [Arguments]  ${stack_mode}=${stack_mode}  ${quiet}=${quiet}
+
+    # Description of argument(s):
+    # stack_mode                    If stack_mode is set to "skip", each test
+    #                               specified in the boot_stack is only
+    #                               performed if the machine is not already in
+    #                               the state that would normally result from
+    #                               running the given boot test.  Otherwise,
+    #                               the test is skipped.  If stack_mode is set
+    #                               to "normal", all tests from the boot_stack
+    #                               are performed.  "skip" mode is useful when
+    #                               you simply want the machine in a desired
+    #                               state.  The default value is the global
+    #                               value of "${stack_mode}"
+    # quiet                         If this parameter is set to ${1}, this
+    #                               keyword will print only essential
+    #                               information.  The default value is the
+    #                               global value of "${quiet}"
+
+    ${cmd_buf}  Catenate  OBMC Boot Test
+    ...  \ loc_boot_stack=IPMI Std MC Reset Warm (run)
+    ...  \ loc_stack_mode=${stack_mode} \ loc_quiet=${quiet}
+    Run Key U  ${cmd_buf}
+
+
+IPMI Std MC Reset Warm (off)
+    [Documentation]  Do "IPMI Std MC Reset Warm (off)" boot test.
+    [Arguments]  ${stack_mode}=${stack_mode}  ${quiet}=${quiet}
+
+    # Description of argument(s):
+    # stack_mode                    If stack_mode is set to "skip", each test
+    #                               specified in the boot_stack is only
+    #                               performed if the machine is not already in
+    #                               the state that would normally result from
+    #                               running the given boot test.  Otherwise,
+    #                               the test is skipped.  If stack_mode is set
+    #                               to "normal", all tests from the boot_stack
+    #                               are performed.  "skip" mode is useful when
+    #                               you simply want the machine in a desired
+    #                               state.  The default value is the global
+    #                               value of "${stack_mode}"
+    # quiet                         If this parameter is set to ${1}, this
+    #                               keyword will print only essential
+    #                               information.  The default value is the
+    #                               global value of "${quiet}"
+
+    ${cmd_buf}  Catenate  OBMC Boot Test
+    ...  \ loc_boot_stack=IPMI Std MC Reset Warm (off)
+    ...  \ loc_stack_mode=${stack_mode} \ loc_quiet=${quiet}
+    Run Key U  ${cmd_buf}
+
+
+IPMI Std MC Reset Cold (run)
+    [Documentation]  Do "IPMI Std MC Reset Cold (run)" boot test.
+    [Arguments]  ${stack_mode}=${stack_mode}  ${quiet}=${quiet}
+
+    # Description of argument(s):
+    # stack_mode                    If stack_mode is set to "skip", each test
+    #                               specified in the boot_stack is only
+    #                               performed if the machine is not already in
+    #                               the state that would normally result from
+    #                               running the given boot test.  Otherwise,
+    #                               the test is skipped.  If stack_mode is set
+    #                               to "normal", all tests from the boot_stack
+    #                               are performed.  "skip" mode is useful when
+    #                               you simply want the machine in a desired
+    #                               state.  The default value is the global
+    #                               value of "${stack_mode}"
+    # quiet                         If this parameter is set to ${1}, this
+    #                               keyword will print only essential
+    #                               information.  The default value is the
+    #                               global value of "${quiet}"
+
+    ${cmd_buf}  Catenate  OBMC Boot Test
+    ...  \ loc_boot_stack=IPMI Std MC Reset Cold (run)
+    ...  \ loc_stack_mode=${stack_mode} \ loc_quiet=${quiet}
+    Run Key U  ${cmd_buf}
+
+
+IPMI Std MC Reset Cold (off)
+    [Documentation]  Do "IPMI Std MC Reset Cold (off)" boot test.
+    [Arguments]  ${stack_mode}=${stack_mode}  ${quiet}=${quiet}
+
+    # Description of argument(s):
+    # stack_mode                    If stack_mode is set to "skip", each test
+    #                               specified in the boot_stack is only
+    #                               performed if the machine is not already in
+    #                               the state that would normally result from
+    #                               running the given boot test.  Otherwise,
+    #                               the test is skipped.  If stack_mode is set
+    #                               to "normal", all tests from the boot_stack
+    #                               are performed.  "skip" mode is useful when
+    #                               you simply want the machine in a desired
+    #                               state.  The default value is the global
+    #                               value of "${stack_mode}"
+    # quiet                         If this parameter is set to ${1}, this
+    #                               keyword will print only essential
+    #                               information.  The default value is the
+    #                               global value of "${quiet}"
+
+    ${cmd_buf}  Catenate  OBMC Boot Test
+    ...  \ loc_boot_stack=IPMI Std MC Reset Cold (off)
+    ...  \ loc_stack_mode=${stack_mode} \ loc_quiet=${quiet}
+    Run Key U  ${cmd_buf}
+
+
 IPMI Power Cycle
     [Documentation]  Do "IPMI Power Cycle" boot test.
     [Arguments]  ${stack_mode}=${stack_mode}  ${quiet}=${quiet}