Use larger juniper schema in max device scale test
[integration/test.git] / csit / suites / netconf / scale / max_devices.robot
index 7d85edd921216b9d1385fe4a15861bb53363d00c..07d066dfb43d9e49b40332ee7857cb48258d5c65 100644 (file)
@@ -31,7 +31,7 @@ ${DEVICE_NAME_BASE}    netconf-scaling-device
 ${DEVICE_TYPE}    full-uri-device
 ${BASE_PORT}      17830
 ${NUM_WORKERS}    10
-${TIMEOUT_FACTOR}    5
+${TIMEOUT_FACTOR}    2
 ${DEVICES_RESULT_FILE}    devices.csv
 ${INSTALL_TESTTOOL}    True
 ${TESTTOOL_EXECUTABLE}    ${EMPTY}
@@ -45,28 +45,31 @@ Find Max Netconf Devices
     ${start} =    BuiltIn.Convert to Integer    ${INIT_DEVICE_COUNT}
     ${stop} =    BuiltIn.Convert to Integer    ${MAX_DEVICE_COUNT}
     ${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
-    : FOR    ${devices}    IN RANGE    ${start}    ${stop+1}    ${increment}
-    \    ${timeout} =    BuiltIn.Evaluate    ${devices}*${TIMEOUT_FACTOR}
-    \    Log To Console    Starting Iteration with ${devices} devices
-    \    Run Keyword If    "${INSTALL_TESTTOOL}"=="True"    NetconfKeywords.Install_And_Start_Testtool    device-count=${devices}
-    \    ...    ELSE    NetconfKeywords.Start_Testtool    ${TESTTOOL_EXECUTABLE}    device-count=${devices}
-    \    ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    Configure_Device    timeout=${timeout}
-    \    Exit For Loop If    '${status}' == 'FAIL'
-    \    ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    Wait_Connected    timeout=${timeout}
-    \    Exit For Loop If    '${status}' == 'FAIL'
-    \    ${status}    ${result} =    Run Keyword And Ignore Error    Issue_Requests_On_Devices    ${TOOLS_SYSTEM_IP}    ${devices}
-    \    ...    ${NUM_WORKERS}
-    \    Exit For Loop If    '${status}' == 'FAIL'
-    \    ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    Wait_Connected    timeout=${timeout}
-    \    Exit For Loop If    '${status}' == 'FAIL'
-    \    ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    Deconfigure_Device    timeout=${timeout}
-    \    Exit For Loop If    '${status}' == 'FAIL'
-    \    ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    Check_Device_Deconfigured    timeout=${timeout}
-    \    Exit For Loop If    '${status}' == 'FAIL'
-    \    ${maximum_devices} =    Set Variable    ${devices}
-    \    Run Keyword And Ignore Error    CheckJVMResource.Get JVM Memory
-    \    NetconfKeywords.Stop_Testtool
+    FOR    ${devices}    IN RANGE    ${start}    ${stop+1}    ${increment}
+        ${timeout} =    BuiltIn.Evaluate    ${devices}*${TIMEOUT_FACTOR}
+        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}
+        ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    Configure_Device    timeout=${timeout}
+        Exit For Loop If    '${status}' == 'FAIL'
+        ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    Wait_Connected    timeout=${timeout}
+        Exit For Loop If    '${status}' == 'FAIL'
+        ${status}    ${result} =    Run Keyword And Ignore Error    Issue_Requests_On_Devices    ${TOOLS_SYSTEM_IP}    ${devices}
+        ...    ${NUM_WORKERS}
+        Exit For Loop If    '${status}' == 'FAIL'
+        ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    Wait_Connected    timeout=${timeout}
+        Exit For Loop If    '${status}' == 'FAIL'
+        ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    Deconfigure_Device    timeout=${timeout}
+        Exit For Loop If    '${status}' == 'FAIL'
+        ${status}    ${result} =    Run Keyword And Ignore Error    NetconfKeywords.Perform_Operation_On_Each_Device    Check_Device_Deconfigured    timeout=${timeout}
+        Exit For Loop If    '${status}' == 'FAIL'
+        ${maximum_devices} =    Set Variable    ${devices}
+        Run Keyword And Ignore Error    CheckJVMResource.Get JVM Memory
+        NetconfKeywords.Stop_Testtool
+    END
     [Teardown]    Run Keywords    NetconfKeywords.Stop_Testtool
     ...    AND    Collect_Data_Points    ${maximum_devices}
     ...    AND    Run Keyword And Ignore Error    CheckJVMResource.Get JVM Memory
@@ -85,8 +88,9 @@ Issue_Requests_On_Devices
     SSHLibrary.Open_Connection    ${client_ip}
     SSHKeywords.Flexible_Mininet_Login
     SSHLibrary.Write    python getter.py --odladdress=${ODL_SYSTEM_IP} --count=${expected_count} --name=${device_name_base} --workers=${worker_count}
-    : FOR    ${number}    IN RANGE    1    ${expected_count}+1
-    \    Read_Python_Tool_Operation_Result    ${number}
+    FOR    ${number}    IN RANGE    1    ${expected_count}+1
+        Read_Python_Tool_Operation_Result    ${number}
+    END
     SSHLibrary.Read_Until_Prompt
     SSHLibrary.Close_Connection
     SSHKeywords.Restore Current SSH Connection From Index    ${current_ssh_connection.index}
@@ -152,3 +156,11 @@ Check_Device_Deconfigured
     KarafKeywords.Log_Message_To_Controller_Karaf    Waiting for device ${current_name} to disappear
     NetconfKeywords.Wait_Device_Fully_Removed    ${current_name}    period=0.5s    timeout=120s
     KarafKeywords.Log_Message_To_Controller_Karaf    Device ${current_name} removed
+
+Get Juniper Device Schemas
+    OperatingSystem.Run    git clone https://github.com/Juniper/yang.git
+    OperatingSystem.Run    mkdir /tmp/junos_19.4R1
+    OperatingSystem.Run    find yang/19.4/19.4R1/junos -type f -name '*yang' -exec cp {} /tmp/junos_19.4R1/ \\;
+    OperatingSystem.Run    cp yang/19.4/19.4R1/common/* /tmp/junos_19.4R1/
+    OperatingSystem.List Directory    /tmp/junos_19.4R1/
+    [Return]    /tmp/junos_19.4R1