Use RFC8040 URL for DAEXIM tests
[integration/test.git] / csit / libraries / NetconfKeywords.robot
index 810476c26310374b4652c3c1d620f5c10ec219ff..868d09f6e07d4e82e241e5da8da9ae1e861cfcd3 100644 (file)
@@ -26,13 +26,14 @@ Resource          RemoteBash.robot
 
 *** Variables ***
 ${MAX_HEAP}       1G
-${TESTTOOL_DEFAULT_JAVA_OPTIONS}    -Xmx${MAX_HEAP}
+${TESTTOOL_DEFAULT_JAVA_OPTIONS}    -Xmx${MAX_HEAP} -Djava.security.egd=file:/dev/./urandom
 ${DIRECTORY_WITH_DEVICE_TEMPLATES}    ${CURDIR}/../variables/netconf/device
 ${FIRST_TESTTOOL_PORT}    17830
 ${BASE_NETCONF_DEVICE_PORT}    17830
 ${DEVICE_NAME_BASE}    netconf-scaling-device
 ${TESTTOOL_BOOT_TIMEOUT}    60s
 ${ENABLE_NETCONF_TEST_TIMEOUT}    ${ENABLE_GLOBAL_TEST_DEADLINES}
+${SSE_CFG_FILE}    ${WORKSPACE}/${BUNDLEFOLDER}/etc/org.opendaylight.restconf.nb.rfc8040.cfg
 
 *** Keywords ***
 Setup_NetconfKeywords
@@ -66,7 +67,7 @@ Configure_Device_And_Verify
     [Documentation]    Operation for configuring the device in the Netconf subsystem and connecting to it.
     Configure_Device    ${current_name}    ${log_response}
     KarafKeywords.Log_Message_To_Controller_Karaf    Waiting for device ${current_name} to connect
-    Wait_Device_Connected    ${current_name}    period=0.5s
+    Wait_Device_Connected    ${current_name}    period=0.5s    log_response=${log_response}
     KarafKeywords.Log_Message_To_Controller_Karaf    Device ${current_name} connected
 
 Count_Netconf_Connectors_For_Device
@@ -86,7 +87,7 @@ Wait_Connected
     [Arguments]    ${current_name}    ${log_response}=True
     [Documentation]    Operation for waiting until the device is connected.
     KarafKeywords.Log_Message_To_Controller_Karaf    Waiting for device ${current_name} to connect
-    Wait_Device_Connected    ${current_name}    period=0.5s    timeout=300s
+    Wait_Device_Connected    ${current_name}    period=0.5s    timeout=300s    log_response=${log_response}
     KarafKeywords.Log_Message_To_Controller_Karaf    Device ${current_name} connected
 
 Check_Device_Has_No_Netconf_Connector
@@ -103,9 +104,7 @@ Check_Device_Completely_Gone
     [Documentation]    Check that the specified device has no Netconf connectors nor associated data.
     Check_Device_Has_No_Netconf_Connector    ${device_name}    session=${session}
     ${uri} =    Restconf.Generate URI    network-topology:network-topology    config    topology=topology-netconf    node=${device_name}
-    ${status}    ${response}=    BuiltIn.Run_Keyword_And_Ignore_Error    TemplatedRequests.Get_As_Xml_From_Uri    ${uri}    session=${session}    log_response=${log_response}
-    BuiltIn.Should_Be_Equal_As_Strings    ${status}    FAIL
-    BuiltIn.Should_Contain    ${response}    ${DELETED_STATUS_CODES}
+    Utils.No Content From URI    ${session}    ${uri}
 
 Check_Device_Connected
     [Arguments]    ${device_name}    ${session}=default    ${log_response}=True
@@ -124,7 +123,7 @@ Remove_Device_From_Netconf
     [Arguments]    ${device_name}    ${session}=default    ${location}=location
     [Documentation]    Tell Netconf to deconfigure the specified device
     ${device_type}=    Collections.Pop_From_Dictionary    ${NetconfKeywords__mounted_device_types}    ${device_name}
