odlmicro scale tests 24/92924/71
authorVenkatrangan Govindarajan <gvrangan@gmail.com>
Tue, 6 Oct 2020 11:55:37 +0000 (17:25 +0530)
committerVenkatrangan Govindarajan <gvrangan@gmail.com>
Thu, 24 Dec 2020 11:28:24 +0000 (16:58 +0530)
Signed-off-by: Venkatrangan Govindarajan <gvrangan@gmail.com>
Change-Id: I5132f2e1a794934e3877c20a320d9a91187ff094

12 files changed:
csit/libraries/KarafKeywords.robot
csit/libraries/NetconfKeywords.robot
csit/libraries/ODLMicroKeywords.robot
csit/libraries/RestPerfClient.robot
csit/suites/netconf/ready/netconfready.robot
csit/suites/netconf/restperfclient/performance.robot
csit/suites/netconf/scale/getmulti.robot
csit/suites/netconf/scale/getsingle.robot
csit/suites/netconf/scale/max_devices.robot
csit/suites/odlmicro/initial_setup.robot
csit/testplans/odlmicro-netconf-devices-scale.txt [new file with mode: 0644]
csit/testplans/odlmicro-netconf-general-scale.txt [new file with mode: 0644]

index 0463c81577d0098c2ef4eabe5f8aef0c4a0f8da3..756fba6fd9420189eb05c20b110fc32ab0671814 100644 (file)
@@ -21,6 +21,7 @@ Setup_Karaf_Keywords
     [Arguments]    ${http_timeout}=${DEFAULT_TIMEOUT_HTTP}
     [Documentation]    Initialize ClusterManagement. Open ssh karaf connections to each ODL.
     ClusterManagement.ClusterManagement_Setup    http_timeout=${http_timeout}
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ClusterManagement.Run_Bash_Command_On_List_Or_All    iptables -I INPUT -p tcp --dport ${KARAF_SHELL_PORT} -j ACCEPT; iptables-save
     BuiltIn.Comment    First connections to Karaf console may fail, so WUKS is used. TODO: Track as a Bug.
     FOR    ${index}    IN    @{ClusterManagement__member_index_list}
@@ -30,6 +31,7 @@ Setup_Karaf_Keywords
 Verify_Feature_Is_Installed
     [Arguments]    ${feature_name}    ${controller}=${ODL_SYSTEM_IP}    ${karaf_port}=${KARAF_SHELL_PORT}
     [Documentation]    Will Succeed if the given ${feature_name} is found in the output of "feature:list -i"
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${output} =    Issue_Command_On_Karaf_Console    feature:list -i | grep ${feature_name}    ${controller}    ${karaf_port}
     BuiltIn.Should_Contain    ${output}    ${feature_name}
     [Return]    ${output}
@@ -38,6 +40,7 @@ Issue_Command_On_Karaf_Console
     [Arguments]    ${cmd}    ${controller}=${ODL_SYSTEM_IP}    ${karaf_port}=${KARAF_SHELL_PORT}    ${timeout}=10    ${loglevel}=INFO
     [Documentation]    Will execute the given ${cmd} by ssh'ing to the karaf console running on ${controller}
     ...    Note that this keyword will open&close new SSH connection, without switching back to previously current session.
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     SSHLibrary.Open_Connection    ${controller}    port=${karaf_port}    prompt=${KARAF_PROMPT_LOGIN}    timeout=${timeout}
     SSHLibrary.Login    ${KARAF_USER}    ${KARAF_PASSWORD}    loglevel=${loglevel}
     SSHLibrary.Write    ${cmd}
@@ -50,6 +53,7 @@ Issue_Command_On_Karaf_Console
 Safe_Issue_Command_On_Karaf_Console
     [Arguments]    ${cmd}    ${controller}=${ODL_SYSTEM_IP}    ${karaf_port}=${KARAF_SHELL_PORT}    ${timeout}=10    ${loglevel}=INFO
     [Documentation]    Run Issue_Command_On_Karaf_Console but restore previous connection afterwards.
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     BuiltIn.Run_Keyword_And_Return    SSHKeywords.Run_Keyword_Preserve_Connection    Issue_Command_On_Karaf_Console    ${cmd}    ${controller}    ${karaf_port}    ${timeout}
     ...    ${loglevel}
 
@@ -57,6 +61,7 @@ Check For Elements On Karaf Command Output Message
     [Arguments]    ${cmd}    ${elements}    ${controller}=${ODL_SYSTEM_IP}    ${karaf_port}=${KARAF_SHELL_PORT}    ${timeout}=5
     [Documentation]    Will execute the command using Issue Command On Karaf Console then check for the given elements
     ...    in the command output message
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${output}    Issue_Command_On_Karaf_Console    ${cmd}    ${controller}    ${karaf_port}    ${timeout}
     FOR    ${i}    IN    @{elements}
         BuiltIn.Should_Contain    ${output}    ${i}
