Resource ../../../libraries/TemplatedRequests.robot
Resource ../../../libraries/CompareStream.robot
Resource ../../../variables/Variables.robot
-Variables ../../../variables/pcepuser/variables.py ${TOOLS_SYSTEM_IP}
+Variables ../../../variables/pcepuser/${ODL_STREAM}/variables.py ${TOOLS_SYSTEM_IP}
*** Variables ***
${CONFIG_SESSION} session
-${PATH_SESSION_URI} node/pcc:%2F%2F${TOOLS_SYSTEM_IP}/path-computation-client
-${PCEP_VARIABLES_FOLDER} ${CURDIR}/../../../variables/pcepuser/
+${PATH_SESSION_URI} node=pcc:%2F%2F${TOOLS_SYSTEM_IP}/network-topology-pcep:path-computation-client
+${PCEP_VARIABLES_FOLDER} ${CURDIR}/../../../variables/pcepuser/${ODL_STREAM}
*** Test Cases ***
Topology_Precondition
Log ${command}
Write ${command}
Read_Until started, sent proposal Open
+ # Sleep required because of BGPCEP-890
+ Sleep 1s
Configure_Speaker_Entity_Identifier
[Documentation] Additional PCEP Speaker configuration for at least oxygen streams.
... Allows PCEP speaker to determine if state synchronization can be skipped when a PCEP session is restarted.
+ CompareStream.Run_Keyword_If_Less_Than_Oxygen BuiltIn.Pass_Execution Test case valid only for versions oxygen and above.
&{mapping} BuiltIn.Create_Dictionary IP=${ODL_SYSTEM_IP}
- CompareStream.Run_Keyword_If_At_Least_Oxygen TemplatedRequests.Put_As_Xml_Templated ${PCEP_VARIABLES_FOLDER}${/}node_speaker_entity_identifier mapping=${mapping} session=${CONFIG_SESSION}
+ TemplatedRequests.Put_As_Xml_Templated ${PCEP_VARIABLES_FOLDER}${/}node_speaker_entity_identifier mapping=${mapping} session=${CONFIG_SESSION}
Topology_Default
[Documentation] Compare pcep-topology to default_json, which includes a tunnel from pcc-mock.
[Documentation] Perform update-lsp on the mocked tunnel, check response is success.
[Tags] critical
${text}= Update_Xml_Lsp_Return_Json ${update_delegated_xml}
- Pcep_Json_Is_Success ${text}
Topology_Updated
[Documentation] Compare pcep-topology to default_json, which includes the updated tunnel.
[Documentation] Perform add-lsp to create new tunnel, check that response is success.
[Tags] critical
${text}= Add_Xml_Lsp_Return_Json ${add_instantiated_xml}
- Pcep_Json_Is_Success ${text}
Topology_Second_Default
[Documentation] Compare pcep-topology to default_json, which includes the updated delegated and default instantiated tunnel.
[Documentation] Perform update-lsp on the newly instantiated tunnel, check that response is success.
[Tags] critical
${text}= Update_Xml_Lsp_Return_Json ${update_instantiated_xml}
- Pcep_Json_Is_Success ${text}
Topology_Second_Updated
[Documentation] Compare pcep-topology to default_json, which includes the updated delegated and updated instantiated tunnel.
[Documentation] Perform remove-lsp on the instantiated tunnel, check that response is success.
[Tags] critical
${text}= Remove_Xml_Lsp_Return_Json ${remove_instantiated_xml}
- Pcep_Json_Is_Success ${text}
Topology_Again_Updated
[Documentation] Compare pcep-topology to default_json, which includes the updated tunnel, to verify that instantiated tunnel was removed.
... Error codes and normalized jsons should match exactly.
# TODO: Add Node Session State Check For Oxygen, see tcpmd5user
# TODO: Possibly remake all tests with TemplatedRequests
- ${response}= RequestsLibrary.Get Request ${CONFIG_SESSION} ${OPERATIONAL_TOPO_API}/topology/pcep-topology/${uri}
+ ${topology_uri}= BuiltIn.Set_Variable_If '${uri}'=='${EMPTY}'
+ ... ${REST_API}/${TOPOLOGY_URL}=pcep-topology?content=nonconfig ${REST_API}/${TOPOLOGY_URL}=pcep-topology/${uri}?content=nonconfig
+ ${response}= RequestsLibrary.Get Request ${CONFIG_SESSION} ${topology_uri}
BuiltIn.Should_Be_Equal_As_Strings ${response.status_code} 200
TemplatedRequests.Normalize_Jsons_And_Compare ${exp} ${response.text}