-    ${template_as_string}=    BuiltIn.Set_Variable    {'DEVICE_NAME': '${device_name}'}
+    ${template_as_string}=    BuiltIn.Create_Dictionary    DEVICE_NAME=${device_name}
     TemplatedRequests.Delete_Templated    ${DIRECTORY_WITH_DEVICE_TEMPLATES}${/}${device_type}    ${template_as_string}    session=${session}    location=${location}
 
 Deconfigure_Device
@@ -210,15 +209,15 @@ NetconfKeywords__Wait_Device_Is_Up_And_Running
 
 Install_And_Start_Testtool
     [Arguments]    ${device-count}=10    ${debug}=true    ${schemas}=none    ${rpc_config}=none    ${tool_options}=${EMPTY}    ${java_options}=${TESTTOOL_DEFAULT_JAVA_OPTIONS}
-    ...    ${mdsal}=true
+    ...    ${mdsal}=true    ${log_response}=True
     [Documentation]    Install and run testtool.
     ${filename}=    NexusKeywords.Deploy_Test_Tool    netconf    netconf-testtool
     Start_Testtool    ${filename}    ${device-count}    ${debug}    ${schemas}    ${rpc_config}    ${tool_options}
-    ...    ${java_options}    ${mdsal}
+    ...    ${java_options}    ${mdsal}    log_response=${log_response}
 
 Start_Testtool
     [Arguments]    ${filename}    ${device-count}=10    ${debug}=true    ${schemas}=none    ${rpc_config}=none    ${tool_options}=${EMPTY}
-    ...    ${java_options}=${TESTTOOL_DEFAULT_JAVA_OPTIONS}    ${mdsal}=true
+    ...    ${java_options}=${TESTTOOL_DEFAULT_JAVA_OPTIONS}    ${mdsal}=true    ${log_response}=True
     [Documentation]    Arrange to collect tool's output into a log file.
     ...    Will use specific ${schemas} unless argument resolves to 'none',
     ...    which signifies that there are no additional schemas to be deployed.
@@ -234,7 +233,7 @@ Start_Testtool
     # Store information needed by other keywords.
     BuiltIn.Set_Suite_Variable    ${NetconfKeywords__testtool_device_count}    ${device-count}
     # Wait for the testtool to boot up.
-    Perform_Operation_On_Each_Device    NetconfKeywords__Wait_Device_Is_Up_And_Running
+    Perform_Operation_On_Each_Device    NetconfKeywords__Wait_Device_Is_Up_And_Running    log_response=${log_response}
 
 Check_Device_Up_And_Running
     [Arguments]    ${device-number}
@@ -268,8 +267,30 @@ 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}
     BuiltIn.Repeat_Keyword    ${count} times    NetconfKeywords__Perform_Operation_With_Checking_On_Next_Device    ${operation}    ${deadline_Date}    log_response=${log_response}
+
+Disable SSE On Controller
+    [Arguments]    ${controller_ip}
+    [Documentation]    Sets the config for using SSE (Server Side Events) to false. Note that
+    ...    this keyword only changes the config. A controller restart is needed for the config to
+    ...    to take effect.
+    SSHLibrary.Open Connection    ${controller_ip}
+    Login With Public Key    ${ODL_SYSTEM_USER}    ${USER_HOME}/.ssh/${SSH_KEY}    any
+    ${cmd}=    Set Variable    echo "use-sse=false" > ${SSE_CFG_FILE}
+    SSHLibrary.Execute Command    ${cmd}
+    SSHLibrary.Close Connection
+
+Enable SSE On Controller
+    [Arguments]    ${controller_ip}
+    [Documentation]    Sets the config for using SSE (Server Side Events) to true. Note that
+    ...    this keyword only changes the config. A controller restart is needed for the config to
+    ...    to take effect.
+    SSHLibrary.Open Connection    ${controller_ip}
+    Login With Public Key    ${ODL_SYSTEM_USER}    ${USER_HOME}/.ssh/${SSH_KEY}    any
+    ${cmd}=    Set Variable    echo "use-sse=true" > ${SSE_CFG_FILE}
+    SSHLibrary.Execute Command    ${cmd}
+    SSHLibrary.Close Connection