From 97cd0ebd39d370d418d3a34006f9d21457c49148 Mon Sep 17 00:00:00 2001 From: Jozef Behran Date: Fri, 29 Jan 2016 10:52:06 +0100 Subject: [PATCH] Added JSON modification request to CRUD suite This was created as a result of investigation of failure of restperfclient to send valid requests. Change-Id: Ia1c2006a6abd37bd2f92ee5d5159033538153523 Signed-off-by: Jozef Behran --- csit/libraries/NetconfViaRestconf.robot | 26 +++++++++++++++++++ csit/suites/netconf/CRUD/CRUD.robot | 9 +++++++ .../netconf/CRUD/datamodjson/config.uri | 1 + .../netconf/CRUD/datamodjson/data.json | 5 ++++ 4 files changed, 41 insertions(+) create mode 100644 csit/variables/netconf/CRUD/datamodjson/config.uri create mode 100644 csit/variables/netconf/CRUD/datamodjson/data.json diff --git a/csit/libraries/NetconfViaRestconf.robot b/csit/libraries/NetconfViaRestconf.robot index be5c48ea4c..fe794b9104 100644 --- a/csit/libraries/NetconfViaRestconf.robot +++ b/csit/libraries/NetconfViaRestconf.robot @@ -76,6 +76,14 @@ Resolve_Xml_Data_From_Template_Folder ${xml_data}= Strip_Endline_And_Apply_Substitutions_From_Mapping ${data_template} ${mapping_as_string} [Return] ${xml_data} +Resolve_Json_Data_From_Template_Folder + [Arguments] ${folder} ${mapping_as_string} + [Documentation] Read data template from folder, strip endline, make changes according to mapping, return the result. + ${data_template}= OperatingSystem.Get_File ${folder}${/}data.json + BuiltIn.Log ${data_template} + ${json_data}= Strip_Endline_And_Apply_Substitutions_From_Mapping ${data_template} ${mapping_as_string} + [Return] ${json_data} + Strip_Endline_And_Apply_Substitutions_From_Mapping [Arguments] ${template_as_string} ${mapping_as_string} [Documentation] Strip endline, apply substitutions, Log and return the result. @@ -124,6 +132,24 @@ Put_Xml_Template_Folder_Via_Restconf ${xml_data}= Resolve_Xml_Data_From_Template_Folder ${folder} ${mapping_as_string} Put_Xml_Via_Restconf ${uri_part} ${xml_data} +Put_Json_Via_Restconf + [Arguments] ${uri_part} ${json_data} + [Documentation] Put JSON data to given controller-config URI, check reponse text is empty and status_code is one of allowed ones. + BuiltIn.Log ${uri_part} + BuiltIn.Log ${json_data} + ${response}= RequestsLibrary.Put ${NetconfViaRestconf__active_config_session} ${uri_part} data=${json_data} headers=${HEADERS_YANG_JSON} + BuiltIn.Log ${response.text} + BuiltIn.Log ${response.status_code} + BuiltIn.Should_Be_Empty ${response.text} + BuiltIn.Should_Contain ${allowed_status_codes} ${response.status_code} + +Put_Json_Template_Folder_Via_Restconf + [Arguments] ${folder} ${mapping_as_string}={} + [Documentation] Resolve URI and data from folder, PUT to controller config. + ${uri_part}= Resolve_URI_From_Template_Folder ${folder} ${mapping_as_string} + ${json_data}= Resolve_Json_Data_From_Template_Folder ${folder} ${mapping_as_string} + Put_Json_Via_Restconf ${uri_part} ${json_data} + Delete_Via_Restconf [Arguments] ${uri_part} [Documentation] Delete resource at controller-config URI, check reponse text is empty and status_code is 204. diff --git a/csit/suites/netconf/CRUD/CRUD.robot b/csit/suites/netconf/CRUD/CRUD.robot index 8d4dcbad19..1579bc62a2 100644 --- a/csit/suites/netconf/CRUD/CRUD.robot +++ b/csit/suites/netconf/CRUD/CRUD.robot @@ -78,6 +78,15 @@ Check_Device_Data_Is_Modified [Documentation] Get the device data and make sure it contains the created content. Check_Config_Data Modified Content +Modify_Device_Data_Via_JSON + [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} + +Check_Device_Data_Is_Modified_Via_JSON + [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 + 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}'} diff --git a/csit/variables/netconf/CRUD/datamodjson/config.uri b/csit/variables/netconf/CRUD/datamodjson/config.uri new file mode 100644 index 0000000000..41fb71a463 --- /dev/null +++ b/csit/variables/netconf/CRUD/datamodjson/config.uri @@ -0,0 +1 @@ +network-topology:network-topology/topology/topology-netconf/node/$DEVICE_NAME/yang-ext:mount/test:cont diff --git a/csit/variables/netconf/CRUD/datamodjson/data.json b/csit/variables/netconf/CRUD/datamodjson/data.json new file mode 100644 index 0000000000..3f7b76c178 --- /dev/null +++ b/csit/variables/netconf/CRUD/datamodjson/data.json @@ -0,0 +1,5 @@ +{ + "test:cont": { + "l":"Content Modified via JSON" + } +} -- 2.36.6