Abort FFDC collection if BMC is not online

If Ping and SSH are alive then FFDC collection proceeds else abort
the log collection as it is going to fail anyway.

Resolves openbmc/openbmc-test-automation#390

Change-Id: Ic65f3e09088355c7043c43333bcb4b97e68c5de4
Signed-off-by: George Keishing <gkeishin@in.ibm.com>
diff --git a/lib/openbmc_ffdc.py b/lib/openbmc_ffdc.py
index 3568dc6..80a5c96 100644
--- a/lib/openbmc_ffdc.py
+++ b/lib/openbmc_ffdc.py
@@ -30,6 +30,22 @@
     ffdc_prefix    The prefix to be given to each FFDC file name generated.
     """
 
+    # Check if Ping and SSH connection is alive
+    OPENBMC_HOST = BuiltIn().get_variable_value("${OPENBMC_HOST}")
+    cmd_buf = ["Ping Host", OPENBMC_HOST]
+    grp.rpissuing_keyword(cmd_buf)
+    status_ping = BuiltIn().run_keyword_and_return_status(*cmd_buf)
+    grp.rprint_var(status_ping)
+    if status_ping == True:
+        status_ssh = \
+          BuiltIn().run_keyword_and_return_status("Open Connection And Log In")
+        grp.rprint_var(status_ssh)
+        if status_ssh != True:
+            grp.rprint_error("BMC is not communicating. \
+                              Aborting FFDC collection.\n")
+            BuiltIn().run_keyword_and_return_status("Close All Connections")
+            return
+
     grp.rprint_timen("Collecting FFDC.")
 
     # Note: Several subordinate functions like 'Get Test Dir and Name' and