Collect BMC FFDC using scp

Resolves openbmc/openbmc-test-automation#1768

Signed-off-by: Steven Sombar <ssombar@us.ibm.com>
Change-Id: I2357b55dda0b20123f4bcaf4488ca8c345fc502e
diff --git a/lib/openbmc_ffdc_list.py b/lib/openbmc_ffdc_list.py
index 7d9af03..4e62954 100755
--- a/lib/openbmc_ffdc_list.py
+++ b/lib/openbmc_ffdc_list.py
@@ -36,16 +36,16 @@
     'BMC FILES':
     {
         # File Name         Command
-        'BMC_flash_side': 'cat /sys/class/watchdog/watchdog1/bootstatus',
-        'BMC_proc_list': 'top -n 1 -b',
-        'BMC_proc_fd_active_list': 'ls -Al /proc/*/fd/',
-        'BMC_journalctl_nopager': 'journalctl --no-pager',
-        'BMC_journalctl_pretty': 'journalctl -o json-pretty',
-        'BMC_dmesg': 'dmesg',
-        'BMC_procinfo': 'cat /proc/cpuinfo',
-        'BMC_meminfo': 'cat /proc/meminfo',
-        'BMC_systemd': 'systemctl status --all',
-        'SOL': 'cat /var/log/obmc-console.log',
+        'BMC_flash_side': 'cat /sys/class/watchdog/watchdog1/bootstatus >/tmp/BMC_flash_side.txt 2>&1',
+        'BMC_proc_list': 'top -n 1 -b >/tmp/BMC_proc_list.txt 2>&1',
+        'BMC_proc_fd_active_list': 'ls -Al /proc/*/fd/ >/tmp/BMC_proc_fd_active_list.txt 2>&1',
+        'BMC_journalctl_nopager': 'journalctl --no-pager >/tmp/BMC_journalctl_nopager.txt 2>&1',
+        'BMC_journalctl_pretty': 'journalctl -o json-pretty >/tmp/BMC_journalctl_pretty.txt 2>&1',
+        'BMC_dmesg': 'dmesg >/tmp/BMC_dmesg.txt 2>&1',
+        'BMC_procinfo': 'cat /proc/cpuinfo >/tmp/BMC_procinfo.txt 2>&1',
+        'BMC_meminfo': 'cat /proc/meminfo >/tmp/BMC_meminfo.txt 2>&1',
+        'BMC_systemd': 'systemctl status --all >/tmp/BMC_systemd.txt 2>&1',
+        'SOL': 'cat /var/log/obmc-console.log >/tmp/SOL.txt 2>&1',
     },
 }
 # Add file name and correcponding command needed for all Linux distributions
diff --git a/lib/openbmc_ffdc_methods.robot b/lib/openbmc_ffdc_methods.robot
index 5759ab7..42b3a35 100755
--- a/lib/openbmc_ffdc_methods.robot
+++ b/lib/openbmc_ffdc_methods.robot
@@ -194,12 +194,18 @@
     # entries:
     #   entries[0]: BMC FILES
 
+    scp.Open Connection
+    ...  ${OPENBMC_HOST}  username=${OPENBMC_USERNAME}  password=${OPENBMC_PASSWORD}
+
     @{ffdc_file_list}=  Create List
     :FOR  ${index}  IN  @{entries}
     \    ${ffdc_file_sub_list}=  Create File and Write Data  ${index}
     \     ${ffdc_file_list}=  Smart Combine Lists  ${ffdc_file_list}
     ...       ${ffdc_file_sub_list}
 
+    BMC Execute Command  rm -rf /tmp/BMC_* /tmp/SOL.txt
+    scp.Close Connection
+
     [Return]  ${ffdc_file_list}
 
 
@@ -217,6 +223,7 @@
     \    ${logpath}=  Catenate  SEPARATOR=  ${LOG_PREFIX}  ${cmd[0]}.txt
     \    ${ffdc_file_sub_list}=  Execute Command and Write FFDC  ${cmd[0]}
     ...      ${cmd[1]}  ${logpath}
+    \    Run Key U  scp.Get File \ /tmp/${cmd[0]}.txt \ ${LOG_PREFIX}${cmd[0]}.txt
     \     ${ffdc_file_list}=  Smart Combine Lists  ${ffdc_file_list}
     ...       ${ffdc_file_sub_list}
 
@@ -317,8 +324,7 @@
     \    ${ffdc_file_sub_list}=  Execute Command and Write FFDC  ${cmd[0]}
     ...  ${cmd[1]}  ${logpath}  target=OS
     \    # scp it to the LOG_PREFIX ffdc directory.
-    \    Log To Console  scp.Get File /tmp/${cmd[0]}.txt ${LOG_PREFIX}${cmd[0]}.txt
-    \    scp.Get File  /tmp/${cmd[0]}.txt  ${LOG_PREFIX}${cmd[0]}.txt
+    \    Run Key U  scp.Get File \ /tmp/${cmd[0]}.txt \ ${LOG_PREFIX}${cmd[0]}.txt
     \    ${ffdc_file_list}=  Smart Combine Lists  ${ffdc_file_list}
     ...      ${ffdc_file_sub_list}
 
@@ -341,8 +347,7 @@
     \    ${logpath}=  Catenate  SEPARATOR=  ${LOG_PREFIX}  ${cmd[0]}.txt
     \    ${ffdc_file_sub_list}=  Execute Command and Write FFDC  ${cmd[0]}
     ...      ${cmd[1]}  ${logpath}  target=OS
-    \    Log To Console  scp.Get File /tmp/${cmd[0]}.txt ${LOG_PREFIX}${cmd[0]}.txt
-    \    scp.Get File  /tmp/${cmd[0]}.txt  ${LOG_PREFIX}${cmd[0]}.txt
+    \    Run Key U  scp.Get File \ /tmp/${cmd[0]}.txt \ ${LOG_PREFIX}${cmd[0]}.txt
     \    ${ffdc_file_list}=  Smart Combine Lists  ${ffdc_file_list}
     ...      ${ffdc_file_sub_list}