From: ebrjohn Date: Thu, 26 Jul 2018 11:15:47 +0000 (+0200) Subject: Refactor SFC_FullDeploy tests to not use RSP RPCs X-Git-Tag: pre-potassium~636 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=0cfc5e8d39493ddd1bf8750e2954d7185c8cb791;p=integration%2Ftest.git Refactor SFC_FullDeploy tests to not use RSP RPCs - The RSPs are no longer created via RPCs, but instead are created internally when the SFP is created. - Sandbox: https://jenkins.opendaylight.org/sandbox/job/sfc-csit-3node-docker-full-deploy-all-fluorine/ Change-Id: I33f980b7360b4f5ed2a92449559c182883b68d43 Signed-off-by: Brady Johnson --- diff --git a/csit/libraries/SFC/SfcKeywords.robot b/csit/libraries/SFC/SfcKeywords.robot index 2dafb53d85..327a48d6ae 100644 --- a/csit/libraries/SFC/SfcKeywords.robot +++ b/csit/libraries/SFC/SfcKeywords.robot @@ -1,16 +1,11 @@ *** Settings *** Documentation Common Keywords for the SFC Test suites. Library Collections -Resource ../../../libraries/Utils.robot +Resource ../Utils.robot *** Variables *** *** Keywords *** -Post Elements To URI As JSON - [Arguments] ${uri} ${data} - ${resp} = RequestsLibrary.Post Request session ${uri} data=${data} headers=${headers} - BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Get JSON Elements From URI [Arguments] ${uri} ${resp} = RequestsLibrary.Get Request session ${uri} @@ -19,8 +14,8 @@ Get JSON Elements From URI Check Classifier Flows ${flowList} = DockerSfc.Get Flows In Docker Containers BuiltIn.log ${flowList} - BuiltIn.Should Contain Match ${flowList} *actions=pop_nsh* - BuiltIn.Should Contain Match ${flowList} *actions=push_nsh* + BuiltIn.Should Contain ${flowList} *actions=pop_nsh* + BuiltIn.Should Contain ${flowList} *actions=push_nsh* Check Service Function Types Added [Arguments] ${elements} @@ -71,11 +66,22 @@ Get Rendered Service Path Name [Return] ${value} Create Sfp And Wait For Rsp Creation - [Arguments] ${sfp_file_name} ${created_sfps} + [Arguments] ${sfp_file_name} [Documentation] Given an SFP name, create it and wait for the associated RSPs to be created Utils.Add Elements To URI From File And Verify ${SERVICE_FUNCTION_PATHS_URI} ${sfp_file_name} - BuiltIn.Run Keyword If len(${created_sfps}) > 0 BuiltIn.Wait Until Keyword Succeeds 60s 2s Utils.Check For Elements At URI ${SERVICE_FUNCTION_PATHS_STATE_URI} - ... ${created_sfps} + ${sfp_dict} = Utils.Json Parse From File ${sfp_file_name} + ${sfps} = Collections.Get_From_Dictionary ${sfp_dict} service-function-paths + ${sfp_json_list} = Collections.Get_From_Dictionary ${sfps} service-function-path + ${list_length} = BuiltIn.Get Length ${sfp_json_list} + # Each SFP state entry returned from ODL will have either 2 or 3 name elements, 2 for non-symmetric 3 for symmetric RSP + : FOR ${i} IN RANGE ${list_length} + \ ${sfp_entry_dict} = Collections.Get From List ${sfp_json_list} ${i} + \ ${sfp_name} = Collections.Get_From_Dictionary ${sfp_entry_dict} name + \ ${status} ${symmetric} = BuiltIn.Run Keyword And Ignore Error Collections.Get_From_Dictionary ${sfp_entry_dict} symmetric + \ ${symmetric} = BuiltIn.Set Variable If "${status}" == "FAIL" False ${symmetric} + \ ${num_names} = BuiltIn.Set Variable If "${symmetric}" == "False" 2 3 + \ BuiltIn.Wait Until Keyword Succeeds 60s 2s Utils.Check For Specific Number Of Elements At URI ${SERVICE_FUNCTION_PATH_STATE_URI}${sfp_name} name + \ ... ${num_names} Delete Sfp And Wait For Rsps Deletion [Arguments] ${sfp_name} diff --git a/csit/libraries/Utils.robot b/csit/libraries/Utils.robot index 497dcb16d7..d7ca233ef5 100644 --- a/csit/libraries/Utils.robot +++ b/csit/libraries/Utils.robot @@ -320,21 +320,21 @@ Remove All Elements If Exist Add Elements To URI From File [Arguments] ${dest_uri} ${data_file} ${headers}=${headers} ${session}=session + [Documentation] Put data from a file to a URI ${body} OperatingSystem.Get File ${data_file} ${resp} RequestsLibrary.Put Request ${session} ${dest_uri} data=${body} headers=${headers} Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} Add Elements To URI From File And Verify [Arguments] ${dest_uri} ${data_file} ${headers}=${headers} ${session}=session + [Documentation] Put data from a file to a URI and verify the HTTP response ${body} OperatingSystem.Get File ${data_file} - ${resp} RequestsLibrary.Put Request ${session} ${dest_uri} data=${body} headers=${headers} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${resp} RequestsLibrary.Get Request ${session} ${dest_uri} - Should Not Be Equal ${resp.status_code} 404 + Add Elements to URI And Verify ${dest_uri} ${body} ${headers} ${session} Add Elements To URI And Verify - [Arguments] ${dest_uri} ${data_file} ${headers}=${headers} ${session}=session - ${resp} RequestsLibrary.Put Request ${session} ${dest_uri} ${data_file} headers=${headers} + [Arguments] ${dest_uri} ${data} ${headers}=${headers} ${session}=session + [Documentation] Put data to a URI and verify the HTTP response + ${resp} RequestsLibrary.Put Request ${session} ${dest_uri} ${data} headers=${headers} Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} ${resp} RequestsLibrary.Get Request ${session} ${dest_uri} Should Not Be Equal ${resp.status_code} 404 @@ -382,6 +382,14 @@ Get Data From URI Builtin.Log ${response.text} Builtin.Fail The request failed with code ${response.status_code} +Get URI And Verify + [Arguments] ${uri} ${session}=session ${headers}=${NONE} + [Documentation] Issue a GET request and verify a successfull HTTP return. + ... Issues a GET request for ${uri} in ${session} using headers from ${headers}. + ${response} = RequestsLibrary.Get Request ${session} ${uri} ${headers} + Builtin.Log ${response.status_code} + Should Contain ${ALLOWED_STATUS_CODES} ${response.status_code} + No Content From URI [Arguments] ${session} ${uri} ${headers}=${NONE} [Documentation] Issue a GET request and return on error 404 (No content) or will fail and log the content. diff --git a/csit/suites/sfc/Full_Deploy/010__sfc_full_deploy.robot b/csit/suites/sfc/Full_Deploy/010__sfc_full_deploy.robot index 4f459c92f7..d39d7e835e 100644 --- a/csit/suites/sfc/Full_Deploy/010__sfc_full_deploy.robot +++ b/csit/suites/sfc/Full_Deploy/010__sfc_full_deploy.robot @@ -1,5 +1,5 @@ *** Settings *** -Documentation Test suite for SFC Service Functions, Operates functions from Restconf APIs. +Documentation Test suite for SFC Rendered Service Paths and Classifiers. Suite Setup Init Suite Suite Teardown Cleanup Suite Library SSHLibrary @@ -14,89 +14,93 @@ Resource ../../../libraries/TemplatedRequests.robot Resource ../../../libraries/KarafKeywords.robot Resource ../../../libraries/DataModels.robot Resource ../../../libraries/SFC/DockerSfc.robot +Resource ../../../libraries/Utils.robot Variables ../../../variables/sfc/Modules.py -*** Variables *** -${CREATE_RSP1_INPUT} {"input":{"parent-service-function-path":"SFP1","name":"RSP1"}} -${CREATE_RSP_FAILURE_INPUT} {"input":{"parent-service-function-path":"SFC1-empty","name":"RSP1-empty-Path-1"}} -@{SF_NAMES} "name":"firewall-1" "name":"dpi-1" -@{INTERFACE_NAMES} v-ovsnsn6g1 v-ovsnsn1g1 - *** Test Cases *** Basic Environment Setup Tests - [Documentation] Prepare Basic Test Environment - 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_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} - Wait Until Keyword Succeeds 60s 2s Check Service Function Types Added ${SF_NAMES} - Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE} - Add Elements To URI From File ${SERVICE_METADATA_URI} ${SERVICE_METADATA_FILE} - Add Elements To URI From File ${SERVICE_FUNCTION_PATHS_URI} ${SERVICE_FUNCTION_PATHS_FILE} - Add Elements To URI From File ${SERVICE_FUNCTION_ACLS_URI} ${SERVICE_FUNCTION_ACLS_FILE} + [Documentation] Prepare Basic Test Environment. Full Deploy + Utils.Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} + Utils.Add Elements To URI From File ${SERVICE_NODES_URI} ${SERVICE_NODES_FILE} + Utils.Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} + BuiltIn.Wait Until Keyword Succeeds 60s 2s SfcKeywords.Check Service Function Types Added ${SF_NAMES} + Utils.Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE} + Utils.Add Elements To URI From File ${SERVICE_METADATA_URI} ${SERVICE_METADATA_FILE} + SfcKeywords.Create Sfp And Wait For Rsp Creation ${SERVICE_FUNCTION_PATHS_FILE} + ${rsp_name} = SfcKeywords.Get Rendered Service Path Name ${SFP_NAME} + ${rsp_rev_name} = SfcKeywords.Get Rendered Service Path Name ${SFP_NAME} True + ${mapping} = BuiltIn.Create Dictionary RSP1=${rsp_name} RSP1_Reverse=${rsp_rev_name} + ${sf_acl_text} = TemplatedRequests.Resolve_Text_From_Template_File folder=${CONFIG_DIR} file_name=${SERVICE_FUNCTION_ACLS_FILE} mapping=${mapping} + Utils.Add Elements To URI And Verify ${SERVICE_FUNCTION_ACLS_URI} ${sf_acl_text} -Create and Get Rendered Service Path - [Documentation] Create and Get Rendered Service Path Through RESTConf APIs - Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT} - ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${elements}= Create List RSP1 "parent-service-function-path":"SFP1" "hop-number":0 "service-index":255 "hop-number":1 +Get Rendered Service Path By Name + [Documentation] Get Rendered Service Path By Name Through RESTConf APIs. Full Deploy + # The RSP should be symetric, so 2 should be created for the SFP + ${rsp_name} = SfcKeywords.Get Rendered Service Path Name ${SFP_NAME} + Utils.Get URI And Verify ${OPERATIONAL_RSP_URI}${rsp_name} + ${rsp_rev_name} = SfcKeywords.Get Rendered Service Path Name ${SFP_NAME} True + Utils.Get URI And Verify ${OPERATIONAL_RSP_URI}${rsp_rev_name} + ${elements} = BuiltIn.Create List ${rsp_name} "parent-service-function-path":"${SFP_NAME}" "hop-number":0 "service-index":255 "hop-number":1 ... "service-index":254 - Check For Elements At URI ${OPERATIONAL_RSPS_URI} ${elements} + Utils.Check For Elements At URI ${OPERATIONAL_RSPS_URI} ${elements} Create and Get Classifiers - [Documentation] Apply json file descriptions of ACLs and Classifiers - Add Elements To URI From File ${SERVICE_CLASSIFIERS_URI} ${SERVICE_CLASSIFIERS_FILE} - ${classifiers}= Create List "service-function-classifiers" "service-function-classifier" "type":"ietf-access-control-list:ipv4-acl" "scl-service-function-forwarder" + [Documentation] Apply json file descriptions of ACLs and Classifiers. Full Deploy + Utils.Add Elements To URI From File ${SERVICE_CLASSIFIERS_URI} ${SERVICE_CLASSIFIERS_FILE} + ${classifiers}= BuiltIn.Create List "service-function-classifiers" "service-function-classifier" "type":"ietf-access-control-list:ipv4-acl" "scl-service-function-forwarder" Append To List ${classifiers} "name":"Classifier2" "name":"ACL2" Append To List ${classifiers} "name":"Classifier1" "name":"ACL1" - Check For Elements At URI ${SERVICE_CLASSIFIERS_URI} ${classifiers} - Wait Until Keyword Succeeds 60s 2s Check Classifier Flows + Utils.Check For Elements At URI ${SERVICE_CLASSIFIERS_URI} ${classifiers} + BuiltIn.Wait Until Keyword Succeeds 60s 2s SfcKeywords.Check Classifier Flows *** Keywords *** Init Suite [Documentation] Connect Create session and initialize ODL version specific variables - Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} + RequestsLibrary.Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} SSHLibrary.Open Connection ${TOOLS_SYSTEM_IP} timeout=3s SSHKeywords.Flexible Mininet Login - ${docker_cidr}= DockerSfc.Get Docker Bridge Subnet - ${docker_nw}= SfcUtils.Get Network From Cidr ${docker_cidr} - ${docker_mask}= SfcUtils.Get Mask From Cidr ${docker_cidr} - ${route_to_docker_net}= Set Variable sudo route add -net ${docker_nw} netmask ${docker_mask} gw ${TOOLS_SYSTEM_IP} - Run Command On Remote System ${ODL_SYSTEM_IP} ${route_to_docker_net} ${ODL_SYSTEM_USER} prompt=${ODL_SYSTEM_PROMPT} + ${docker_cidr} = DockerSfc.Get Docker Bridge Subnet + ${docker_nw} = SfcUtils.Get Network From Cidr ${docker_cidr} + ${docker_mask} = SfcUtils.Get Mask From Cidr ${docker_cidr} + ${route_to_docker_net} = BuiltIn.Set Variable sudo route add -net ${docker_nw} netmask ${docker_mask} gw ${TOOLS_SYSTEM_IP} + Utils.Run Command On Remote System ${ODL_SYSTEM_IP} ${route_to_docker_net} ${ODL_SYSTEM_USER} prompt=${ODL_SYSTEM_PROMPT} SSHLibrary.Put File ${CURDIR}/docker-ovs.sh . mode=0755 SSHLibrary.Put File ${CURDIR}/Dockerfile . mode=0755 SSHLibrary.Put File ${CURDIR}/setup-docker-image.sh . mode=0755 - ${result} SSHLibrary.Execute Command ./setup-docker-image.sh > >(tee myFile.log) 2> >(tee myFile.log) return_stderr=True return_stdout=True return_rc=True - log ${result} - Should be equal as integers ${result[2]} 0 + ${result} = SSHLibrary.Execute Command ./setup-docker-image.sh > >(tee myFile.log) 2> >(tee myFile.log) return_stderr=True return_stdout=True return_rc=True + BuiltIn.log ${result} + BuiltIn.Should be equal as integers ${result[2]} 0 + BuiltIn.Set Suite Variable @{INTERFACE_NAMES} v-ovsnsn6g1 v-ovsnsn1g1 DockerSfc.Docker Ovs Start nodes=6 guests=1 tunnel=vxlan-gpe odl_ip=${ODL_SYSTEM_IP} - Wait Until Keyword Succeeds 60s 2s Check For Elements At URI ${OVSDB_TOPOLOGY_URI} ${INTERFACE_NAMES} - ${docker_name_list}= DockerSfc.Get Docker Names As List - Set Suite Variable ${DOCKER_NAMES_LIST} ${docker_name_list} - log ${ODL_STREAM} - Set Suite Variable ${CONFIG_DIR} ${CURDIR}/../../../variables/sfc/master/full-deploy - Set Suite Variable ${SERVICE_FUNCTIONS_FILE} ${CONFIG_DIR}/service-functions.json - Set Suite Variable ${SERVICE_FORWARDERS_FILE} ${CONFIG_DIR}/service-function-forwarders.json - Set Suite Variable ${SERVICE_NODES_FILE} ${CONFIG_DIR}/service-nodes.json - Set Suite Variable ${SERVICE_CHAINS_FILE} ${CONFIG_DIR}/service-function-chains.json - Set Suite Variable ${SERVICE_FUNCTION_PATHS_FILE} ${CONFIG_DIR}/service-function-paths.json - Set Suite Variable ${SERVICE_METADATA_FILE} ${CONFIG_DIR}/service-function-metadata.json - Set Suite Variable ${SERVICE_FUNCTION_ACLS_FILE} ${CONFIG_DIR}/service-function-acls.json - Set Suite Variable ${SERVICE_CLASSIFIERS_FILE} ${CONFIG_DIR}/service-function-classifiers.json - Switch Ips In Json Files ${CONFIG_DIR} ${DOCKER_NAMES_LIST} + BuiltIn.Wait Until Keyword Succeeds 60s 2s Utils.Check For Elements At URI ${OVSDB_TOPOLOGY_URI} ${INTERFACE_NAMES} + ${docker_name_list} = DockerSfc.Get Docker Names As List + BuiltIn.Set Suite Variable ${DOCKER_NAMES_LIST} ${docker_name_list} + BuiltIn.log ${ODL_STREAM} + BuiltIn.Set Suite Variable ${SFP_NAME} SFP1 + BuiltIn.Set Suite Variable ${CONFIG_DIR} ${CURDIR}/../../../variables/sfc/master/full-deploy + BuiltIn.Set Suite Variable ${SERVICE_FUNCTIONS_FILE} ${CONFIG_DIR}/service-functions.json + BuiltIn.Set Suite Variable ${SERVICE_FORWARDERS_FILE} ${CONFIG_DIR}/service-function-forwarders.json + BuiltIn.Set Suite Variable ${SERVICE_NODES_FILE} ${CONFIG_DIR}/service-nodes.json + BuiltIn.Set Suite Variable ${SERVICE_CHAINS_FILE} ${CONFIG_DIR}/service-function-chains.json + BuiltIn.Set Suite Variable ${SERVICE_FUNCTION_PATHS_FILE} ${CONFIG_DIR}/service-function-paths.json + BuiltIn.Set Suite Variable ${SERVICE_METADATA_FILE} ${CONFIG_DIR}/service-function-metadata.json + BuiltIn.Set Suite Variable ${SERVICE_FUNCTION_ACLS_FILE} service-function-acls.json + BuiltIn.Set Suite Variable ${SERVICE_CLASSIFIERS_FILE} ${CONFIG_DIR}/service-function-classifiers.json + BuiltIn.Set Suite Variable @{SF_NAMES} "firewall-1" "dpi-1" + SfcKeywords.Switch Ips In Json Files ${CONFIG_DIR} ${DOCKER_NAMES_LIST} Cleanup Suite [Documentation] Clean up all docker containers created and delete sessions - Get Model Dump ${ODL_SYSTEM_IP} ${sfc_data_models} - Remove All Elements At URI ${SERVICE_CLASSIFIERS_URI} - Remove All Elements At URI ${SERVICE_FUNCTION_ACLS_URI} - Remove All Elements At URI ${SERVICE_FUNCTIONS_URI} - Wait Until Keyword Succeeds 60s 2s Check Service Function Types Removed ${SF_NAMES} - Remove All Elements At URI ${SERVICE_FORWARDERS_URI} - Remove All Elements At URI ${SERVICE_NODES_URI} - Remove All Elements At URI ${SERVICE_CHAINS_URI} - Remove All Elements At URI ${SERVICE_FUNCTION_PATHS_URI} - Remove All Elements At URI ${SERVICE_METADATA_URI} + DataModels.Get Model Dump ${ODL_SYSTEM_IP} ${sfc_data_models} + Utils.Remove All Elements At URI ${SERVICE_CLASSIFIERS_URI} + Utils.Remove All Elements At URI ${SERVICE_FUNCTION_ACLS_URI} + SfcKeywords.Delete Sfp And Wait For Rsps Deletion ${SFP_NAME} + Utils.Remove All Elements At URI ${SERVICE_FUNCTIONS_URI} + BuiltIn.Wait Until Keyword Succeeds 60s 2s SfcKeywords.Check Service Function Types Removed ${SF_NAMES} + Utils.Remove All Elements At URI ${SERVICE_FORWARDERS_URI} + Utils.Remove All Elements At URI ${SERVICE_NODES_URI} + Utils.Remove All Elements At URI ${SERVICE_CHAINS_URI} + Utils.Remove All Elements At URI ${SERVICE_METADATA_URI} DockerSfc.Docker Ovs Clean log_file=myFile4.log - Delete All Sessions + RequestsLibrary.Delete All Sessions SSHLibrary.Close Connection diff --git a/csit/suites/sfc/Full_Deploy/015__sfc_rendered_service_paths_logical.robot b/csit/suites/sfc/Full_Deploy/015__sfc_rendered_service_paths_logical.robot index 40575e957c..eeeb0a49a7 100644 --- a/csit/suites/sfc/Full_Deploy/015__sfc_rendered_service_paths_logical.robot +++ b/csit/suites/sfc/Full_Deploy/015__sfc_rendered_service_paths_logical.robot @@ -1,9 +1,7 @@ *** Settings *** -Documentation Test suite for SFC Service Functions, Operates functions from Restconf APIs. Logical SFF +Documentation Test suite for SFC Rendered Service Paths. Logical SFF Suite Setup Init Suite -Suite Teardown Delete All Sessions -Test Setup Create All Elements -Test Teardown Delete All Elements +Suite Teardown Delete All Elements Library SSHLibrary Library Collections Library OperatingSystem @@ -14,123 +12,65 @@ Resource ../../../variables/sfc/Variables.robot Resource ../../../libraries/Utils.robot Resource ../../../libraries/TemplatedRequests.robot -*** Variables *** -${VERSION_DIR} master -${SERVICE_FUNCTIONS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-functions-logicalsff.json -${SERVICE_FORWARDERS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-forwarders-logicallsff.json -${SERVICE_CHAINS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-chains-logicalsff.json -${SERVICE_FUNCTION_PATHS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-paths-logicalsff.json -${CREATE_RSP1_INPUT} {"input":{"name": "RSP1","parent-service-function-path": "SFP1","symmetric": "true"}} -${CREATE_RSP2_INPUT} {"input":{"name": "RSP2","parent-service-function-path": "SFP2","symmetric": "true"}} -${CREATE_RSP_FAILURE_INPUT} {"input":{"name": "RSP1","parent-service-function-path": "SFP3","symmetric": "true"}} -${DELETE_RSP1_INPUT} {"input":{"name":"RSP1"}} -${DELETE_RSP1_REVERSE_INPUT} {"input":{"name":"RSP1-Reverse"}} -${DELETE_RSP2_INPUT} {"input":{"name":"RSP2"}} -@{SF_NAMES} "name":"firewall-1" "name":"dpi-1" - *** Test Cases *** Basic Environment Setup Tests [Documentation] Prepare Basic Test Environment. Logical SFF - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} - Wait Until Keyword Succeeds 60s 2s Check Service Function Types Added ${SF_NAMES} - 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} - -Create and Get Rendered Service Path - [Documentation] Create and Get Rendered Service Path Through RESTConf APIs. Logical SFF - [Tags] include - Post Elements To URI ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT} - ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${elements1}= Create List RSP1 "parent-service-function-path":"SFP1" "service-chain-name":"SFC1" "hop-number":0 "service-index":255 - ... "hop-number":1 "service-index":254 "service-function-forwarder":"sfflogical1" "sfc-encapsulation":"service-locator:nsh" - ${elements2}= Create List RSP1-Reverse "parent-service-function-path":"SFP1" "service-chain-name":"SFC1" "hop-number":0 "service-index":255 - ... "hop-number":1 "service-index":254 "service-function-forwarder":"sfflogical1" "sfc-encapsulation":"service-locator:nsh" - ${elements}= Combine Lists ${elements1} ${elements2} - Check For Elements At URI ${OPERATIONAL_RSPS_URI} ${elements} - -Create Get Rendered Service Path Failure - [Documentation] Create Rendered Service Path Failure Cases. Logical SFF - ${resp} RequestsLibrary.Post Request session ${OPERATIONS_CREATE_RSP_URI} data=${CREATE_RSP_FAILURE_INPUT} headers=${headers} - Should Be Equal As Strings ${resp.status_code} 500 + Utils.Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} + Utils.Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} + BuiltIn.Wait Until Keyword Succeeds 60s 2s SfcKeywords.Check Service Function Types Added ${SF_NAMES} + Utils.Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE} + SfcKeywords.Create Sfp And Wait For Rsp Creation ${SERVICE_FUNCTION_PATHS_FILE} Get Rendered Service Path By Name [Documentation] Get Rendered Service Path By Name Through RESTConf APIs. Logical SFF - Post Elements To URI ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT} - ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/RSP1 - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${elements}= Create List RSP1 "parent-service-function-path":"SFP1" "hop-number":0 "service-index":255 "hop-number":1 - ... "service-index":254 - Check For Elements At URI ${OPERATIONAL_RSPS_URI} ${elements} - -Get Non Existing Rendered Service Path - [Documentation] Get Non Existing Rendered Service Path Through RESTConf APIs. Logical SFF - Post Elements To URI ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT} - ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/non-existing-rsp - Should Be Equal As Strings ${resp.status_code} 404 - ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Not Contain ${resp.content} non-existing-rsp + # The RSP should be symetric, so 2 should be created for the SFP + ${rsp_name} = SfcKeywords.Get Rendered Service Path Name ${SFP_NAME} + Utils.Get URI And Verify ${OPERATIONAL_RSP_URI}${rsp_name} + ${rsp_name_rev} = SfcKeywords.Get Rendered Service Path Name ${SFP_NAME} + Utils.Get URI And Verify ${OPERATIONAL_RSP_URI}${rsp_name_rev} + ${elements} = Create List "parent-service-function-path":"${SFP_NAME}" "hop-number":0 "service-index":255 "hop-number":1 "service-index":254 + Utils.Check For Elements At URI ${OPERATIONAL_RSPS_URI} ${elements} Delete one Rendered Service Path By Name [Documentation] Delete One Rendered Service Path By Name Through RESTConf APIs. Logical SFF - Post Elements To URI ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT} - ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/RSP1-Reverse - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Contain ${resp.content} RSP1-Reverse - Post Elements To URI ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP1_REVERSE_INPUT} - ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/RSP1-Reverse - Should Be Equal As Strings ${resp.status_code} 404 - ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Not Contain ${resp.content} RSP1-Reverse - -Delete Non Existing Rendered Service Path By Name - [Documentation] Delete One Rendered Service Path By Name Through RESTConf APIs. Logical SFF - Post Elements To URI ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT} - ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/RSP1 - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Contain ${resp.content} RSP1 - Post Elements To URI ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP2_INPUT} - ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Not Contain ${resp.content} {"rendered-service-paths":{}} + # First verify that the RSPs exist + ${rsp_name} = SfcKeywords.Get Rendered Service Path Name ${SFP_NAME} + Utils.Get URI And Verify ${OPERATIONAL_RSP_URI}${rsp_name} + ${rsp_name_rev} = SfcKeywords.Get Rendered Service Path Name ${SFP_NAME} True + Utils.Get URI And Verify ${OPERATIONAL_RSP_URI}${rsp_name_rev} + # Delete the SFP, which will delete the RSPs + SfcKeywords.Delete Sfp And Wait For Rsps Deletion ${SFP_NAME} Get Rendered Service Path Hop [Documentation] Get Rendered Service Path By Name Through RESTConf APIs. Logical SFF - Post Elements To URI ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT} - ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/RSP1/rendered-service-path-hop/0/ - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${elements}= Create List "hop-number":0 "service-index":255 "service-function-name":"dpi-1 - Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/RSP1/rendered-service-path-hop/0/ ${elements} - ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/RSP1/rendered-service-path-hop/1/ - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${elements}= Create List "hop-number":1 "service-index":254 "service-function-name":"firewall-1 - Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/RSP1/rendered-service-path-hop/1/ ${elements} - ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/RSP1/rendered-service-path-hop/2/ - Should Be Equal As Strings ${resp.status_code} 404 - Post Elements To URI ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP1_INPUT} + # Create the SFP, which will create the RSPs + SfcKeywords.Create Sfp And Wait For Rsp Creation ${SERVICE_FUNCTION_PATHS_FILE} + ${rsp_name} = SfcKeywords.Get Rendered Service Path Name ${SFP_NAME} + ${elements} = BuiltIn.Create List "hop-number":0 "service-index":255 "service-function-name":"dpi-1 + Utils.Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/${rsp_name}/rendered-service-path-hop/0/ ${elements} + ${elements} = BuiltIn.Create List "hop-number":1 "service-index":254 "service-function-name":"firewall-1 + Utils.Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/${rsp_name}/rendered-service-path-hop/1/ ${elements} + ${resp} = RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/RSP1/rendered-service-path-hop/2/ + BuiltIn.Should Be Equal As Strings ${resp.status_code} 404 *** 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} + RequestsLibrary.Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} + BuiltIn.log ${ODL_STREAM} + BuiltIn.Set Suite Variable ${SFP_NAME} SFP1 + BuiltIn.Set Suite Variable ${VERSION_DIR} master + BuiltIn.Set Suite Variable ${SERVICE_FUNCTIONS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-functions-logicalsff.json + BuiltIn.Set Suite Variable ${SERVICE_FORWARDERS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-forwarders-logicallsff.json + BuiltIn.Set Suite Variable ${SERVICE_CHAINS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-chains-logicalsff.json + BuiltIn.Set Suite Variable ${SERVICE_FUNCTION_PATHS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-paths-logicalsff.json + BuiltIn.Set Suite Variable @{SF_NAMES} "name":"firewall-1" "name":"dpi-1" Delete All Elements [Documentation] Delete all provisioned elements - Remove All Elements If Exist ${RENDERED_SERVICE_PATHS_URI} - Remove All Elements If Exist ${SERVICE_FUNCTION_PATHS_URI} - Remove All Elements If Exist ${SERVICE_CHAINS_URI} - Remove All Elements If Exist ${SERVICE_FORWARDERS_URI} - Remove All Elements If Exist ${SERVICE_FUNCTIONS_URI} - Wait Until Keyword Succeeds 60s 2s Check Service Function Types Removed ${SF_NAMES} - -Create All Elements - [Documentation] Delete all provisioned elements - Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} - Wait Until Keyword Succeeds 60s 2s Check Service Function Types Added ${SF_NAMES} - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_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} + Utils.Remove All Elements If Exist ${SERVICE_FUNCTION_PATHS_URI} + Utils.Remove All Elements If Exist ${SERVICE_CHAINS_URI} + Utils.Remove All Elements If Exist ${SERVICE_FORWARDERS_URI} + Utils.Remove All Elements If Exist ${SERVICE_FUNCTIONS_URI} + BuiltIn.Wait Until Keyword Succeeds 60s 2s SfcKeywords.Check Service Function Types Removed ${SF_NAMES} + RequestsLibrary.Delete All Sessions diff --git a/csit/suites/sfc/Full_Deploy/016__sfc_symmetric_RSP.robot b/csit/suites/sfc/Full_Deploy/016__sfc_symmetric_RSP.robot deleted file mode 100644 index 99a1809ee7..0000000000 --- a/csit/suites/sfc/Full_Deploy/016__sfc_symmetric_RSP.robot +++ /dev/null @@ -1,90 +0,0 @@ -*** 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 ../../../libraries/SFC/SfcKeywords.robot -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"}} -@{SF_NAMES} "name":"firewall-1" "name":"dpi-1" "name":"dpi-2" - -*** 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} - Wait Until Keyword Succeeds 60s 2s Check Service Function Types Added ${SF_NAMES} - 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} - Wait Until Keyword Succeeds 60s 2s Check Service Function Types Removed ${SF_NAMES} - 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} diff --git a/csit/suites/sfc/SFC_Basic/070__sfc_rendered_service_paths.robot b/csit/suites/sfc/SFC_Basic/070__sfc_rendered_service_paths.robot index b22ad64ecc..a2da4c1a80 100644 --- a/csit/suites/sfc/SFC_Basic/070__sfc_rendered_service_paths.robot +++ b/csit/suites/sfc/SFC_Basic/070__sfc_rendered_service_paths.robot @@ -21,8 +21,7 @@ Basic Environment Setup Tests BuiltIn.Wait Until Keyword Succeeds 60s 2s SfcKeywords.Check Service Function Types Added ${SERVICE_FUNCTION_NAMES} Utils.Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE} # Creates SFPs: SFC1-100, SFC1-200, SFC1-300, SFC2-100, and SFC2-200 - ${created_sfps} = BuiltIn.Create List "SFC1-100" "SFC1-200" "SFC1-300" "SFC2-100" "SFC2-200" - SfcKeywords.Create Sfp And Wait For Rsp Creation ${SERVICE_FUNCTION_PATHS_FILE} ${created_sfps} + SfcKeywords.Create Sfp And Wait For Rsp Creation ${SERVICE_FUNCTION_PATHS_FILE} Get Rendered Service Path By Name [Documentation] Get The Rendered Service Path Created in "Basic Environment Setup Tests" By Name Via RESTConf APIs @@ -67,8 +66,7 @@ Generate RSPs with Random Schedule Algorithm type Utils.Add Elements To URI From File ${SERVICE_RANDOM_SCHED_TYPE_URI} ${SERVICE_RANDOM_SCHED_TYPE_FILE} SfcKeywords.Delete All Sfps And Wait For Rsps Deletion # Create the SFPs which will create the RSPs with the Random scheduler - ${created_sfps} = BuiltIn.Create List "SFC1-100" "SFC1-200" "SFC1-300" "SFC2-100" "SFC2-200" - SfcKeywords.Create Sfp And Wait For Rsp Creation ${SERVICE_FUNCTION_PATHS_FILE} ${created_sfps} + SfcKeywords.Create Sfp And Wait For Rsp Creation ${SERVICE_FUNCTION_PATHS_FILE} ${sfp_name} = BuiltIn.Set Variable SFC1-100 ${rsp_name} = SfcKeywords.Get Rendered Service Path Name ${sfp_name} ${elements} = BuiltIn.Create List "hop-number":0 "service-index":255 "service-function-name":"dpi @@ -85,8 +83,7 @@ Generate RSPs with Round Robin Schedule Algorithm type Utils.Add Elements To URI From File ${SERVICE_ROUNDROBIN_SCHED_TYPE_URI} ${SERVICE_ROUNDROBIN_SCHED_TYPE_FILE} SfcKeywords.Delete All Sfps And Wait For Rsps Deletion # Create the SFPs which will create the RSPs with the Random scheduler - ${created_sfps} = BuiltIn.Create List "SFC1-100" "SFC1-200" "SFC1-300" "SFC2-100" "SFC2-200" - SfcKeywords.Create Sfp And Wait For Rsp Creation ${SERVICE_FUNCTION_PATHS_FILE} ${created_sfps} + SfcKeywords.Create Sfp And Wait For Rsp Creation ${SERVICE_FUNCTION_PATHS_FILE} ${rsp1_name} = SfcKeywords.Get Rendered Service Path Name SFC1-100 ${rsp2_name} = SfcKeywords.Get Rendered Service Path Name SFC1-200 ${rsp3_name} = SfcKeywords.Get Rendered Service Path Name SFC1-300 @@ -132,8 +129,7 @@ Generate RSPs with Shortest Path Schedule Algorithm type Utils.Add Elements To URI From File ${SERVICE_SHORTESTPATH_SCHED_TYPE_URI} ${SERVICE_SHORTESTPATH_SCHED_TYPE_FILE} SfcKeywords.Delete All Sfps And Wait For Rsps Deletion # Create the SFPs which will create the RSPs with the Random scheduler - ${created_sfps} = BuiltIn.Create List "SFC1-100" "SFC1-200" "SFC1-300" "SFC2-100" "SFC2-200" - SfcKeywords.Create Sfp And Wait For Rsp Creation ${SERVICE_FUNCTION_PATHS_FILE} ${created_sfps} + SfcKeywords.Create Sfp And Wait For Rsp Creation ${SERVICE_FUNCTION_PATHS_FILE} ${rsp1_name} = SfcKeywords.Get Rendered Service Path Name SFC1-100 ${rsp2_name} = SfcKeywords.Get Rendered Service Path Name SFC1-200 ${rsp3_name} = SfcKeywords.Get Rendered Service Path Name SFC1-300 diff --git a/csit/variables/sfc/Variables.robot b/csit/variables/sfc/Variables.robot index ca91fd3e8c..1f688b299d 100644 --- a/csit/variables/sfc/Variables.robot +++ b/csit/variables/sfc/Variables.robot @@ -2,7 +2,6 @@ # Generic Service Chains and Function URIs ${REST_CONFIG} /restconf/config ${REST_OPER} /restconf/operational -${REST_RPC} /restconf/operations ${SERVICE_FUNCTION_TYPES_URI} ${REST_CONFIG}/service-function-type:service-function-types/ ${SERVICE_FUNCTIONS_URI} ${REST_CONFIG}/service-function:service-functions/ ${SERVICE_FUNCTION_URI} ${REST_CONFIG}/service-function:service-functions/service-function/ @@ -25,7 +24,4 @@ ${SERVICE_SHORTESTPATH_SCHED_TYPE_URI} ${SERVICE_SCHED_TYPE_URI_BASE}shortest ${SERVICE_METADATA_URI} ${REST_CONFIG}/service-function-path-metadata:service-function-metadata/ ${OPERATIONAL_RSPS_URI} ${REST_OPER}/rendered-service-path:rendered-service-paths/ ${OPERATIONAL_RSP_URI} ${OPERATIONAL_RSPS_URI}rendered-service-path/ -${OPERATIONS_CREATE_RSP_URI} ${REST_RPC}/rendered-service-path:create-rendered-path/ -${OPERATIONS_DELETE_RSP_URI} ${REST_RPC}/rendered-service-path:delete-rendered-path/ -${RENDERED_SERVICE_PATHS_URI} ${REST_CONFIG}/rendered-service-path:rendered-service-paths/ ${OVSDB_TOPOLOGY_URI} ${REST_OPER}/network-topology:network-topology/topology/ovsdb:1 diff --git a/csit/variables/sfc/master/full-deploy/service-function-acls.json b/csit/variables/sfc/master/full-deploy/service-function-acls.json index 3fb7a35ad3..c58a9e64e1 100644 --- a/csit/variables/sfc/master/full-deploy/service-function-acls.json +++ b/csit/variables/sfc/master/full-deploy/service-function-acls.json @@ -9,7 +9,7 @@ { "rule-name": "ACE1", "actions": { - "service-function-acl:rendered-service-path": "RSP1" + "service-function-acl:rendered-service-path": "$RSP1" }, "matches": { "destination-ipv4-network": "192.168.2.0/24", @@ -34,7 +34,7 @@ { "rule-name": "ACE2", "actions": { - "service-function-acl:rendered-service-path": "RSP1-Reverse" + "service-function-acl:rendered-service-path": "$RSP1_Reverse" }, "matches": { "destination-ipv4-network": "192.168.2.0/24",