Fix active SSH connection restoration 20/37820/3
authorJozef Behran <jbehran@cisco.com>
Tue, 19 Apr 2016 14:33:59 +0000 (16:33 +0200)
committerVratko Polák <vrpolak@cisco.com>
Mon, 2 May 2016 12:16:25 +0000 (12:16 +0000)
Use a keyword teardown instead of a plain command to restore
the active SSH connection state. This prevents these keywords
from clobbering the active SSH connection when one of the
SSH commands fails.

Change-Id: I8001a4e4242df24c267e003dcdf7f24e7d6b4728
Signed-off-by: Jozef Behran <jbehran@cisco.com>
csit/libraries/KarafKeywords.robot

index 8c7bdc95eac5ba5618a28539873d1b87aac48937..a50dbbfb9566e09fe9fb0e1567b6434f345d72d3 100644 (file)
@@ -114,7 +114,7 @@ Open Controller Karaf Console On Background
     ${karaf_connection}=    SSHLibrary.Get Connection
     SSHLibrary.Login    ${KARAF_USER}    ${KARAF_PASSWORD}
     BuiltIn.Set Suite Variable    ${KarafKeywords__karaf_connection_index}    ${karaf_connection.index}
-    Restore Current SSH Connection From Index    ${current_ssh_connection.index}
+    [Teardown]    Restore Current SSH Connection From Index    ${current_ssh_connection.index}
 
 Configure Timeout For Karaf Console
     [Arguments]    ${timeout}
@@ -122,7 +122,7 @@ Configure Timeout For Karaf Console
     BuiltIn.Run Keyword If    ${KarafKeywords__karaf_connection_index} == -1    Fail    Need to connect to a Karaf Console first
     ${current_connection_index}=    SSHLibrary.Switch Connection    ${KarafKeywords__karaf_connection_index}
     SSHLibrary.Set_Client_Configuration    timeout=${timeout}
-    Restore Current SSH Connection From Index    ${current_connection_index}
+    [Teardown]    Restore Current SSH Connection From Index    ${current_connection_index}
 
 Execute Controller Karaf Command On Background
     [Arguments]    ${command}
@@ -132,10 +132,10 @@ Execute Controller Karaf Command On Background
     ${current_connection_index}=    SSHLibrary.Switch Connection    ${KarafKeywords__karaf_connection_index}
     ${status_write}    ${message_write}=    BuiltIn.Run Keyword And Ignore Error    SSHLibrary.Write    ${command}
     ${status_wait}    ${message_wait}=    BuiltIn.Run Keyword And Ignore Error    SSHLibrary.Read Until Prompt
-    Restore Current SSH Connection From Index    ${current_connection_index}
     BuiltIn.Run Keyword If    '${status_write}' != 'PASS'    BuiltIn.Fail    Failed to send the command: ${command}
     BuiltIn.Log    ${message_wait}
     BuiltIn.Run Keyword If    '${status_wait}' != 'PASS'    BuiltIn.Fail    Failed to see prompt after sending the command: ${command}
+    [Teardown]    Restore Current SSH Connection From Index    ${current_connection_index}
     [Return]    ${message_wait}
 
 Execute Controller Karaf Command With Retry On Background