@@ -65,6 +70,7 @@ Check For Elements On Karaf Command Output Message
 Verify_Bundle_Is_Installed
     [Arguments]    ${bundle_name}    ${controller}=${ODL_SYSTEM_IP}    ${karaf_port}=${KARAF_SHELL_PORT}
     [Documentation]    Will succeed if the given ${bundle name} is present in the output of "bundle:list -s "
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${output} =    Issue_Command_On_Karaf_Console    bundle:list -s | grep ${bundle_name}    ${controller}    ${karaf_port}
     BuiltIn.Should_Contain    ${output}    ${bundle_name}
     [Return]    ${output}
@@ -72,6 +78,7 @@ Verify_Bundle_Is_Installed
 Verify_Bundle_Is_Not_Installed
     [Arguments]    ${bundle_name}    ${controller}=${ODL_SYSTEM_IP}    ${karaf_port}=${KARAF_SHELL_PORT}
     [Documentation]    Will succeed if the given ${bundle_name} is NOT found in the output of "bundle:list -s"
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${output} =    Issue_Command_On_Karaf_Console    bundle:list -i | grep ${bundle_name}    ${controller}    ${karaf_port}
     BuiltIn.Should_Not_Contain    ${output}    ${bundle_name}
     [Return]    ${output}
@@ -79,6 +86,7 @@ Verify_Bundle_Is_Not_Installed
 Check_Karaf_Log_Has_Messages
     [Arguments]    ${filter_string}    @{message_list}
     [Documentation]    Will succeed if the @{messages} are found in \ the output of "log:display"
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${output} =    Issue_Command_On_Karaf_Console    log:display | grep ${filter_string}
     FOR    ${message}    IN    @{message_list}
         BuiltIn.Should_Contain    ${output}    ${message}
@@ -89,6 +97,7 @@ Check_Karaf_Log_Message_Count
     [Arguments]    ${message}    ${count}    ${use_console}=False
     [Documentation]    Verifies that the ${message} exists specified number of times in
     ...    karaf console log or Karaf Log Folder based on the arg ${use_console}.
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     Run Keyword If    ${use_console} == False    Check_Karaf_Log_File    ${message}    ${count}
     ...    ELSE    Check_Karaf_Log_From_Console    ${message}    ${count}
 
@@ -96,6 +105,7 @@ Check_Karaf_Log_From_Console
     [Arguments]    ${message}    ${count}
     [Documentation]    Verifies that the ${message} exists in the Karaf Console log:display and checks
     ...    that it appears ${count} number of times
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${output} =    Issue_Command_On_Karaf_Console    log:display | grep ${message} | wc -l
     ${line} =    Get Line    ${output}    0
     ${stripped} =    Strip String    ${line}
