Library String
Library SSHLibrary timeout=10s
Resource ${CURDIR}/../../../libraries/FailFast.robot
-Resource ${CURDIR}/../../../libraries/KarafKeywords.robot
Resource ${CURDIR}/../../../libraries/NetconfKeywords.robot
-Resource ${CURDIR}/../../../libraries/NetconfViaRestconf.robot
Resource ${CURDIR}/../../../libraries/SetupUtils.robot
+Resource ${CURDIR}/../../../libraries/TemplatedRequests.robot
Resource ${CURDIR}/../../../libraries/Utils.robot
Variables ${CURDIR}/../../../variables/Variables.py
${NODE_CONFIGURER} node1
${NODE_SETTER} node2
${NODE_CHECKER} node3
-${DEVICE_CHECK_TIMEOUT} 60s
-${DIRECTORY_WITH_TEMPLATE_FOLDERS} ${CURDIR}/../../../variables/netconf/CRUD
+${DEVICE_CHECK_TIMEOUT} 10s
${DEVICE_NAME} netconf-test-device
-${EMPTY_DATA} <data xmlns="${ODL_NETCONF_NAMESPACE}"></data>
-${ORIGINAL_DATA} <data xmlns="${ODL_NETCONF_NAMESPACE}"><cont xmlns="urn:opendaylight:test:netconf:crud"><l>Content</l></cont></data>
-${MODIFIED_DATA} <data xmlns="${ODL_NETCONF_NAMESPACE}"><cont xmlns="urn:opendaylight:test:netconf:crud"><l>Modified Content</l></cont></data>
+${directory_with_template_folders} ${CURDIR}/../../../variables/netconf/CRUD
+${empty_data} <data xmlns="${ODL_NETCONF_NAMESPACE}"></data>
+${original_data} <data xmlns="${ODL_NETCONF_NAMESPACE}"><cont xmlns="urn:opendaylight:test:netconf:crud"><l>Content</l></cont></data>
+${modified_data} <data xmlns="${ODL_NETCONF_NAMESPACE}"><cont xmlns="urn:opendaylight:test:netconf:crud"><l>Modified Content</l></cont></data>
*** Test Cases ***
+Start_Testtool
+ [Documentation] Deploy and start test tool, then wait for all its devices to become online.
+ NetconfKeywords.Install_And_Start_Testtool device-count=1 schemas=${CURDIR}/../../../variables/netconf/CRUD/schemas
+
Check_Device_Is_Not_Mounted_At_Beginning
[Documentation] Sanity check making sure our device is not there. Fail if found.
[Tags] critical
- NetconfViaRestconf.Activate_NVR_Session ${NODE_CONFIGURER}
- NetconfKeywords.Check_Device_Has_No_Netconf_Connector ${DEVICE_NAME}
+ NetconfKeywords.Check_Device_Has_No_Netconf_Connector ${DEVICE_NAME} session=${NODE_CONFIGURER}
Configure_Device_On_Netconf
[Documentation] Make request to configure a testtool device on Netconf connector
[Tags] critical
- NetconfViaRestconf.Activate_NVR_Session ${NODE_CONFIGURER}
- NetconfKeywords.Configure_Device_In_Netconf ${DEVICE_NAME} device_type=configure-via-topology
+ NetconfKeywords.Configure_Device_In_Netconf ${DEVICE_NAME} device_type=configure-via-topology session=${NODE_CONFIGURER}
+ [Teardown] Utils.Report_Failure_Due_To_Bug 5089
Check_Configurer_Has_Netconf_Connector_For_Device
[Documentation] Get the list of mounts and search for our device there. Fail if not found.
[Tags] critical
- NetconfViaRestconf.Activate_NVR_Session ${NODE_CONFIGURER}
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEVICE_CHECK_TIMEOUT} 1s Check_Device_Instance_Count 1
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEVICE_CHECK_TIMEOUT} 1s Check_Device_Instance_Count 1 session=${NODE_CONFIGURER}
Wait_For_Device_To_Become_Visible_For_Configurer
[Documentation] Wait until the device becomes visible on configurer node.
- NetconfViaRestconf.Activate_NVR_Session ${NODE_CONFIGURER}
- NetconfKeywords.Wait_Device_Connected ${DEVICE_NAME}
+ NetconfKeywords.Wait_Device_Connected ${DEVICE_NAME} session=${NODE_CONFIGURER}
Wait_For_Device_To_Become_Visible_For_Checker
[Documentation] Wait until the device becomes visible on checker node.
- NetconfViaRestconf.Activate_NVR_Session ${NODE_CHECKER}
- NetconfKeywords.Wait_Device_Connected ${DEVICE_NAME}
+ NetconfKeywords.Wait_Device_Connected ${DEVICE_NAME} session=${NODE_CHECKER}
Wait_For_Device_To_Become_Visible_For_Setter
[Documentation] Wait until the device becomes visible on setter node.
- NetconfViaRestconf.Activate_NVR_Session ${NODE_SETTER}
- NetconfKeywords.Wait_Device_Connected ${DEVICE_NAME}
+ NetconfKeywords.Wait_Device_Connected ${DEVICE_NAME} session=${NODE_SETTER}
Check_Device_Data_Is_Seen_As_Empty_On_Configurer
[Documentation] Get the device data as seen by configurer and make sure it is empty.
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEVICE_CHECK_TIMEOUT} 1s Check_Config_Data ${NODE_CONFIGURER} ${EMPTY_DATA}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEVICE_CHECK_TIMEOUT} 1s Check_Config_Data ${NODE_CONFIGURER} ${empty_data}
Check_Device_Data_Is_Seen_As_Empty_On_Checker
[Documentation] Get the device data as seen by checker and make sure it is empty.
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEVICE_CHECK_TIMEOUT} 1s Check_Config_Data ${NODE_CHECKER} ${EMPTY_DATA}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEVICE_CHECK_TIMEOUT} 1s Check_Config_Data ${NODE_CHECKER} ${empty_data}
Check_Device_Data_Is_Seen_As_Empty_On_Setter
[Documentation] Get the device data as seen by setter and make sure it is empty.
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEVICE_CHECK_TIMEOUT} 1s Check_Config_Data ${NODE_SETTER} ${EMPTY_DATA}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEVICE_CHECK_TIMEOUT} 1s Check_Config_Data ${NODE_SETTER} ${empty_data}
Create_Device_Data
[Documentation] Send some sample test data into the device and check that the request went OK.
- NetconfViaRestconf.Activate_NVR_Session ${NODE_SETTER}
- ${template_as_string}= BuiltIn.Set_Variable {'DEVICE_NAME': '${DEVICE_NAME}'}
- NetconfViaRestconf.Post_Xml_Template_Folder_Via_Restconf ${DIRECTORY_WITH_TEMPLATE_FOLDERS}${/}dataorig ${template_as_string}
+ ${template_as_string}= BuiltIn.Create_Dictionary DEVICE_NAME=${device_name}
+ TemplatedRequests.Post_As_Xml_Templated ${directory_with_template_folders}${/}dataorig ${template_as_string} session=${NODE_SETTER}
Check_New_Device_Data_Is_Visible_On_Setter
[Documentation] Get the device data and make sure it contains the created content.
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEVICE_CHECK_TIMEOUT} 1s Check_Config_Data ${NODE_SETTER} ${ORIGINAL_DATA}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEVICE_CHECK_TIMEOUT} 1s Check_Config_Data ${NODE_SETTER} ${original_data}
Check_New_Device_Data_Is_Visible_On_Checker
[Documentation] Check that the created device data make their way into the checker node.
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEVICE_CHECK_TIMEOUT} 1s Check_Config_Data ${NODE_CHECKER} ${ORIGINAL_DATA}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEVICE_CHECK_TIMEOUT} 1s Check_Config_Data ${NODE_CHECKER} ${original_data}
Check_New_Device_Data_Is_Visible_On_Configurer
[Documentation] Check that the created device data make their way into the configurer node.
- BuiltIn.Wait_Until_Keyword_Succeeds ${DEVICE_CHECK_TIMEOUT} 1s Check_Config_Data ${NODE_CONFIGURER} ${ORIGINAL_DATA}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEVICE_CHECK_TIMEOUT} 1s Check_Config_Data ${NODE_CONFIGURER} ${original_data}
Modify_Device_Data
[Documentation] Send a request to change the sample test data and check that the request went OK.
- NetconfViaRestconf.Activate_NVR_Session ${NODE_SETTER}
- ${template_as_string}= BuiltIn.Set_Variable {'DEVICE_NAME': '${DEVICE_NAME}'}
- NetconfViaRestconf.Put_Xml_Template_Folder_Via_Restconf ${DIRECTORY_WITH_TEMPLATE_FOLDERS}${/}datamod1 ${template_as_string}
+ ${template_as_string}= BuiltIn.Create_Dictionary DEVICE_NAME=${device_name}
+ TemplatedRequests.Put_As_Xml_Templated ${directory_with_template_folders}${/}datamod1 ${template_as_string} session=${NODE_SETTER}
[Teardown] Utils.Report_Failure_Due_To_Bug 4968
Check_Device_Data_Is_Modified
[Documentation] Get the device data and make sure it contains the modified content.
- Check_Config_Data ${NODE_SETTER} ${MODIFIED_DATA}
+ Check_Config_Data ${NODE_SETTER} ${modified_data}
[Teardown] Utils.Report_Failure_Due_To_Bug 4968
Check_Modified_Device_Data_Is_Visible_On_Checker
[Documentation] Check that the modified device data make their way into the checker node.
- BuiltIn.Wait_Until_Keyword_Succeeds 60s 1s Check_Config_Data ${NODE_CHECKER} ${MODIFIED_DATA}
+ BuiltIn.Wait_Until_Keyword_Succeeds 60s 1s Check_Config_Data ${NODE_CHECKER} ${modified_data}
[Teardown] Utils.Report_Failure_Due_To_Bug 4968
Check_Modified_Device_Data_Is_Visible_On_Configurer
[Documentation] Check that the modified device data make their way into the configurer node.
- BuiltIn.Wait_Until_Keyword_Succeeds 60s 1s Check_Config_Data ${NODE_CONFIGURER} ${MODIFIED_DATA}
+ BuiltIn.Wait_Until_Keyword_Succeeds 60s 1s Check_Config_Data ${NODE_CONFIGURER} ${modified_data}
[Teardown] Utils.Report_Failure_Due_To_Bug 4968
Delete_Device_Data
[Documentation] Send a request to delete the sample test data on the device and check that the request went OK.
- NetconfViaRestconf.Activate_NVR_Session ${NODE_SETTER}
- ${template_as_string}= BuiltIn.Set_Variable {'DEVICE_NAME': '${DEVICE_NAME}'}
- NetconfViaRestconf.Delete_Xml_Template_Folder_Via_Restconf ${DIRECTORY_WITH_TEMPLATE_FOLDERS}${/}datamod1 ${template_as_string}
+ ${template_as_string}= BuiltIn.Create_Dictionary DEVICE_NAME=${device_name}
+ TemplatedRequests.Delete_Templated ${directory_with_template_folders}${/}datamod1 ${template_as_string} session=${NODE_SETTER}
[Teardown] Utils.Report_Failure_Due_To_Bug 4968
Check_Device_Data_Is_Deleted
[Documentation] Get the device data and make sure it is empty again.
- Check_Config_Data ${NODE_SETTER} ${EMPTY_DATA}
+ Check_Config_Data ${NODE_SETTER} ${empty_data}
[Teardown] Utils.Report_Failure_Due_To_Bug 4968
Check_Device_Data_Deletion_Is_Visible_On_Checker
[Documentation] Check that the device data deletion makes its way into the checker node.
- BuiltIn.Wait_Until_Keyword_Succeeds 60s 1s Check_Config_Data ${NODE_CHECKER} ${EMPTY_DATA}
+ BuiltIn.Wait_Until_Keyword_Succeeds 60s 1s Check_Config_Data ${NODE_CHECKER} ${empty_data}
[Teardown] Utils.Report_Failure_Due_To_Bug 4968
Check_Device_Data_Deletion_Is_Visible_On_Configurer
[Documentation] Check that the device data deletion makes its way into the checker node.
- BuiltIn.Wait_Until_Keyword_Succeeds 60s 1s Check_Config_Data ${NODE_CONFIGURER} ${EMPTY_DATA}
+ BuiltIn.Wait_Until_Keyword_Succeeds 60s 1s Check_Config_Data ${NODE_CONFIGURER} ${empty_data}
[Teardown] Utils.Report_Failure_Due_To_Bug 4968
Deconfigure_Device_In_Netconf
[Documentation] Make request to deconfigure the device on Netconf connector.
[Tags] critical
[Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
- NetconfViaRestconf.Activate_NVR_Session ${NODE_CONFIGURER}
- NetconfKeywords.Remove_Device_From_Netconf ${DEVICE_NAME}
+ NetconfKeywords.Remove_Device_From_Netconf ${DEVICE_NAME} session=${NODE_CONFIGURER}
Check_Device_Deconfigured_On_Configurer
[Documentation] Check that the device is really going to be gone. Fail if still there after one minute.
... data once completed. This test makes sure this asynchronous operation does not take
... unreasonable amount of time.
[Tags] critical
- NetconfViaRestconf.Activate_NVR_Session ${NODE_CONFIGURER}
- NetconfKeywords.Wait_Device_Fully_Removed ${DEVICE_NAME}
+ NetconfKeywords.Wait_Device_Fully_Removed ${DEVICE_NAME} session=${NODE_CONFIGURER}
Check_Device_Deconfigured_On_Checker
[Documentation] Check that the device is going to be gone from the checker node. Fail if still there after one minute.
[Tags] critical
- NetconfViaRestconf.Activate_NVR_Session ${NODE_CHECKER}
- NetconfKeywords.Wait_Device_Fully_Removed ${DEVICE_NAME}
+ NetconfKeywords.Wait_Device_Fully_Removed ${DEVICE_NAME} session=${NODE_CHECKER}
Check_Device_Deconfigured_On_Setter
[Documentation] Check that the device is going to be gone from the setter node. Fail if still there after one minute.
[Tags] critical
- NetconfViaRestconf.Activate_NVR_Session ${NODE_SETTER}
- NetconfKeywords.Wait_Device_Fully_Removed ${DEVICE_NAME}
+ NetconfKeywords.Wait_Device_Fully_Removed ${DEVICE_NAME} session=${NODE_SETTER}
*** Keywords ***
Setup_Everything
- [Documentation] Setup everything needed for the test cases.
+ [Documentation] Initialize SetupUtils, setup everything needed for the test cases.
# Setup resources used by the suite.
SetupUtils.Setup_Utils_For_Setup_And_Teardown
- NetconfKeywords.Setup_Netconf_Keywords
- NetconfViaRestconf.Create_NVR_Session node1 ${ODL_SYSTEM_1_IP}
- NetconfViaRestconf.Create_NVR_Session node2 ${ODL_SYSTEM_2_IP}
- NetconfViaRestconf.Create_NVR_Session node3 ${ODL_SYSTEM_3_IP}
- # Connect to the Mininet machine
- SSHLibrary.Open_Connection ${TOOLS_SYSTEM_IP} prompt=${TOOLS_SYSTEM_PROMPT}
- Utils.Flexible_Mininet_Login
- NetconfKeywords.Install_And_Start_Testtool device-count=1 schemas=${CURDIR}/../../../variables/netconf/CRUD/schemas
+ NetconfKeywords.Setup_Netconf_Keywords create_session_for_templated_requests=False
+ RequestsLibrary.Create_Session node1 http://${ODL_SYSTEM_1_IP}:${RESTCONFPORT} headers=${HEADERS_XML} auth=${AUTH}
+ RequestsLibrary.Create_Session node2 http://${ODL_SYSTEM_2_IP}:${RESTCONFPORT} headers=${HEADERS_XML} auth=${AUTH}
+ RequestsLibrary.Create_Session node3 http://${ODL_SYSTEM_3_IP}:${RESTCONFPORT} headers=${HEADERS_XML} auth=${AUTH}
Teardown_Everything
[Documentation] Teardown the test infrastructure, perform cleanup and release all resources.
- Teardown_Netconf_Via_Restconf
RequestsLibrary.Delete_All_Sessions
NetconfKeywords.Stop_Testtool
Check_Device_Instance_Count
- [Arguments] ${expected}
- ${count} NetconfKeywords.Count_Netconf_Connectors_For_Device ${DEVICE_NAME}
+ [Arguments] ${expected} ${session}
+ ${count} NetconfKeywords.Count_Netconf_Connectors_For_Device ${DEVICE_NAME} session=${session}
Builtin.Should_Be_Equal_As_Strings ${count} ${expected}
Check_Config_Data
[Arguments] ${node} ${expected} ${contains}=False
- NetconfViaRestconf.Activate_NVR_Session ${node}
- ${url}= Builtin.Set_Variable network-topology:network-topology/topology/topology-netconf/node/${DEVICE_NAME}/yang-ext:mount
- ${data}= NetconfViaRestconf.Get_Config_Data_From_URI ${url} headers=${ACCEPT_XML}
+ ${url}= Builtin.Set_Variable ${CONFIG_API}/network-topology:network-topology/topology/topology-netconf/node/${DEVICE_NAME}/yang-ext:mount
+ ${data}= TemplatedRequests.Get_As_Xml_From_Uri ${url} session=${node}
BuiltIn.Run_Keyword_Unless ${contains} BuiltIn.Should_Be_Equal_As_Strings ${data} ${expected}
BuiltIn.Run_Keyword_If ${contains} BuiltIn.Should_Contain ${data} ${expected}