*** Settings *** Documentation Test suite for symmetric RSP using bidirectional field of SF type. Suite Setup Init Suite Suite Teardown End Suite Library SSHLibrary Library Collections Library OperatingSystem Library RequestsLibrary Library HttpLibrary.HTTP Resource ../../../variables/sfc/Variables.robot Resource ../../../libraries/Utils.robot Resource ../../../libraries/TemplatedRequests.robot *** Variables *** ${VERSION_DIR} master ${SUITE_DIR} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/symmetricRSP ${SERVICE_NODES_FILE} ${SUITE_DIR}/service_nodes.json ${SERVICE_FUNCTION_TYPES_FILE} ${SUITE_DIR}/service_function_types.json ${SERVICE_FUNCTIONS_FILE} ${SUITE_DIR}/service_functions.json ${SERVICE_FORWARDERS_FILE} ${SUITE_DIR}/service_function_forwarders.json ${SERVICE_CHAINS_FILE} ${SUITE_DIR}/service_function_chains.json ${SERVICE_FUNCTION_PATHS_FILE} ${SUITE_DIR}/service_function_paths.json ${CREATE_RSP1_INPUT} {"input":{"parent-service-function-path":"SFP1","name":"RSP1"}} ${CREATE_RSP2_INPUT} {"input":{"parent-service-function-path":"SFP2","name":"RSP2"}} ${CREATE_RSP3_INPUT} {"input":{"parent-service-function-path":"SFP3","name":"RSP3"}} ${DELETE_RSP1_INPUT} {"input":{"name":"RSP1"}} ${DELETE_RSP2_INPUT} {"input":{"name":"RSP2"}} ${DELETE_RSP3_INPUT} {"input":{"name":"RSP3"}} *** Test Cases *** Create symmetric RSP with bidirectional flag set true in one SF type Post Elements To URI ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT} ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI} Should Be Equal As Strings ${resp.status_code} 200 ${elements}= Create List RSP1 RSP1-Reverse Check For Elements At URI ${OPERATIONAL_RSPS_URI} ${elements} [Teardown] Post Elements To URI ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP1_INPUT} Create non-symmetric RSP with bidirectional flag set false or not set in all SFs Post Elements To URI ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP2_INPUT} ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI} Should Be Equal As Strings ${resp.status_code} 200 Log ${resp.content} Should Contain ${resp.content} RSP2 Should Not Contain ${resp.content} RSP2-Reverse [Teardown] Post Elements To URI ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP2_INPUT} Create non-symmetric RSP overriding bidirectional flag with SFP symmetric flag Post Elements To URI ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP3_INPUT} # Note that SFP3 uses SFC1, which contains a dpi-bidirectional, but it's # overriden with symmetric flag in SFP set to false ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI} Should Be Equal As Strings ${resp.status_code} 200 Log ${resp.content} Should Contain ${resp.content} RSP3 Should Not Contain ${resp.content} RSP3-Reverse [Teardown] Post Elements To URI ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP3_INPUT} *** Keywords *** Init Suite [Documentation] Create session and initialize ODL version specific variables Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} log ${ODL_STREAM} Basic Environment Setup Basic Environment Setup [Documentation] Provision all elements except RSPs Clean Datastore Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} Add Elements To URI From File ${SERVICE_NODES_URI} ${SERVICE_NODES_FILE} Add Elements To URI From File ${SERVICE_FUNCTION_TYPES_URI} ${SERVICE_FUNCTION_TYPES_FILE} Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE} Add Elements To URI From File ${SERVICE_FUNCTION_PATHS_URI} ${SERVICE_FUNCTION_PATHS_FILE} End Suite Clean Datastore Delete All Sessions Clean Datastore [Documentation] Remove All Elements Remove All Elements If Exist ${SERVICE_FUNCTIONS_URI} Remove All Elements If Exist ${SERVICE_FORWARDERS_URI} Remove All Elements If Exist ${SERVICE_NODES_URI} Remove All Elements If Exist ${SERVICE_CHAINS_URI} Remove All Elements If Exist ${SERVICE_FUNCTION_PATHS_URI}