X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Fsuites%2Fnetconf%2FCRUD%2FCRUD.robot;h=79503abf4c849fe0d311ef0df575be97ec2f4419;hb=eb86b9690d977af3d556f67f28b732934a396ec9;hp=1579bc62a2101fc4f4918d1768075c105069a68f;hpb=97cd0ebd39d370d418d3a34006f9d21457c49148;p=integration%2Ftest.git
diff --git a/csit/suites/netconf/CRUD/CRUD.robot b/csit/suites/netconf/CRUD/CRUD.robot
index 1579bc62a2..79503abf4c 100644
--- a/csit/suites/netconf/CRUD/CRUD.robot
+++ b/csit/suites/netconf/CRUD/CRUD.robot
@@ -10,10 +10,15 @@ Documentation netconf-connector CRUD test suite.
...
... Perform basic operations (Create, Read, Update and Delete or CRUD) on device
... data mounted onto a netconf connector and see if they work.
+...
+... FIXME: Replace the BuiltIn.Should_[Not_]Contain instances in the test cases
+... that check the car list related data with calls to keywords of a Resource
+... aimed at getting interesting pieces of data from the XML files and checking
+... them against expected data sets. See MDSAL/northbound.robot suite for
+... additional information.
Suite Setup Setup_Everything
Suite Teardown Teardown_Everything
-Test Setup SetupUtils.Setup_Test_With_Logging_And_Fast_Failing
-Test Teardown FailFast.Start_Failing_Fast_If_This_Failed
+Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
Library Collections
Library RequestsLibrary
Library OperatingSystem
@@ -28,7 +33,7 @@ Resource ${CURDIR}/../../../libraries/Utils.robot
Variables ${CURDIR}/../../../variables/Variables.py
*** Variables ***
-${DIRECTORY_WITH_TEMPLATE_FOLDERS} ${CURDIR}/../../../variables/netconf/CRUD
+${directory_with_template_folders} ${CURDIR}/../../../variables/netconf/CRUD
${device_name} netconf-test-device
*** Test Cases ***
@@ -60,37 +65,132 @@ Check_Device_Data_Is_Empty
[Documentation] Get the device data and make sure it is empty.
Check_Config_Data
-Create_Device_Data
- [Documentation] Send some sample test data into the device and check that the request went OK.
+Create_Device_Data_Label_Via_Xml
+ [Documentation] Send a sample test data label into the device and check that the request went OK.
${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}
+ NetconfViaRestconf.Post_Xml_Template_Folder_Via_Restconf ${directory_with_template_folders}${/}dataorig ${template_as_string}
-Check_Device_Data_Is_Created
- [Documentation] Get the device data and make sure it contains the created content.
+Check_Device_Data_Label_Is_Created
+ [Documentation] Get the device data label and make sure it contains the created content.
Check_Config_Data Content
-Modify_Device_Data
+Modify_Device_Data_Label_Via_Xml
+ [Documentation] Send a request to change the sample test data label and check that the request went OK.
+ ${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}
+
+Check_Device_Data_Label_Is_Modified
+ [Documentation] Get the device data label and make sure it contains the modified content.
+ Check_Config_Data Modified Content
+
+Deconfigure_Device_From_Netconf_Temporarily
+ [Documentation] Make request to deconfigure the testtool device on Netconf connector.
+ ... This is the first part of the "configure/deconfigure" cycle of the device
+ ... The purpose of cycling the device like this is to see that the configuration
+ ... data was really stored in the device.
+ [Tags] critical
+ [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+ NetconfKeywords.Remove_Device_From_Netconf ${device_name}
+
+Wait_For_Device_To_Be_Gone
+ [Documentation] Wait for the device to completely disappear.
+ NetconfKeywords.Wait_Device_Fully_Removed ${device_name}
+
+Configure_The_Device_Back
+ [Documentation] Configure the device again.
+ ... This is the second step of the device configuration.
+ [Tags] critical
+ NetconfKeywords.Configure_Device_In_Netconf ${device_name}
+
+Wait_For_Device_To_Reconnect
+ [Documentation] Wait until the device becomes available through Netconf.
+ NetconfKeywords.Wait_Device_Connected ${device_name}
+
+Check_Modified_Device_Data_Is_Still_There
+ [Documentation] Get the device data and make sure it contains the created content.
+ BuiltIn.Wait_Until_Keyword_Succeeds 60s 1s Check_Config_Data Modified Content
+
+Modify_Device_Data_Again
[Documentation] Send a request to change the sample test data and check that the request went OK.
${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}
+ NetconfViaRestconf.Put_Xml_Template_Folder_Via_Restconf ${DIRECTORY_WITH_TEMPLATE_FOLDERS}${/}datamod2 ${template_as_string}
-Check_Device_Data_Is_Modified
+Check_Device_Data_Is_Modified_Again
[Documentation] Get the device data and make sure it contains the created content.
- Check_Config_Data Modified Content
+ Check_Config_Data Another Modified Content
+
+Modify_Device_Data_Label_Via_Json
+ [Documentation] Send a JSON request to change the sample test data label and check that the request went OK.
+ ${template_as_string}= BuiltIn.Set_Variable {'DEVICE_NAME': '${device_name}'}
+ NetconfViaRestconf.Put_Json_Template_Folder_Via_Restconf ${directory_with_template_folders}${/}datamodjson ${template_as_string}
+
+Check_Device_Data_Label_Is_Modified_Via_Json
+ [Documentation] Get the device data label as XML and make sure it matches the content posted as JSON in the previous case.
+ Check_Config_Data Content Modified via JSON
+
+Create_Car_List
+ [Documentation] Send a request to create a list of cars in the sample test data label and check that the request went OK.
+ ${template_as_string}= BuiltIn.Set_Variable {'DEVICE_NAME': '${device_name}'}
+ NetconfViaRestconf.Post_Xml_Template_Folder_Via_Restconf ${directory_with_template_folders}${/}cars ${template_as_string}
+
+Check_Car_List_Created
+ [Documentation] Get the device data label as XML and make sure it matches the content posted as JSON in the previous case.
+ ${data}= Get_Config_Data
+ BuiltIn.Should_Contain ${data} KEEP
+ BuiltIn.Should_Not_Contain ${data} SMALL
+ BuiltIn.Should_Not_Contain ${data} Isetta
+ BuiltIn.Should_Not_Contain ${data} BMW
+ BuiltIn.Should_Not_Contain ${data} 1953
+ BuiltIn.Should_Not_Contain ${data} microcar
+ BuiltIn.Should_Not_Contain ${data} TOYOTA
+ BuiltIn.Should_Not_Contain ${data} Camry
+ BuiltIn.Should_Not_Contain ${data} Toyota
+ BuiltIn.Should_Not_Contain ${data} 1982
+ BuiltIn.Should_Not_Contain ${data} sedan
+
+Add_Device_Data_Item_1_Via_XML_Post
+ [Documentation] Send a request to create a data item in the test list and check that the request went OK.
+ ${template_as_string}= BuiltIn.Set_Variable {'DEVICE_NAME': '${device_name}'}
+ NetconfViaRestconf.Post_Xml_Template_Folder_Via_Restconf ${directory_with_template_folders}${/}item1 ${template_as_string}
-Modify_Device_Data_Via_JSON
+Check_Item1_Is_Created
+ [Documentation] Get the device data as XML and make sure it matches the content posted as JSON in the previous case.
+ ${data}= Get_Config_Data
+ BuiltIn.Should_Contain ${data} SMALL
+ BuiltIn.Should_Contain ${data} Isetta
+ BuiltIn.Should_Contain ${data} BMW
+ BuiltIn.Should_Contain ${data} 1953
+ BuiltIn.Should_Contain ${data} microcar
+ BuiltIn.Should_Not_Contain ${data} TOYOTA
+ BuiltIn.Should_Not_Contain ${data} Camry
+ BuiltIn.Should_Not_Contain ${data} Toyota
+ BuiltIn.Should_Not_Contain ${data} 1982
+ BuiltIn.Should_Not_Contain ${data} sedan
+
+Add_Device_Data_Item_2_Via_JSON_Post
[Documentation] Send a JSON request to change the sample test data and check that the request went OK.
${template_as_string}= BuiltIn.Set_Variable {'DEVICE_NAME': '${device_name}'}
- NetconfViaRestconf.Put_Json_Template_Folder_Via_Restconf ${DIRECTORY_WITH_TEMPLATE_FOLDERS}${/}datamodjson ${template_as_string}
+ NetconfViaRestconf.Post_Json_Template_Folder_Via_Restconf ${directory_with_template_folders}${/}item2 ${template_as_string}
-Check_Device_Data_Is_Modified_Via_JSON
+Check_Item2_Is_Created
[Documentation] Get the device data as XML and make sure it matches the content posted as JSON in the previous case.
- Check_Config_Data Content Modified via JSON
+ ${data}= Get_Config_Data
+ BuiltIn.Should_Contain ${data} SMALL
+ BuiltIn.Should_Contain ${data} Isetta
+ BuiltIn.Should_Contain ${data} BMW
+ BuiltIn.Should_Contain ${data} 1953
+ BuiltIn.Should_Contain ${data} microcar
+ BuiltIn.Should_Contain ${data} TOYOTA
+ BuiltIn.Should_Contain ${data} Camry
+ BuiltIn.Should_Contain ${data} Toyota
+ BuiltIn.Should_Contain ${data} 1982
+ BuiltIn.Should_Contain ${data} sedan
Delete_Device_Data
[Documentation] Send a request to delete the sample test data on the device and check that the request went OK.
${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}
+ NetconfViaRestconf.Delete_Xml_Template_Folder_Via_Restconf ${directory_with_template_folders}${/}datamod1 ${template_as_string}
+ NetconfViaRestconf.Delete_Xml_Template_Folder_Via_Restconf ${directory_with_template_folders}${/}item1 ${template_as_string}
Check_Device_Data_Is_Deleted
[Documentation] Get the device data and make sure it is empty again.
@@ -121,9 +221,6 @@ Setup_Everything
SetupUtils.Setup_Utils_For_Setup_And_Teardown
RequestsLibrary.Create_Session operational http://${ODL_SYSTEM_IP}:${RESTCONFPORT}${OPERATIONAL_API} auth=${AUTH}
NetconfKeywords.Setup_Netconf_Keywords
- # Connect to the Mininet machine
- SSHLibrary.Open_Connection ${TOOLS_SYSTEM_IP} prompt=${TOOLS_SYSTEM_PROMPT}
- Utils.Flexible_Mininet_Login
Teardown_Everything
[Documentation] Teardown the test infrastructure, perform cleanup and release all resources.
@@ -131,9 +228,14 @@ Teardown_Everything
RequestsLibrary.Delete_All_Sessions
BuiltIn.Run_Keyword_And_Ignore_Error NetconfKeywords.Stop_Testtool
-Check_Config_Data
- [Arguments] ${expected} ${contains}=False
+Get_Config_Data
+ [Documentation] Get and return the config data from the device.
${url}= Builtin.Set_Variable network-topology:network-topology/topology/topology-netconf/node/${device_name}/yang-ext:mount
${data}= Utils.Get_Data_From_URI nvr_session ${url} headers=${ACCEPT_XML}
+ [Return] ${data}
+
+Check_Config_Data
+ [Arguments] ${expected} ${contains}=False
+ ${data}= Get_Config_Data
BuiltIn.Run_Keyword_Unless ${contains} BuiltIn.Should_Be_Equal_As_Strings ${data} ${expected}
BuiltIn.Run_Keyword_If ${contains} BuiltIn.Should_Contain ${data} ${expected}