Refactor performance suites to use keyword timeouts
[integration/test.git] / csit / libraries / RestPerfClient.robot
index 5a1ca5878ebb85a306bbdca003ee5b371444f3a5..0fa35ecbaf49a5f5c1a204613102be03b2ddf6eb 100644 (file)
@@ -23,8 +23,10 @@ Documentation     RestPerfClient handling singleton resource.
 ...               and currently all suites using this use also NetconfKeywords so this
 ...               was postponed. Workaround for the problem: Initialize NexusKeywords
 ...               manually before initializing this resource.
+Library           DateTime
 Library           SSHLibrary
 Resource          ${CURDIR}/NexusKeywords.robot
+Resource          ${CURDIR}/SetupUtils.robot
 Resource          ${CURDIR}/SSHKeywords.robot
 Resource          ${CURDIR}/Utils.robot
 
@@ -45,6 +47,11 @@ Setup_Restperfclient
     ${prefix}=    NexusKeywords.Compose_Full_Java_Command    -Xmx1G -XX:MaxPermSize=256M -jar ${filename}
     BuiltIn.Set_Suite_Variable    ${RestPerfClient__restperfclient_invocation_command_prefix}    ${prefix}
 
+Restperfclient__Invoke_With_Timeout
+    [Arguments]    ${timeout}    ${command}
+    [Timeout]    ${timeout}
+    Execute_Command_Passes    ${command} >${RestPerfClient__restperfclientlog} 2>&1
+
 Invoke_Restperfclient
     [Arguments]    ${timeout}    ${url}    ${testcase}=${EMPTY}    ${ip}=${ODL_SYSTEM_IP}    ${port}=${RESTCONFPORT}    ${count}=${REQUEST_COUNT}
     ...    ${async}=false    ${user}=${ODL_RESTCONF_USER}    ${password}=${ODL_RESTCONF_PASSWORD}
@@ -57,27 +64,26 @@ Invoke_Restperfclient
     ${options}=    BuiltIn.Set_Variable    --ip ${ip} --port ${port} --edits ${count}
     ${options}=    BuiltIn.Set_Variable    ${options} --edit-content request1.json --async-requests ${async}
     ${options}=    BuiltIn.Set_Variable    ${options} --auth ${user} ${password}
-    ${options}=    BuiltIn.Set_Variable    ${options} --destination ${url}
+    ${timeout_in_minutes}=    Utils.Convert_To_Minutes    ${timeout}
+    ${options}=    BuiltIn.Set_Variable    ${options} --timeout ${timeout_in_minutes} --destination ${url}
     ${command}=    BuiltIn.Set_Variable    ${RestPerfClient__restperfclient_invocation_command_prefix} ${options}
     BuiltIn.Log    Running restperfclient: ${command}
     SSHLibrary.Switch_Connection    ${RestPerfClient__restperfclient}
     SSHLibrary.Set_Client_Configuration    timeout=${timeout}
-    Set_Known_Bug_Id    5413
-    Execute_Command_Passes    ${command} >${RestPerfClient__restperfclientlog} 2>&1
-    Set_Unknown_Bug_Id
+    ${keyword_timeout}=    DateTime.Add_Time_To_Time    ${timeout}    2m    result_format=compact
+    SetupUtils.Set_Known_Bug_Id    5413
+    Restperfclient__Invoke_With_Timeout    ${keyword_timeout}    ${command}
+    SetupUtils.Set_Unknown_Bug_Id
     ${result}=    Grep_Restperfclient_Log    FINISHED. Execution time:
     BuiltIn.Should_Not_Be_Equal    '${result}'    ''
 
 Grep_Restperfclient_Log
-    [Documentation]    Search for the specified string in the log file produced by latest invocation of RestPerfClient
     [Arguments]    ${pattern}
+    [Documentation]    Search for the specified string in the log file produced by latest invocation of RestPerfClient
     BuiltIn.Should_Not_Be_Equal    '${RestPerfClient__restperfclientlog}'    ''
     ${result}=    SSHLibrary.Execute_Command    grep '${pattern}' ${RestPerfClient__restperfclientlog}
     [Return]    ${result}
 
-Get_Current_Log_Name
-    [Return]    ${RestPerfClient__restperfclientlog}
-
 Collect_From_Restperfclient
     [Documentation]    Collect useful data produced by restperfclient
     BuiltIn.Should_Not_Be_Equal    '${RestPerfClient__restperfclientlog}'    ''