... This resource creates a "default" session using TemplatedRequests.Create_Default_Session
... which points to (an analogue of) http://${ODL_SYSTEM_IP}:${RESTCONFPORT}
Library RequestsLibrary
+Resource ${CURDIR}/CompareStream.robot
Resource ${CURDIR}/ScalarClosures.robot
Resource ${CURDIR}/TemplatedRequests.robot
Resource ${CURDIR}/WaitUtils.robot
*** Variables ***
${CHANGE_COUNTER_TEMPLATE_FOLDER} ${CURDIR}/../variables/bgpuser
+${CC_DATA_CHANGE_COUNTER_URL} /restconf/operational/data-change-counter:data-change-counter
*** Keywords ***
CC_Setup
BuiltIn.Set_Suite_Variable ${ChangeCounter__getter} ${counter}
Get_Change_Count
+ [Arguments] ${session}=operational
[Documentation] GET data change request, assert status 200, return the value.
- ${response} = RequestsLibrary.Get_Request operational data-change-counter:data-change-counter
+ ${response} = RequestsLibrary.Get_Request ${session} ${CC_DATA_CHANGE_COUNTER_URL}
BuiltIn.Should_Be_Equal ${response.status_code} ${200} Got status: ${response.status_code} and message: ${response.text}
- # TODO: The following line can be insecure. Should we use regexp instead?
- # TODO: beware of new releases (carbon ...) and mind if more counters are used
- ${count} = BuiltIn.Run Keyword If "${ODL_STREAM}" in ["beryllium", "stable-lithium"] BuiltIn.Evaluate ${response.text}["data-change-counter"]["count"]
- ... ELSE BuiltIn.Evaluate ${response.text}["data-change-counter"]["counter"][0]["count"]
+ # CompareStream.Set_Variable_If_At_Least_Else cannot be used direcly, because ${response.text}["data-change-counter"]["count"] would be
+ # evaluated before the stream comparison and it causes failures
+ BuiltIn.Log ${response.text}
+ ${count} = BuiltIn.Evaluate json.loads('${response.text}')["data-change-counter"]["counter"][0]["count"] modules=json
[Return] ${count}
Reconfigure_Topology_Name