${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.
${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.
[Documentation] Get the device data and make sure it contains the created content.
Check_Config_Data <data xmlns="${ODL_NETCONF_NAMESPACE}"><cont xmlns="urn:opendaylight:test:netconf:crud"><l>Modified Content</l></cont></data>
+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 <data xmlns="${ODL_NETCONF_NAMESPACE}"><cont xmlns="urn:opendaylight:test:netconf:crud"><l>Content Modified via JSON</l></cont></data>
+
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}'}