@@ -105,12 +115,14 @@ Check_Karaf_Log_File
     [Arguments]    ${message}    ${count}
     [Documentation]    Verifies that the ${message} exists in the Karaf Log Folder and checks
     ...    that it appears ${count} number of times
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${output}    Run Command On Controller    ${ODL_SYSTEM_IP}    grep -o ${message} ${WORKSPACE}/${BUNDLEFOLDER}/data/log/* | wc -l
     Should Be Equal As Strings    ${output}    ${count}
 
 Install_A_Feature
     [Arguments]    ${feature_name}    ${controller}=${ODL_SYSTEM_IP}    ${karaf_port}=${KARAF_SHELL_PORT}    ${timeout}=180
     [Documentation]    Will Install the given ${feature_name}
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     BuiltIn.Log    ${timeout}
     ${output} =    Issue_Command_On_Karaf_Console    feature:install ${feature_name}    ${controller}    ${karaf_port}    ${timeout}
     BuiltIn.Log    ${output}
@@ -119,6 +131,7 @@ Install_A_Feature
 Install_A_Feature_Using_Active_Connection
     [Arguments]    ${feature_name}
     [Documentation]    Will Install the given ${feature_name} using active connection
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${cmd} =    BuiltIn.Set_Variable    feature:install ${feature_name}
     SSHLibrary.Write    ${cmd}
     ${output}    SSHLibrary.Read_Until_Regexp    ${KARAF_PROMPT}
@@ -128,6 +141,7 @@ Install_A_Feature_Using_Active_Connection
 Uninstall_A_Feature
     [Arguments]    ${feature_name}    ${controller}=${ODL_SYSTEM_IP}    ${karaf_port}=${KARAF_SHELL_PORT}    ${timeout}=180
     [Documentation]    Will UnInstall the given ${feature_name}
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${output} =    Issue_Command_On_Karaf_Console    feature:uninstall ${feature_name}    ${controller}    ${karaf_port}    ${timeout}
     BuiltIn.Log    ${output}
     [Return]    ${output}
@@ -138,6 +152,7 @@ Open_Controller_Karaf_Console_On_Background
     ...    close the previous connection. In any case create a new connection
     ...    to karaf console for ${member_index}, set correct prompt set and login to karaf console.
     ...    Store connection index for ${member_index} and restore the previous active connection.
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${current_ssh_connection_object}=    SSHLibrary.Get_Connection
     BuiltIn.Log    ${connection_index_dict}
     BuiltIn.Log    ${member_index}
@@ -150,11 +165,12 @@ Open_Controller_Karaf_Console_On_Background
     ${karaf_connection_object} =    SSHLibrary.Get_Connection
     Collections.Set_To_Dictionary    ${connection_index_dict}    ${member_index}    ${karaf_connection_object.index}
     SSHLibrary.Login    ${KARAF_USER}    ${KARAF_PASSWORD}    loglevel=${loglevel}
-    [Teardown]    SSHKeywords.Restore_Current_Ssh_Connection_From_Index    ${current_ssh_connection_object.index}
+    [Teardown]    Run Keyword If    '${IS_KARAF_APPL}' == 'TRUE'    SSHKeywords.Restore_Current_Ssh_Connection_From_Index    ${current_ssh_connection_object.index}
 
 Open_Controller_Karaf_Console_With_Timeout
     [Arguments]    ${member_index}=${1}    ${timeout}=3s
     [Documentation]    Open new connection to karaf console for member index with specified timeout.
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     BuiltIn.Log    ${member_index}
     ${odl_ip} =    ClusterManagement.Resolve_IP_Address_For_Member    ${member_index}
     SSHLibrary.Open_Connection    ${odl_ip}    port=${KARAF_SHELL_PORT}    prompt=${KARAF_PROMPT_LOGIN}    timeout=${timeout}
@@ -163,6 +179,7 @@ Open_Controller_Karaf_Console_With_Timeout
 Configure_Timeout_For_Karaf_Console
     [Arguments]    ${timeout}    ${member_index_list}=${EMPTY}
     [Documentation]    Configure a different timeout for each Karaf console.
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${index_list} =    ClusterManagement.List_Indices_Or_All    given_list=${member_index_list}
     ${current_connection_object} =    SSHLibrary.Get_Connection
     FOR    ${member_index}    IN    @{index_list}    # usually: 1, 2, 3
@@ -170,11 +187,12 @@ Configure_Timeout_For_Karaf_Console
         SSHLibrary.Switch_Connection    ${karaf_connection_index}
         SSHLibrary.Set_Client_Configuration    timeout=${timeout}
     END
-    [Teardown]    SSHKeywords.Restore_Current_Ssh_Connection_From_Index    ${current_connection_object.index}
+    [Teardown]    Run Keyword If    '${IS_KARAF_APPL}' == 'True'    SSHKeywords.Restore_Current_Ssh_Connection_From_Index    ${current_connection_object.index}
 
 Execute_Controller_Karaf_Command_On_Background
     [Arguments]    ${command}    ${member_index}=${1}
     [Documentation]    Send command to karaf without affecting current SSH connection. Read, log and return response.
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${karaf_connection_index} =    Collections.Get_From_Dictionary    ${connection_index_dict}    ${member_index}
     ${current_connection_index} =    SSHLibrary.Switch_Connection    ${karaf_connection_index}
     ${status_write}    ${message_write} =    BuiltIn.Run_Keyword_And_Ignore_Error    SSHLibrary.Write    ${command}
@@ -182,12 +200,13 @@ Execute_Controller_Karaf_Command_On_Background
     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]    SSHKeywords.Restore_Current_Ssh_Connection_From_Index    ${current_connection_index}
+    [Teardown]    Run Keyword If    '${IS_KARAF_APPL}' == 'True'    SSHKeywords.Restore_Current_Ssh_Connection_From_Index    ${current_connection_index}
     [Return]    ${message_wait}
 
 Execute_Controller_Karaf_Command_With_Retry_On_Background
     [Arguments]    ${command}    ${member_index}=${1}
     [Documentation]    Attemp to send command to karaf for ${member_index}, if fail then open connection and try again.
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${status}    ${message} =    BuiltIn.Run_Keyword_And_Ignore_Error    Execute_Controller_Karaf_Command_On_Background    ${command}    ${member_index}
     BuiltIn.Return_From_Keyword_If    '${status}' == 'PASS'    ${message}
     # TODO: Verify this does not leak connections indices.
@@ -199,6 +218,7 @@ Log_Message_To_Controller_Karaf
     [Arguments]    ${message}    ${member_index_list}=${EMPTY}    ${tolerate_failure}=True
     [Documentation]    Make sure this resource is initialized. Send a message into the controller's karaf log file on every node listed (or all).
     ...    By default, failure while processing a node is silently ignored, unless ${tolerate_failure} is False.
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${index_list} =    ClusterManagement.List_Indices_Or_All    given_list=${member_index_list}
     FOR    ${index}    IN    @{index_list}    # usually: 1, 2, 3.
         ${status}    ${output} =    BuiltIn.Run_Keyword_And_Ignore_Error    Execute_Controller_Karaf_Command_With_Retry_On_Background    log:log "ROBOT MESSAGE: ${message}"    member_index=${index}
@@ -208,17 +228,20 @@ Log_Message_To_Controller_Karaf
 Log_Test_Suite_Start_To_Controller_Karaf
     [Arguments]    ${member_index_list}=${EMPTY}
     [Documentation]    Log suite name to karaf log, useful in suite setup.
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     Log_Message_To_Controller_Karaf    Starting suite ${SUITE_SOURCE}    ${member_index_list}
 
 Log_Testcase_Start_To_Controller_Karaf
     [Arguments]    ${member_index_list}=${EMPTY}
     [Documentation]    Log test case name to karaf log, useful in test case setup.
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     Log_Message_To_Controller_Karaf    Starting test ${SUITE_NAME}.${TEST_NAME}    ${member_index_list}
 
 Set_Bgpcep_Log_Levels
     [Arguments]    ${bgpcep_level}=${DEFAULT_BGPCEP_LOG_LEVEL}    ${protocol_level}=${DEFAULT_PROTOCOL_LOG_LEVEL}    ${member_index_list}=${EMPTY}
     [Documentation]    Assuming OCKCOB was used, set logging level on bgpcep and protocol loggers without affecting current SSH session.
     # FIXME: Move to appropriate Resource
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${index_list} =    ClusterManagement.List_Indices_Or_All    given_list=${member_index_list}
     FOR    ${index}    IN    @{index_list}    # usually: 1, 2, 3.
         Execute_Controller_Karaf_Command_On_Background    log:set ${bgpcep_level} org.opendaylight.bgpcep    member_index=${index}
@@ -232,6 +255,7 @@ Get Karaf Log Lines From Test Start
     ...    contains ${test_name}. This is useful if your test cases are marking karaf.log with a message indicating when
     ...    that test case has started; such that you can easily pull out any extra log messsages to parse/log/etc in the
     ...    test logic itself. For example, you can grab all ERRORS that occur during your test case.
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${output} =    Run Command On Controller    ${ip}    ${cmd}    ${user}    ${password}    ${prompt}
     @{log_lines} =    Split String    ${output}    ${\n}
     [Return]    ${log_lines}
@@ -240,6 +264,7 @@ Fail If Exceptions Found During Test
     [Arguments]    ${test_name}    ${log_file}=${KARAF_LOG}    ${fail}=False
     [Documentation]    Create a failure if an Exception is found in the karaf.log that has not been whitelisted.
     ...    Will work for single controller jobs as well as 3node cluster jobs
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     FOR    ${i}    IN RANGE    1    ${NUM_ODL_SYSTEM} + 1
         ${cmd} =    Set Variable    sed '1,/ROBOT MESSAGE: Starting test ${test_name}/d' ${log_file}
         ${output} =    Get Karaf Log Lines From Test Start    ${ODL_SYSTEM_${i}_IP}    ${test_name}    ${cmd}
@@ -253,6 +278,7 @@ Fail If Exceptions Found During Test
 Log And Fail Exceptions
     [Arguments]    ${exlist}    ${listlength}
     [Documentation]    Print the list of failed exceptions and fail the test
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     Collections.Log List    ${exlist}
     ${exstr} =    BuiltIn.Catenate    ${exlist}
     BuiltIn.Fail    New exceptions found: ${listlength}\n${exstr}
@@ -264,6 +290,7 @@ Get Karaf Log Type From Test Start
     ...    contains ${test_name}. This is useful if your test cases are marking karaf.log with a message indicating when
     ...    that test case has started; such that you can easily pull out any extra log messsages to parse/log/etc in the
     ...    test logic itself. For example, you can grab all ERRORS that occur during your test case.
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${cmd}    Set Variable    sed '1,/ROBOT MESSAGE: Starting test ${test_name}/d' ${log_file} | grep '${type}'
     ${output}    Run Command On Controller    ${ip}    ${cmd}    ${user}    ${password}    ${prompt}
     [Return]    ${output}
@@ -273,6 +300,7 @@ Get Karaf Log Types From Test Start
     ...    ${log_file}=${KARAF_LOG}
     [Documentation]    A wrapper keyword for "Get Karaf Log Type From Test Start" so that we can parse for multiple types
     ...    of log messages. For example, we can grab all messages of type WARN and ERROR
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     FOR    ${type}    IN    @{types}
         Get Karaf Log Type From Test Start    ${ip}    ${test_name}    ${type}    ${user}    ${password}
         ...    ${prompt}    ${log_file}
@@ -282,6 +310,7 @@ Get Karaf Log Events From Test Start
     [Arguments]    ${test_name}    ${user}=${ODL_SYSTEM_USER}    ${password}=${ODL_SYSTEM_PASSWORD}    ${prompt}=${ODL_SYSTEM_PROMPT}
     [Documentation]    Wrapper for the wrapper "Get Karaf Log Types From Test Start" so that we can easily loop over
     ...    any number of controllers to analyze karaf.log for ERROR, WARN and Exception log messages
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${log_types} =    Create List    ERROR    WARN    Exception
     FOR    ${i}    IN RANGE    1    ${NUM_ODL_SYSTEM} + 1
         Get Karaf Log Types From Test Start    ${ODL_SYSTEM_${i}_IP}    ${test_name}    ${log_types}
@@ -291,6 +320,7 @@ Fail If Exceptions Found During Test Deprecated
     [Arguments]    ${test_name}    ${exceptions_white_list}=${EMPTY}
     [Documentation]    Create a failure if an Exception is found in the karaf.log. Will work for single controller jobs
     ...    as well as 3node cluster jobs
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     FOR    ${i}    IN RANGE    1    ${NUM_ODL_SYSTEM} + 1
         Verify Exception Logging In Controller    ${ODL_SYSTEM_${i}_IP}    ${test_name}    ${exceptions_white_list}
     END
@@ -299,6 +329,7 @@ Verify Exception Logging In Controller
     [Arguments]    ${controller_ip}    ${test_name}    ${exceptions_white_list}
     [Documentation]    Local keyword to make it easier to loop through N controllers to pull Exceptions from the
     ...    karaf.log file and validate with "Check Against White List"
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     ${exceptions}=    Get Karaf Log Type From Test Start    ${controller_ip}    ${test_name}    Exception
     @{log_lines}=    Split String    ${exceptions}    ${\n}
     ${num_log_entries}    Get Length    ${log_lines}
@@ -314,6 +345,7 @@ Check Against White List
     ...    marking a failure. In the case that no exceptions are found, the caller could end up passing a single
     ...    empty line as that is what is returned when a grep on karaf.log has no match, so we can safely return
     ...    in that case as well.
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     Return From Keyword If    "${exception_line}" == ""
     FOR    ${exception}    IN    @{exceptions_white_list}
         Return From Keyword If    "${exception}" in "${exception_line}"    Exceptions found, but whitelisted: ${\n}${exception_line}${\n}
@@ -328,6 +360,7 @@ Wait_For_Karaf_Log
     # however, the consumers of this keyword were breaking after that change.    Initial theory is that a previous
     # keyword used before this "Wait For Karaf Log" keyword was closing the karaf console connection, so the
     # "Flexible SSH Login" keyword from the patch above (45596) was failing.
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     BuiltIn.Log    Waiting for '${message}' in karaf log
     SSHLibrary.Open_Connection    ${ODL_SYSTEM_IP}    port=${KARAF_SHELL_PORT}    prompt=${KARAF_PROMPT_LOGIN}    timeout=${timeout}
     SSHLibrary.Login    ${KARAF_USER}    ${KARAF_PASSWORD}    loglevel=${loglevel}
@@ -340,17 +373,20 @@ Restart_Bundle
     [Arguments]    ${bundle_id}
     [Documentation]    Restarts bundle passed as argument. Note this operation is only for testing and not production environments
     # TODO: prepare this for cluster environment and multiple controllers
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     Execute_Controller_Karaf_Command_With_Retry_On_Background    bundle:restart $(bundle:id '${bundle_id}')
 
 Restart_Karaf
     [Documentation]    Restarts Karaf and polls log to detect when Karaf is up and running again
     # TODO: prepare this for cluster environment and multiple controllers
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     Execute_Controller_Karaf_Command_With_Retry_On_Background    log:clear
     Execute_Controller_Karaf_Command_With_Retry_On_Background    shutdown -r -f
     BuiltIn.Run_Keyword_And_Return_Status    BuiltIn.Wait_Until_Keyword_Succeeds    240s    60s    Wait_For_Karaf_Log    Shiro environment initialized in
 
 Restart_Jetty
     [Documentation]    Restarts jetty bundle (to reload certificates or key/truststore information)
+    Return From Keyword If    '${IS_KARAF_APPL}' == 'False'    Not A Karaf App
     Execute_Controller_Karaf_Command_With_Retry_On_Background    log:clear
     Restart_Bundle    OPS4J Pax Web - Jetty
     Wait_For_Karaf_Log    Started jetty-default
index 6310c3adb070363173fec9427b27c8487e20d747..392b53b88978e00e6028422802ab9127abca6dca 100644 (file)
@@ -267,7 +267,7 @@ NetconfKeywords__Perform_Operation_With_Checking_On_Next_Device
     BuiltIn.Set_Suite_Variable    ${current_port}    ${next}
 
 Perform_Operation_On_Each_Device
-    [Arguments]    ${operation}    ${count}=${NetconfKeywords__testtool_device_count}    ${timeout}=30m    ${log_response}=True
+    [Arguments]    ${operation}    ${count}=${NetconfKeywords__testtool_device_count}    ${timeout}=45m    ${log_response}=True
     ${current_Date}=    DateTime.Get_Current_Date
     ${deadline_Date}=    DateTime.Add_Time_To_Date    ${current_Date}    ${timeout}
     BuiltIn.Set_Suite_Variable    ${current_port}    ${BASE_NETCONF_DEVICE_PORT}
index abff333fe77be67c04f97f60646cd974cc164128..f1a72222508b0e8133057ab159487f1b8894e76c 100644 (file)
@@ -64,7 +64,9 @@ Download Netconf Testtool
     SSHLibrary.Set_Client_Configuration    prompt=${TOOLS_SYSTEM_PROMPT}
     SSHKeywords.Flexible_SSH_Login    ${TOOLS_SYSTEM_USER}    ${TOOLS_SYSTEM_PASSWORD}    delay=4s
     ${file_name} =    NexusKeywords.Deploy_Test_Tool    netconf    netconf-testtool    build_version=${NETCONF_TESTTOOL_VERSION}    build_location=org/opendaylight/netconf
-    BuiltIn.Set_Suite_Variable    ${NETCONF_FILENAME}    ${filename}
+    Set Global Variable    ${NETCONF_FILENAME}    ${filename}
+    ${file_name} =    NexusKeywords.Deploy_Test_Tool    netconf    netconf-testtool    rest-perf-client    build_version=${NETCONF_TESTTOOL_VERSION}    build_location=org/opendaylight/netconf
+    Set Global Variable    ${RESTPERF_FILENAME}    ${filename}
 
 Run Netconf Testtool
     [Arguments]    ${ssh_alias}=Netconf_System
index 14dbbb9e9d753ae0dc0da4fb319b8bed46883020..5be9901fea79ff877f7df7c91efb1208828d454e 100644 (file)
@@ -39,6 +39,7 @@ ${RestPerfClient__restperfclientlog}    ${EMPTY}
 
 *** Keywords ***
 Setup_Restperfclient
+    [Arguments]    ${build_version}=${EMPTY}    ${build_location}=${EMPTY}
     [Documentation]    Deploy RestPerfClient and determine the Java command to use to call it.
     ...    Open a SSH connection through which the RestPerfClient will be
     ...    invoked, deploy RestPerfClient and the data files it needs to do
@@ -47,8 +48,9 @@ Setup_Restperfclient
     ${connection}=    SSHKeywords.Open_Connection_To_Tools_System
     BuiltIn.Set_Suite_Variable    ${RestPerfClient__restperfclient}    ${connection}
     SSHLibrary.Put_File    ${CURDIR}/../variables/netconf/RestPerfClient/request1.json
-    ${filename}=    NexusKeywords.Deploy_Test_Tool    netconf    netconf-testtool    rest-perf-client
-    ${prefix}=    NexusKeywords.Compose_Full_Java_Command    -Xmx1G -jar ${filename}
+    ${filename}=    Run Keyword If    '${IS_KARAF_APPL}' == 'False'    Set Variable    ${RESTPERF_FILENAME}
+    ...    ELSE    NexusKeywords.Deploy_Test_Tool    netconf    netconf-testtool    rest-perf-client
+    ${prefix}=    NexusKeywords.Compose_Full_Java_Command    -Xmx4G -jar ${filename}
     BuiltIn.Set_Suite_Variable    ${RestPerfClient__restperfclient_invocation_command_prefix}    ${prefix}
 
 RestPerfClient__Kill
index 782dfb884f590b2c1556d0b05a2987716fa2e77e..7b0f2e85d90b4796af270ce27749960ecc3b4307 100644 (file)
@@ -78,6 +78,7 @@ ${NETCONF_FOLDER}    ${CURDIR}/../../../variables/netconf/device
 
 *** Test Cases ***
 Check_Whether_Netconf_Topology_Is_Ready
+    [Tags]    ODLMICRO_IGN
     [Documentation]    Checks netconf readiness.
     BuiltIn.Pass_Execution_If    ${USE_NETCONF_CONNECTOR}==${True}    Netconf connector is used. Next testcases do their job in this case.
     BuiltIn.Wait_Until_Keyword_Succeeds    10x    1s    Check_Netconf_Topology_Ready
@@ -122,6 +123,7 @@ Check_Whether_Netconf_Can_Pretty_Print
     Check_Netconf_Up_And_Running    ?prettyPrint=true
 
 Wait_For_MDSAL
+    [Tags]    ODLMICRO_IGN
     [Documentation]    Wait for the MDSAL feature to become online
     ${status}    ${message}=    BuiltIn.Run_Keyword_And_Ignore_Error    KarafKeywords.Verify_Feature_Is_Installed    odl-netconf-mdsal
     BuiltIn.Run_Keyword_If    '${status}' == 'FAIL'    BuiltIn.Pass_Execution    The 'odl-netconf-mdsal' feature is not installed so no need to wait for it.
index a7b46ac21d7adfced480dd7db627af3a77205648..6c26e305b7267ba52a6c24ad71454da144062285 100644 (file)
@@ -44,7 +44,8 @@ Start_Testtool
     [Documentation]    Deploy and start test tool, then wait for all its devices to become online.
     # Start test tool
     SSHLibrary.Switch_Connection    ${testtool}
-    NetconfKeywords.Install_And_Start_Testtool    device-count=1    schemas=${CURDIR}/../../../variables/netconf/CRUD/schemas    debug=false
+    Run Keyword If    '${IS_KARAF_APPL}' == 'True'    NetconfKeywords.Install_And_Start_Testtool    device-count=1    schemas=${CURDIR}/../../../variables/netconf/CRUD/schemas    debug=false
+    ...    ELSE    NetconfKeywords.Start_Testtool    ${NETCONF_FILENAME}    device-count=1    schemas=${CURDIR}/../../../variables/netconf/CRUD/schemas    debug=false
 
 Configure_Device_On_Netconf
     [Documentation]    Configure the testtool device on Netconf connector.
@@ -91,7 +92,8 @@ Setup_Everything
     # Setup resources used by the suite.
     SetupUtils.Setup_Utils_For_Setup_And_Teardown
     NetconfKeywords.Setup_Netconf_Keywords
-    RestPerfClient.Setup_Restperfclient
+    Run Keyword If    '${IS_KARAF_APPL}' == 'False'    RestPerfClient.Setup_Restperfclient    build_version=${NETCONF_TESTTOOL_VERSION}    build_location=org/opendaylight/netconf
+    ...    ELSE    RestPerfClient.Setup_Restperfclient
     # Connect to the tools system (testtool)
     ${testtool}=    SSHKeywords.Open_Connection_To_Tools_System
     BuiltIn.Set_Suite_Variable    ${testtool}    ${testtool}
index ad83d0fdc29c80a8b353ae72ce16544f26be72a3..60f6a2043fca2c6f6db12772b245bec6f97ded22 100644 (file)
@@ -37,7 +37,8 @@ ${base_port}      17830
 *** Test Cases ***
 Start_Test_Tool
     [Documentation]    Deploy and start test tool, then wait for all its devices to become online.
-    NetconfKeywords.Install_And_Start_Testtool    device-count=${DEVICE_COUNT}
+    Run Keyword If    '${IS_KARAF_APPL}' == 'True'    NetconfKeywords.Install_And_Start_Testtool    device-count=${DEVICE_COUNT}
+    ...    ELSE    NetconfKeywords.Start_Testtool    ${NETCONF_FILENAME}    device-count=${DEVICE_COUNT}
 
 Configure_Devices_On_Netconf
     [Documentation]    Make requests to configure the testtool devices.
@@ -106,5 +107,6 @@ Read_Python_Tool_Operation_Result
     ${ellapsed}=    Collections.Get_From_List    ${test}    3
     BuiltIn.Log    DATA REQUEST RESULT: Device=${number} StartTime=${start} StopTime=${stop} EllapsedTime=${ellapsed}
     ${data}=    Collections.Get_From_List    ${test}    4
-    ${expected}=    BuiltIn.Set_Variable    '<data xmlns="${ODL_NETCONF_NAMESPACE}"></data>'
+    ${expected}=    Run Keyword If    '${IS_KARAF_APPL}' == 'True'    BuiltIn.Set_Variable    '<data xmlns="${ODL_NETCONF_NAMESPACE}"></data>'
+    ...    ELSE    Set Variable    '<data xmlns="${ODL_NETCONF_NAMESPACE}"/>'
     BuiltIn.Should_Be_Equal_As_Strings    ${data}    ${expected}
index b23f455c3359721668d32b4fdfaab596a25f8200..1402f66a89ec512800b6f2d5dde8af499f7e2cfa 100644 (file)
@@ -31,7 +31,8 @@ ${device_type}    full-uri-device
 *** Test Cases ***
 Start_Test_Tool
     [Documentation]    Deploy and start test tool, then wait for all its devices to become online.
-    NetconfKeywords.Install_And_Start_Testtool    device-count=${DEVICE_COUNT}
+    Run Keyword If    '${IS_KARAF_APPL}' == 'True'    NetconfKeywords.Install_And_Start_Testtool    device-count=${DEVICE_COUNT}
+    ...    ELSE    NetconfKeywords.Start_Testtool    ${NETCONF_FILENAME}    device-count=${DEVICE_COUNT}
 
 Configure_Devices_Onto_Netconf
     [Documentation]    Make requests to configure the testtool devices.
@@ -75,4 +76,6 @@ Check_Device_Data
     KarafKeywords.Log_Message_To_Controller_Karaf    Getting data from device ${current_name}
     ${data}=    Utils.Get_Data_From_URI    config    network-topology:network-topology/topology/topology-netconf/node/${current_name}/yang-ext:mount    headers=${ACCEPT_XML}
     KarafKeywords.Log_Message_To_Controller_Karaf    Got data from device ${current_name}
-    BuiltIn.Should_Be_Equal    ${data}    <data xmlns="${ODL_NETCONF_NAMESPACE}"></data>
+    ${expected}=    Run Keyword If    '${IS_KARAF_APPL}' == 'True'    BuiltIn.Set_Variable    '<data xmlns="${ODL_NETCONF_NAMESPACE}"></data>'
+    ...    ELSE    Set Variable    '<data xmlns="${ODL_NETCONF_NAMESPACE}"/>'
+    Should Be Equal As Strings    '${data}'    ${expected}
index 2e1d082829e4b05caed8fbcf5fcec019059d309b..31b244e5072a2c731f92c763f254ede85bb8e363 100644 (file)
@@ -15,7 +15,7 @@ Suite Teardown    Teardown_Everything
 Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
 Library           Collections
 Library           String
-Library           SSHLibrary    timeout=10s
+Library           SSHLibrary    timeout=1000s
 Resource          ../../../libraries/CheckJVMResource.robot
 Resource          ../../../libraries/KarafKeywords.robot
 Resource          ../../../libraries/NetconfKeywords.robot
@@ -25,12 +25,12 @@ Resource          ../../../variables/Variables.robot
 
 *** Variables ***
 ${INIT_DEVICE_COUNT}    250
-${MAX_DEVICE_COUNT}    5000
-${DEVICE_INCREMENT}    250
+${MAX_DEVICE_COUNT}    100000
+${DEVICE_INCREMENT}    5000
 ${DEVICE_NAME_BASE}    netconf-scaling-device
 ${DEVICE_TYPE}    full-uri-device
 ${BASE_PORT}      17830
-${NUM_WORKERS}    10
+${NUM_WORKERS}    500
 ${TIMEOUT_FACTOR}    3
 ${MIN_CONNECT_TIMEOUT}    300
 ${DEVICES_RESULT_FILE}    devices.csv
@@ -48,13 +48,15 @@ Find Max Netconf Devices
     ${increment} =    BuiltIn.Convert to Integer    ${DEVICE_INCREMENT}
     ${schema_dir} =    Run Keyword If    "${SCHEMA_MODEL}" == "juniper"    Get Juniper Device Schemas
     ...    ELSE    Set Variable    none
-    Run Keyword And Ignore Error    CheckJVMResource.Get JVM Memory
+    ${INSTALL_TESTTOOL} =    Set Variable If    '${IS_KARAF_APPL}' == 'False'    False    True
+    ${TESTTOOL_EXECUTABLE} =    Set Variable If    '${IS_KARAF_APPL}' == 'False'    ${NETCONF_FILENAME}    ${EMPTY}
+    ${SCHEMAS} =    Set Variable If    '${IS_KARAF_APPL}' == 'False'    ${CURDIR}/../../../variables/netconf/CRUD/schemas    ${schema_dir}
     FOR    ${devices}    IN RANGE    ${start}    ${stop+1}    ${increment}
         ${timeout} =    BuiltIn.Evaluate    ${devices}*${TIMEOUT_FACTOR}
         ${timeout} =    Set Variable If    ${timeout} > ${MIN_CONNECT_TIMEOUT}    ${timeout}    ${MIN_CONNECT_TIMEOUT}
         Log To Console    Starting Iteration with ${devices} devices
         Run Keyword If    "${INSTALL_TESTTOOL}"=="True"    NetconfKeywords.Install_And_Start_Testtool    debug=false    schemas=${schema_dir}    device-count=${devices}
-        ...    ELSE    NetconfKeywords.Start_Testtool    ${TESTTOOL_EXECUTABLE}    debug=false    schemas=${schema_dir}    device-count=${devices}
+        ...    ELSE    NetconfKeywords.Start_Testtool    ${TESTTOOL_EXECUTABLE}    debug=false    schemas=${SCHEMAS}    device-count=${devices}
         ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    NetconfKeywords.Configure_Device    timeout=${timeout}
         Exit For Loop If    '${status}' == 'FAIL'
         ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    NetconfKeywords.Wait_Connected    timeout=${timeout}    log_response=False
@@ -131,8 +133,9 @@ Read_Python_Tool_Operation_Result
     ${ellapsed}=    Collections.Get_From_List    ${test}    3
     BuiltIn.Log    DATA REQUEST RESULT: Device=${number} StartTime=${start} StopTime=${stop} EllapsedTime=${ellapsed}
     ${data}=    Collections.Get_From_List    ${test}    4
-    ${expected}=    BuiltIn.Set_Variable    '<data xmlns="${ODL_NETCONF_NAMESPACE}"></data>'
-    BuiltIn.Should_Be_Equal_As_Strings    ${data}    ${expected}
+    ${expected}=    Run Keyword If    '${IS_KARAF_APPL}' == 'False'    BuiltIn.Set_Variable    '<data xmlns="${ODL_NETCONF_NAMESPACE}"/>'
+    ...    ELSE    BuiltIn.Set_Variable    '<data xmlns="${ODL_NETCONF_NAMESPACE}"></data>'
+    Should Be Equal As Strings    ${data}    ${expected}
 
 Check_Device_Deconfigured
     [Arguments]    ${current_name}    ${log_response}=True
index e3a46bffa0576e5dad6d8dd3815387ab1c6abb4e..03957cc8d483a2d0eb7ae2a6cf71da390512ec4e 100644 (file)
@@ -35,7 +35,6 @@ Download and Run ODL Micro
 Download and Run Netconf Testtool
     [Documentation]    Download and Run Netconf Testtool in Tools VM.
     Download Netconf Testtool
-    Run Netconf Testtool
 
 *** Keywords ***
 Teardown
diff --git a/csit/testplans/odlmicro-netconf-devices-scale.txt b/csit/testplans/odlmicro-netconf-devices-scale.txt
new file mode 100644 (file)
index 0000000..97ac02e
--- /dev/null
@@ -0,0 +1,6 @@
+
+# Place the suites in run order:
+integration/test/csit/suites/odlmicro/initial_setup.robot
+integration/test/csit/suites/netconf/ready
+integration/test/csit/suites/netconf/scale/max_devices.robot
+
diff --git a/csit/testplans/odlmicro-netconf-general-scale.txt b/csit/testplans/odlmicro-netconf-general-scale.txt
new file mode 100644 (file)
index 0000000..6b837dd
--- /dev/null
@@ -0,0 +1,6 @@
+# Place the suites in run order:
+integration/test/csit/suites/odlmicro/initial_setup.robot
+integration/test/csit/suites/netconf/ready
+integration/test/csit/suites/netconf/restperfclient/performance.robot
+integration/test/csit/suites/netconf/scale/getmulti.robot
+integration/test/csit/suites/netconf/scale/getsingle.robot