From 371b104b282d1b91005f1efd6c08168a48cc4f6f Mon Sep 17 00:00:00 2001 From: Oleksandr Zharov Date: Wed, 3 Jan 2024 20:52:06 +0100 Subject: [PATCH] Remove testplans and suites for sfc Removed testplans and suites for sfc project. JIRA: INTTEST-140 Change-Id: Iba7934a045d348a2ee23b462e5e66d74c916be42 Signed-off-by: Oleksandr Zharov --- .../Full_Deploy/010__sfc_full_deploy.robot | 140 ------- .../Full_Deploy/011__sfc_service_paths.robot | 98 ----- .../012__sfc_service_paths_validation.robot | 140 ------- .../013__sfc_service_functions_logical.robot | 95 ----- .../014__sfc_service_forwarders_logical.robot | 82 ---- ...__sfc_rendered_service_paths_logical.robot | 120 ------ csit/suites/sfc/Full_Deploy/Dockerfile | 54 --- csit/suites/sfc/Full_Deploy/docker-ovs.sh | 376 ------------------ .../sfc/Full_Deploy/setup-docker-image.sh | 91 ----- .../010__sfc_service_functions.robot | 125 ------ .../020__sfc_service_forwarders.robot | 282 ------------- .../SFC_Basic/030__sfc_service_nodes.robot | 90 ----- .../SFC_Basic/040__sfc_service_chains.robot | 137 ------- .../050__sfc_service_schedule_types.robot | 90 ----- .../SFC_Basic/060__sfc_service_paths.robot | 97 ----- .../070__sfc_rendered_service_paths.robot | 270 ------------- .../080__sfc_simple_clustering.robot | 60 --- .../120__sfc_service_function_acl.robot | 65 --- ...140__sfc_service_function_classifier.robot | 67 ---- .../020__sfc_persistency.robot | 96 ----- csit/testplans/sfc-full-deploy.txt | 3 - csit/testplans/sfc-rest-basic.txt | 2 - 22 files changed, 2580 deletions(-) delete mode 100644 csit/suites/sfc/Full_Deploy/010__sfc_full_deploy.robot delete mode 100644 csit/suites/sfc/Full_Deploy/011__sfc_service_paths.robot delete mode 100644 csit/suites/sfc/Full_Deploy/012__sfc_service_paths_validation.robot delete mode 100644 csit/suites/sfc/Full_Deploy/013__sfc_service_functions_logical.robot delete mode 100644 csit/suites/sfc/Full_Deploy/014__sfc_service_forwarders_logical.robot delete mode 100644 csit/suites/sfc/Full_Deploy/015__sfc_rendered_service_paths_logical.robot delete mode 100644 csit/suites/sfc/Full_Deploy/Dockerfile delete mode 100755 csit/suites/sfc/Full_Deploy/docker-ovs.sh delete mode 100755 csit/suites/sfc/Full_Deploy/setup-docker-image.sh delete mode 100644 csit/suites/sfc/SFC_Basic/010__sfc_service_functions.robot delete mode 100644 csit/suites/sfc/SFC_Basic/020__sfc_service_forwarders.robot delete mode 100644 csit/suites/sfc/SFC_Basic/030__sfc_service_nodes.robot delete mode 100644 csit/suites/sfc/SFC_Basic/040__sfc_service_chains.robot delete mode 100644 csit/suites/sfc/SFC_Basic/050__sfc_service_schedule_types.robot delete mode 100644 csit/suites/sfc/SFC_Basic/060__sfc_service_paths.robot delete mode 100644 csit/suites/sfc/SFC_Basic/070__sfc_rendered_service_paths.robot delete mode 100644 csit/suites/sfc/SFC_Basic/080__sfc_simple_clustering.robot delete mode 100644 csit/suites/sfc/SFC_Basic/120__sfc_service_function_acl.robot delete mode 100644 csit/suites/sfc/SFC_Basic/140__sfc_service_function_classifier.robot delete mode 100644 csit/suites/sfc/SFC_Persistency/020__sfc_persistency.robot delete mode 100644 csit/testplans/sfc-full-deploy.txt delete mode 100644 csit/testplans/sfc-rest-basic.txt diff --git a/csit/suites/sfc/Full_Deploy/010__sfc_full_deploy.robot b/csit/suites/sfc/Full_Deploy/010__sfc_full_deploy.robot deleted file mode 100644 index 02aa571b6b..0000000000 --- a/csit/suites/sfc/Full_Deploy/010__sfc_full_deploy.robot +++ /dev/null @@ -1,140 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Rendered Service Paths and Classifiers. - -Library SSHLibrary -Library Collections -Library OperatingSystem -Library RequestsLibrary -Library ../../../libraries/SFC/SfcUtils.py -Resource ../../../libraries/SFC/SfcKeywords.robot -Resource ../../../variables/sfc/Variables.robot -Resource ../../../libraries/SSHKeywords.robot -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 - -Suite Setup Init Suite -Suite Teardown Cleanup Suite - - -*** Test Cases *** -Basic Environment Setup Tests - [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} - -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 - Utils.Check For Elements At URI ${OPERATIONAL_RSPS_URI} ${elements} - -Create and Get Classifiers - [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" - 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 - 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} = 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 ${ODL_STREAM} > >(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} - 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 - 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 - RequestsLibrary.Delete All Sessions - SSHLibrary.Close Connection diff --git a/csit/suites/sfc/Full_Deploy/011__sfc_service_paths.robot b/csit/suites/sfc/Full_Deploy/011__sfc_service_paths.robot deleted file mode 100644 index 4b41480603..0000000000 --- a/csit/suites/sfc/Full_Deploy/011__sfc_service_paths.robot +++ /dev/null @@ -1,98 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Service Function Paths, Operates paths from Restconf APIs. - -Library SSHLibrary -Library Collections -Library OperatingSystem -Library RequestsLibrary -Resource ../../../variables/sfc/Variables.robot -Resource ../../../variables/Variables.robot -Resource ../../../libraries/Utils.robot -Resource ../../../libraries/TemplatedRequests.robot - -Suite Setup Init Suite -Suite Teardown Delete All Sessions -Test Setup Remove All Elements If Exist ${SERVICE_FUNCTION_PATHS_URI} - - -*** Test Cases *** -Add Service Function Paths - [Documentation] Add Service Function Paths from JSON file - Add Elements To URI From File ${SERVICE_FUNCTION_PATHS_URI} ${SERVICE_FUNCTION_PATHS_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FUNCTION_PATHS_FILE} - ${jsonbody} To Json ${body} - ${paths} Get From Dictionary ${jsonbody} service-function-paths - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${path} Get From Dictionary ${result} service-function-paths - Lists Should be Equal ${path} ${paths} - -Delete All Service Function Paths - [Documentation] Delete all Service Function Paths - Add Elements To URI From File ${SERVICE_FUNCTION_PATHS_URI} ${SERVICE_FUNCTION_PATHS_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SERVICE_FUNCTION_PATHS_URI} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Be Equal As Strings ${resp.status_code} 404 - -Get one Service Function Path - [Documentation] Get one Service Function Path - Add Elements To URI From File ${SERVICE_FUNCTION_PATHS_URI} ${SERVICE_FUNCTION_PATHS_FILE} - ${elements} Create List SFC1-100 "service-chain-name":"SFC1" - Check For Elements At URI ${SERVICE_FUNCTION_PATH_URI}/SFC1-100 ${elements} - -Get A Non-existing Service Function Path - [Documentation] Get A Non-existing Service Function Path - Add Elements To URI From File ${SERVICE_FUNCTION_PATHS_URI} ${SERVICE_FUNCTION_PATHS_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATH_URI}/non-existing-sfp - Should Be Equal As Strings ${resp.status_code} 404 - -Delete A Service Function Path - [Documentation] Delete A Service Function Path - Add Elements To URI From File ${SERVICE_FUNCTION_PATHS_URI} ${SERVICE_FUNCTION_PATHS_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATH_URI}/SFC1-100 - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SERVICE_FUNCTION_PATH_URI}/SFC1-100 - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATH_URI}/SFC1-100 - Should Be Equal As Strings ${resp.status_code} 404 - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Not Contain ${resp.text} SFC1-100 - -Delete A Non-existing Empty Service Function Path - [Documentation] Delete A Non existing Service Function Path - Add Elements To URI From File ${SERVICE_FUNCTION_PATHS_URI} ${SERVICE_FUNCTION_PATHS_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FUNCTION_PATHS_FILE} - ${jsonbody} To Json ${body} - ${paths} Get From Dictionary ${jsonbody} service-function-paths - ${resp} RequestsLibrary.Delete Request session ${SERVICE_FUNCTION_PATH_URI}/non-existing-sfp - Should Be Equal As Strings ${resp.status_code} 404 - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${path} Get From Dictionary ${result} service-function-paths - Lists Should be Equal ${path} ${paths} - -Put one Service Function - [Documentation] Put one Service Function - Add Elements To URI From File ${SERVICE_FUNCTION_PATH400_URI} ${SERVICE_FUNCTION_PATH400_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATH400_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Contain ${resp.text} SFC1-400 - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Contain ${resp.text} SFC1-400 - - -*** Keywords *** -Init Suite - [Documentation] Initialize session and ODL version specific variables - Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} - log ${ODL_STREAM} - Set Suite Variable ${VERSION_DIR} master - Set Suite Variable ${TEST_DIR} ${CURDIR}/../../../variables/sfc/${VERSION_DIR} - Set Suite Variable ${SERVICE_FUNCTION_PATHS_FILE} ${TEST_DIR}/service-function-paths.json - Set Suite Variable ${SERVICE_FUNCTION_PATH400_URI} ${SERVICE_FUNCTION_PATH_URI}/SFC1-400 - Set Suite Variable ${SERVICE_FUNCTION_PATH400_FILE} ${TEST_DIR}/sfp_sfc1_path400.json diff --git a/csit/suites/sfc/Full_Deploy/012__sfc_service_paths_validation.robot b/csit/suites/sfc/Full_Deploy/012__sfc_service_paths_validation.robot deleted file mode 100644 index 6096c544e7..0000000000 --- a/csit/suites/sfc/Full_Deploy/012__sfc_service_paths_validation.robot +++ /dev/null @@ -1,140 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Service Function Paths validation. This validation is in charge of verifying that the SF types for the SFs defined in newly added SFPs are consistent with SF types defined in the referenced SFC. - -Library SSHLibrary -Library Collections -Library OperatingSystem -Library RequestsLibrary -Resource ../../../libraries/CompareStream.robot -Resource ../../../libraries/TemplatedRequests.robot -Resource ../../../libraries/Utils.robot -Resource ../../../variables/Variables.robot -Resource ../../../variables/sfc/Variables.robot - -Suite Setup Init Suite -Suite Teardown Delete All Sessions -Test Setup Remove All Elements If Exist ${SERVICE_FUNCTION_PATHS_URI} -Test Teardown Clean_All_URIs - - -*** Test Cases *** -Add Service Function Path referencing a non-existing SF - [Documentation] Add Service Function Paths from JSON file - CompareStream.Run_Keyword_If_Equals_Else - ... neon - ... Add Elements To URI From File And Check Validation Error - ... ${SERVICE_FUNCTION_PATHS_URI} - ... ${SERVICE_FUNCTION_PATHS_WITH_HOP_FILE} - ... ELSE - ... Add Elements To URI From File And Check Server Error - ... ${SERVICE_FUNCTION_PATHS_URI} - ... ${SERVICE_FUNCTION_PATHS_WITH_HOP_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FUNCTION_PATHS_WITH_HOP_FILE} - ${jsonbody} To Json ${body} - ${paths} Get From Dictionary ${jsonbody} service-function-paths - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Be Equal As Strings ${resp.status_code} 404 - -Add Service Function Path referencing a non-existing SFC - [Documentation] Add Service Function Paths from JSON file - Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} - CompareStream.Run_Keyword_If_Equals_Else - ... neon - ... Add Elements To URI From File And Check Validation Error - ... ${SERVICE_FUNCTION_PATHS_URI} - ... ${SERVICE_FUNCTION_PATHS_WITH_HOP_FILE} - ... ELSE - ... Add Elements To URI From File And Check Server Error - ... ${SERVICE_FUNCTION_PATHS_URI} - ... ${SERVICE_FUNCTION_PATHS_WITH_HOP_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FUNCTION_PATHS_WITH_HOP_FILE} - ${jsonbody} To Json ${body} - ${paths} Get From Dictionary ${jsonbody} service-function-paths - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Be Equal As Strings ${resp.status_code} 404 - Remove All Elements At URI ${SERVICE_FUNCTIONS_URI} - -Add Service Function Path where SFC types size and hop sizes differ - [Documentation] Add Service Function Paths from JSON 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} - CompareStream.Run_Keyword_If_At_Least_Else - ... neon - ... Add Elements To URI From File And Check Validation Error - ... ${SERVICE_FUNCTION_PATHS_URI} - ... ${SERVICE_FUNCTION_PATHS_WITH_HOP_FILE} - ... ELSE - ... Add Elements To URI From File And Check Server Error - ... ${SERVICE_FUNCTION_PATHS_URI} - ... ${SERVICE_FUNCTION_PATHS_WITH_HOP_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FUNCTION_PATHS_WITH_HOP_FILE} - ${jsonbody} To Json ${body} - ${paths} Get From Dictionary ${jsonbody} service-function-paths - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Be Equal As Strings ${resp.status_code} 404 - Remove All Elements At URI ${SERVICE_CHAINS_URI} - Remove All Elements At URI ${SERVICE_FUNCTIONS_URI} - -Add Service Function Path where SFC types size and types for SFs in hops differ - [Documentation] Add Service Function Paths from JSON 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} - CompareStream.Run_Keyword_If_At_Least_Else - ... neon - ... Add Elements To URI From File And Check Validation Error - ... ${SERVICE_FUNCTION_PATHS_URI} - ... ${SERVICE_FUNCTION_PATHS_WITH_THREE_HOPS_FILE} - ... ELSE - ... Add Elements To URI From File And Check Server Error - ... ${SERVICE_FUNCTION_PATHS_URI} - ... ${SERVICE_FUNCTION_PATHS_WITH_THREE_HOPS_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FUNCTION_PATHS_WITH_HOP_FILE} - ${jsonbody} To Json ${body} - ${paths} Get From Dictionary ${jsonbody} service-function-paths - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Be Equal As Strings ${resp.status_code} 404 - Remove All Elements At URI ${SERVICE_FUNCTIONS_URI} - Remove All Elements At URI ${SERVICE_CHAINS_URI} - -Add Service Function Path where SFC types size and types for SFs in hops match - [Documentation] Add Service Function Paths from JSON 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_FW_NAPT44_DPI} - Add Elements To URI From File And Verify - ... ${SERVICE_FUNCTION_PATHS_URI} - ... ${SERVICE_FUNCTION_PATHS_WITH_THREE_HOPS_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FUNCTION_PATHS_FILE} - ${jsonbody} To Json ${body} - ${paths} Get From Dictionary ${jsonbody} service-function-paths - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${path} Get From Dictionary ${result} service-function-paths - Lists Should be Equal ${path} ${paths} - - -*** Keywords *** -Init Suite - [Documentation] Initialize session and ODL version specific variables - Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} - log ${ODL_STREAM} - Set Suite Variable ${VERSION_DIR} master - Set Suite Variable ${SFC_JSON_TEST_FILES_DIR} ${CURDIR}/../../../variables/sfc/${VERSION_DIR} - Set Suite Variable ${SERVICE_FUNCTION_PATHS_FILE} ${SFC_JSON_TEST_FILES_DIR}/service-function-paths.json - Set Suite Variable - ... ${SERVICE_FUNCTION_PATHS_WITH_HOP_FILE} - ... ${SFC_JSON_TEST_FILES_DIR}/service-function-paths-with-one-hop.json - Set Suite Variable - ... ${SERVICE_FUNCTION_PATHS_WITH_THREE_HOPS_FILE} - ... ${SFC_JSON_TEST_FILES_DIR}/service-function-paths-with-three-hops-firewall-napt44-dpi.json - Set Suite Variable ${SERVICE_FUNCTIONS_FILE} ${SFC_JSON_TEST_FILES_DIR}/service-functions.json - Set Suite Variable ${SERVICE_CHAINS_FILE} ${SFC_JSON_TEST_FILES_DIR}/service-function-chains.json - Set Suite Variable - ... ${SERVICE_CHAINS_FILE_FW_NAPT44_DPI} - ... ${SFC_JSON_TEST_FILES_DIR}/service-function-chain-firewall-napt44-dpi.json - -Clean_All_URIs - [Documentation] Deletes all the elements which might have been created during SFP validation tests - Utils.Remove All Elements If Exist ${SERVICE_FUNCTIONS_URI} - Utils.Remove All Elements If Exist ${SERVICE_CHAINS_URI} - Utils.Remove All Elements If Exist ${SERVICE_FUNCTION_PATHS_URI} diff --git a/csit/suites/sfc/Full_Deploy/013__sfc_service_functions_logical.robot b/csit/suites/sfc/Full_Deploy/013__sfc_service_functions_logical.robot deleted file mode 100644 index 30d0f2edc5..0000000000 --- a/csit/suites/sfc/Full_Deploy/013__sfc_service_functions_logical.robot +++ /dev/null @@ -1,95 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Service Functions using Logical SFF functionality, Operates functions from Restconf APIs. - -Library SSHLibrary -Library Collections -Library OperatingSystem -Library RequestsLibrary -Resource ../../../variables/sfc/Variables.robot -Resource ../../../libraries/Utils.robot -Resource ../../../libraries/TemplatedRequests.robot - -Suite Setup Init Suite -Suite Teardown Delete All Sessions -Test Setup Remove All Elements If Exist ${SERVICE_FUNCTIONS_URI} -Test Teardown Remove All Elements If Exist ${SERVICE_FUNCTIONS_URI} - - -*** Variables *** -${VERSION_DIR} master -${SERVICE_FUNCTIONS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-functions-logicalsff.json -${SF_DPI_URI} ${SERVICE_FUNCTION_URI}/dpi-1/ -${SF_DPI_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sf_dpi.json - - -*** Test Cases *** -Add Service Functions - [Documentation] Add Service Functions from JSON file. Logical SFF - Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FUNCTIONS_FILE} - ${jsonbody} To Json ${body} - ${functions} Get From Dictionary ${jsonbody} service-functions - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTIONS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${function} Get From Dictionary ${result} service-functions - Lists Should be Equal ${function} ${functions} - -Delete All Service Functions - [Documentation] Delete all Service Functions. Logical SFF - ${body} OperatingSystem.Get File ${SERVICE_FUNCTIONS_FILE} - Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTIONS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SERVICE_FUNCTIONS_URI} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTIONS_URI} - Should Be Equal As Strings ${resp.status_code} 404 - -Get one Service Function - [Documentation] Get one Service Function. Logical SFF - Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} - ${elements} Create List firewall-1 firewall - Check For Elements At URI ${SERVICE_FUNCTION_URI}/firewall-1 ${elements} - -Get A Non-existing Service Function - [Documentation] Get A Non-existing Service Function. Logical SFF - Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_URI}/non-existing-sf - Should Be Equal As Strings ${resp.status_code} 404 - -Delete A Service Function - [Documentation] Delete A Service Function. Logical SFF - Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} - Remove All Elements At URI ${SERVICE_FUNCTION_URI}/dpi-1 - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTIONS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Not Contain ${resp.text} dpi-1 - -Delete A Non-existing Empty Service Function - [Documentation] Delete A Non existing Service Function. Logical SFF - Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FUNCTIONS_FILE} - ${jsonbody} To Json ${body} - ${functions} Get From Dictionary ${jsonbody} service-functions - ${resp} RequestsLibrary.Delete Request session ${SERVICE_FUNCTION_URI}/non-existing-sf - Should Be Equal As Strings ${resp.status_code} 404 - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTIONS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${function} Get From Dictionary ${result} service-functions - Lists Should be Equal ${function} ${functions} - -Put one Service Function - [Documentation] Put one Service Function. Logical SFF - [Tags] include - Add Elements To URI From File ${SF_DPI_URI} ${SF_DPI_FILE} - ${elements} Create List dpi-1 dpi - Check For Elements At URI ${SF_DPI_URI} ${elements} - Check For Elements At URI ${SERVICE_FUNCTIONS_URI} ${elements} - - -*** Keywords *** -Init Suite - [Documentation] Initialize session and ODL version specific variables .Logical SFF - Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} - log ${ODL_STREAM} diff --git a/csit/suites/sfc/Full_Deploy/014__sfc_service_forwarders_logical.robot b/csit/suites/sfc/Full_Deploy/014__sfc_service_forwarders_logical.robot deleted file mode 100644 index 2550d37126..0000000000 --- a/csit/suites/sfc/Full_Deploy/014__sfc_service_forwarders_logical.robot +++ /dev/null @@ -1,82 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Service Function Forwarders, Operates SFFs from Restconf APIs. Logical SFF - -Library SSHLibrary -Library Collections -Library OperatingSystem -Library RequestsLibrary -Resource ../../../variables/sfc/Variables.robot -Resource ../../../libraries/Utils.robot -Resource ../../../libraries/TemplatedRequests.robot - -Suite Setup Init Suite -Suite Teardown Delete All Sessions -Test Setup Remove All Elements If Exist ${SERVICE_FORWARDERS_URI} -Test Teardown Remove All Elements If Exist ${SERVICE_FORWARDERS_URI} - - -*** Variables *** -${VERSION_DIR} master -${TEST_DIR} ${CURDIR}/../../../variables/sfc/${VERSION_DIR} -${SERVICE_FORWARDERS_FILE} ${TEST_DIR}/service-function-forwarders-logicallsff.json -${SFF_SFFLOG_URI} ${SERVICE_FORWARDER_URI}/sfflogical1 -${SFF_SFFLOG_FILE} ${TEST_DIR}/service-function-forwarder-logicallsff1.json - - -*** Test Cases *** -Put Service Function Forwarders - [Documentation] Add Service Function Forwarders from JSON file. Logical SFF - [Tags] include - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FORWARDERS_FILE} - ${jsonbody} To Json ${body} - ${forwarders} Get From Dictionary ${jsonbody} service-function-forwarders - ${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDERS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${forwarder} Get From Dictionary ${result} service-function-forwarders - Lists Should be Equal ${forwarder} ${forwarders} - -Delete All Service Function Forwarders - [Documentation] Delete all Service Function Forwarders. Logical SFF - [Tags] include - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDERS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SERVICE_FORWARDERS_URI} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDERS_URI} - Should Be Equal As Strings ${resp.status_code} 404 - -Get one Service Function Forwarder - [Documentation] Get one Service Function Forwarder. Logical SFF - [Tags] include - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${elements} Create List sfflogical1 - Check For Elements At URI ${SFF_SFFLOG_URI} ${elements} - -Delete A Service Function Forwarder - [Documentation] Delete A Service Function Forwarder. Logical SFF - [Tags] include - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${resp} RequestsLibrary.Get Request session ${SFF_SFFLOG_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SFF_SFFLOG_URI} - ${resp} RequestsLibrary.Get Request session ${SFF_SFFLOG_URI} - Should Be Equal As Strings ${resp.status_code} 404 - -Put one Service Function Forwarder - [Documentation] Put one Service Function Forwarder. Logical SFF - [Tags] include - Add Elements To URI From File ${SFF_SFFLOG_URI} ${SFF_SFFLOG_FILE} - ${resp} RequestsLibrary.Get Request session ${SFF_SFFLOG_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${elements} Create List sfflogical1 - Check For Elements At URI ${SFF_SFFLOG_URI} ${elements} - Check For Elements At URI ${SERVICE_FORWARDERS_URI} ${elements} - - -*** Keywords *** -Init Suite - [Documentation] Initialize session and ODL version specific variable. Logical SFFs - Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} - log ${ODL_STREAM} 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 deleted file mode 100644 index 5c9df2ac87..0000000000 --- a/csit/suites/sfc/Full_Deploy/015__sfc_rendered_service_paths_logical.robot +++ /dev/null @@ -1,120 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Rendered Service Paths. Logical SFF - -Library SSHLibrary -Library Collections -Library OperatingSystem -Library RequestsLibrary -Resource ../../../libraries/SFC/SfcKeywords.robot -Resource ../../../variables/sfc/Variables.robot -Resource ../../../libraries/Utils.robot -Resource ../../../libraries/TemplatedRequests.robot - -Suite Setup Init Suite -Suite Teardown Delete All Elements - - -*** Variables *** -${VERSION_DIR} master -${TEST_DIR} ${CURDIR}/../../../variables/sfc/${VERSION_DIR} -${SERVICE_FUNCTIONS_FILE} ${TEST_DIR}/service-functions-logicalsff.json -${SERVICE_FORWARDERS_FILE} ${TEST_DIR}/service-function-forwarders-logicallsff.json -${SERVICE_CHAINS_FILE} ${TEST_DIR}/service-function-chains-logicalsff.json -${SERVICE_FUNCTION_PATHS_FILE} ${TEST_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 - 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 - # 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 - # 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 - # 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_RSP_URI}/${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_RSP_URI}/${rsp_name}/rendered-service-path-hop/1/ ${elements} - ${resp} = RequestsLibrary.Get Request - ... session - ... ${OPERATIONAL_RSP_URI}/${rsp_name}/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 - 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 - 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/Dockerfile b/csit/suites/sfc/Full_Deploy/Dockerfile deleted file mode 100644 index 58f48bfff8..0000000000 --- a/csit/suites/sfc/Full_Deploy/Dockerfile +++ /dev/null @@ -1,54 +0,0 @@ -FROM socketplane/busybox:latest -MAINTAINER The SocketPlane Team -ARG OVS_VERSION - -ENV OVS openvswitch_${OVS_VERSION} - -# Configure supervisord -RUN mkdir -p /var/log/supervisor/ -ADD supervisord.conf /etc/ -RUN mkdir -p /var/log/supervisor/ -RUN mkdir -p /etc/openvswitch - -# Install supervisor_stdout -COPY supervisor-stdout-0.1.1.tar.gz /opt/ -WORKDIR /opt -RUN tar -xzvf supervisor-stdout-0.1.1.tar.gz && \ - mv supervisor-stdout-0.1.1 supervisor-stdout && \ - rm supervisor-stdout-0.1.1.tar.gz && \ - cd supervisor-stdout && \ - python setup.py install -q - -# Get Open vSwitch -WORKDIR / -COPY ovs_package/${OVS}.tgz / -RUN ls -la / -RUN ls -la /var -RUN tar -xzvf ${OVS}.tgz &&\ - mv $OVS openvswitch &&\ - cp -r openvswitch/* / &&\ - rm -r openvswitch &&\ - rm ${OVS}.tgz -ADD configure-ovs.sh /usr/local/share/openvswitch/ -RUN mkdir -p /usr/local/var/run/openvswitch - -COPY libcrypto.so.10 /usr/lib -COPY libssl.so.10 /usr/lib -COPY libgssapi_krb5.so.2 /usr/lib -COPY libkrb5.so.3 /usr/lib -COPY libcom_err.so.2 /usr/lib -COPY libk5crypto.so.3 /usr/lib -COPY libkrb5support.so.0 /usr/lib -COPY libkeyutils.so.1 /usr/lib -COPY libselinux.so.1 /usr/lib -COPY libpcre.so.1 /usr/lib -COPY liblzma.so.5 /usr/lib - - -# Create the database -RUN ovsdb-tool create /etc/openvswitch/conf.db /usr/local/share/openvswitch/vswitch.ovsschema -# Put the OVS Python modules on the Python Path -RUN cp -r /usr/local/share/openvswitch/python/ovs /usr/lib/python2.7/site-packages/ovs -CMD ["/usr/bin/supervisord"] - - diff --git a/csit/suites/sfc/Full_Deploy/docker-ovs.sh b/csit/suites/sfc/Full_Deploy/docker-ovs.sh deleted file mode 100755 index 50ab7dd806..0000000000 --- a/csit/suites/sfc/Full_Deploy/docker-ovs.sh +++ /dev/null @@ -1,376 +0,0 @@ -#!/bin/bash -# Copyright (C) 2014 Nicira, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# BASED ON https://github.com/openvswitch/ovs/blob/master/utilities/ovs-docker -# MODIFIED - -set -o xtrace -#set -e #Exit script if a command fails - -# Check for programs we'll need. -search_path () { - save_IFS=$IFS - IFS=: - for dir in $PATH; do - IFS=$save_IFS - if test -x "$dir/$1"; then - return 0 - fi - done - IFS=$save_IFS - echo >&2 "$0: $1 not found in \$PATH, please install and try again" - exit 1 -} - -ovs_vsctl () { - sudo ovs-vsctl --timeout=60 "$@" -} - -d_ovs_vsctl () { - CONTAINER="$1" - shift - sudo docker exec "$CONTAINER" ovs-vsctl --timeout=60 "$@" -} - -create_netns_link () { - sudo mkdir -p /var/run/netns - if [ ! -e /var/run/netns/"$PID" ]; then - sudo ln -s /proc/"$PID"/ns/net /var/run/netns/"$PID" - trap 'delete_netns_link' 0 - for signal in 1 2 3 13 14 15; do - trap 'delete_netns_link; trap - $signal; kill -$signal $$' $signal - done - fi -} - -delete_netns_link () { - sudo rm -f /var/run/netns/"$PID" -} - -setup_ip_forwarding () { - sudo sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward' - sudo iptables -F - sudo iptables -t nat -F - sudo iptables -P FORWARD ACCEPT -} - -connect_namespace_to_container () { - - NAMESPACE="$1" - CONTAINER="$2" - - if [ -z "$NAMESPACE" ] || [ -z "$CONTAINER" ]; then - echo >&2 "$UTIL add-port: not enough arguments (use --help for help)" - exit 1 - fi - - shift 2 - while [ $# -ne 0 ]; do - case $1 in - --ipaddress=*) - ADDRESS=`expr X"$1" : 'X[^=]*=\(.*\)'` - shift - ;; - --macaddress=*) - MACADDRESS=`expr X"$1" : 'X[^=]*=\(.*\)'` - shift - ;; - *) - echo >&2 "$UTIL add-port: unknown option \"$1\"" - exit 1 - ;; - esac - done - - if PID=`sudo docker inspect -f '{{.State.Pid}}' "$CONTAINER"`; then :; else - echo >&2 "$UTIL: Failed to get the PID of the container" - exit 1 - fi - - create_netns_link - - CONTAINER_IF="v-$NAMESPACE" - NAMESPACE_IF="v-${CONTAINER:0:12}" - - # Create namespace - if [ -z `sudo ip netns list | grep "$NAMESPACE"` ]; then - sudo ip netns add "$NAMESPACE" - fi - - # Create a veth pair in namespace. - sudo ip netns exec "$NAMESPACE" ip link add "$NAMESPACE_IF" type veth peer \ - name "$CONTAINER_IF" - sudo ip netns exec "$NAMESPACE" ip link set dev "$NAMESPACE_IF" up - - # Move one side to container namespace. - sudo ip netns exec "$NAMESPACE" ip link set dev "$CONTAINER_IF" netns "$PID" - sudo ip netns exec "$PID" ip link set dev "$CONTAINER_IF" up - - # And put it in integration bridge - d_ovs_vsctl "$CONTAINER" add-port br-int "$CONTAINER_IF" - - if [ -n "$ADDRESS" ]; then - sudo ip netns exec "$NAMESPACE" ip addr add "$ADDRESS" dev "$NAMESPACE_IF" - fi - - if [ -n "$MACADDRESS" ]; then - sudo ip netns exec "$NAMESPACE" ip link set dev "$NAMESPACE_IF" \ - address "$MACADDRESS" - fi - - delete_netns_link -} - -check_status () { - CHECKED_CONTAINER="$1" - CHECKED_PROGRAM="$2" - CHECKED_STATUS="$3" - - STATUS="" - retry=0 - while [ "$STATUS" != "$CHECKED_STATUS" -a $retry -le 60 ]; do - sleep 1 - STATUS=`sudo docker exec "$CHECKED_CONTAINER" supervisorctl status "$CHECKED_PROGRAM" |\ - awk '{print $2}'` - retry=$[$retry+1] - done - [ "$STATUS" == "$CHECKED_STATUS" ] || exit 1 -} - -spawn_node () { - NODE="$1" - TUN="$2" - - if [ -z `sudo docker images | awk '/^ovs-docker/ {print $1}'` ]; then - echo "$UTIL: Docker image ovs-docker does not exist, creating..." - sudo docker build -t ovs-docker . - fi - - CONTAINER=`sudo docker run -itd --privileged --cap-add ALL --name=ovs-node-"$NODE" ovs-docker` - - if [ $? -ne 0 ]; then - echo >&2 "$UTIL: Failed to start container $NODE" - exit 1 - fi - - check_status "$CONTAINER" ovsdb-server RUNNING - check_status "$CONTAINER" ovs-vswitchd RUNNING - check_status "$CONTAINER" configure-ovs EXITED - - CONTAINER_GW=`sudo docker inspect -f '{{ .NetworkSettings.Gateway }}' "$CONTAINER"` - CONTAINER_IP=`sudo docker inspect -f '{{ .NetworkSettings.IPAddress }}' "$CONTAINER"` - - # Create a container bridge as integration for all guests - if d_ovs_vsctl "$CONTAINER" br-exists br-int; then :; else - d_ovs_vsctl "$CONTAINER" add-br br-int - d_ovs_vsctl "$CONTAINER" add-port br-int patch-tun -- \ - set interface patch-tun type=patch option:peer=patch-int - fi - - - # Create a container bridge as endpoint for all tunnels - if d_ovs_vsctl "$CONTAINER" br-exists br-tun; then :; else - d_ovs_vsctl "$CONTAINER" add-br br-tun - d_ovs_vsctl "$CONTAINER" add-port br-tun patch-int -- \ - set interface patch-int type=patch option:peer=patch-tun - fi - - # Setup the tunnel - if [ "$TUN" == "vxlan" ]; then - TUN_OPT="type=vxlan" - elif [ "$TUN" == "vxlan-gpe" ]; then - TUN_OPT="type=vxlan option:exts=gpe" - else - TUN_OPT="" - fi - - if [ -z "$TUN" ]; then :; else - ovs_vsctl add-port br-tun vtep-node-"$NODE" -- \ - set interface vtep-node-"$NODE" $TUN_OPT \ - option:remote_ip="$CONTAINER_IP" ofport_request="$NODE" - d_ovs_vsctl "$CONTAINER" add-port br-tun vtep -- \ - set interface vtep $TUN_OPT \ - option:remote_ip="$CONTAINER_GW" ofport_request=10 - fi - - if [ -z "$ODL" ]; then :; else - d_ovs_vsctl "$CONTAINER" set-manager "tcp:${ODL}:6640" - fi - - DO_GUEST="$GUESTS" - until [ $DO_GUEST -eq 0 ]; do - ADDRESS="10.0.${NODE}.${DO_GUEST}/16" - connect_namespace_to_container "ovsnsn${NODE}g$DO_GUEST" "$CONTAINER" \ - --ipaddress="$ADDRESS" - let DO_GUEST-=1 - done -} - -spawn_nodes_and_guests () { - - while [ $# -ne 0 ]; do - case $1 in - --nodes=*) - NODES=`expr X"$1" : 'X[^=]*=\(.*\)'` - shift - ;; - --guests=*) - GUESTS=`expr X"$1" : 'X[^=]*=\(.*\)'` - shift - ;; - --tun=*) - TUN=`expr X"$1" : 'X[^=]*=\(.*\)'` - shift - ;; - --odl=*) - ODL=`expr X"$1" : 'X[^=]*=\(.*\)'` - shift - ;; - *) - echo >&2 "$UTIL spawn: unknown option \"$1\"" - exit 1 - ;; - esac - done - - NUM_REGEX="[0-9]+" - TUN_REGEX="vxlan|vxlan-gpe|^$" - IP_REGEX="^$|^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" - - if [[ $NODES =~ $NUM_REGEX ]]; then :; else - echo >&2 "$UTIL: NODES has to be a number" - exit 1 - fi - - if [ $NODES -gt 256 ]; then - echo >&2 "$UTIL: NODES has to be less than 256" - exit 1 - fi - - if [[ $GUESTS =~ $NUM_REGEX ]]; then :; else - echo >&2 "$UTIL: GUESTS has to be a number" - exit 1 - fi - - if [ $GUESTS -gt 256 ]; then - echo >&2 "$UTIL: GUESTS has to be less than 256" - exit 1 - fi - - if [[ $TUN =~ $TUN_REGEX ]]; then :; else - echo >&2 "$UTIL: TYPE has to be vxlan or vxlan-gpe" - exit 1 - fi - - if [[ $ODL =~ $IP_REGEX ]]; then :; else - echo >&2 "$UTIL: IP has to be a valid ip address" - exit 1 - fi - - # Make sure ip forwarding is enabled - setup_ip_forwarding - - # Create a host bridge as end point for all tunnels - if ovs_vsctl br-exists br-tun; then :; else - ovs_vsctl add-br br-tun - if [ -z "$ODL" ]; then :; else - ovs_vsctl set-manager "tcp:${ODL}:6640" - ovs_vsctl set-controller br-tun "tcp:${ODL}:6633" - fi - fi - - DO_NODE="$NODES" - until [ $DO_NODE -eq 0 ]; do - spawn_node "$DO_NODE" "$TUN" - let DO_NODE-=1 - done -} - -clean() { - - for ID in `sudo docker ps -a | awk '/ovs-node-[0-9]+$/ {print $1}'`; do - sudo docker stop "$ID" - sudo docker rm "$ID" - done - - for NS in `sudo ip netns list | grep ovsns`; do - sudo ip netns del "$NS" - done - - ovs_vsctl del-br br-tun - ovs_vsctl del-manager -} - - -usage() { - cat << EOF -${UTIL}: Perform various tasks related with docker-ovs container. -usage: ${UTIL} COMMAND - -Commands: - spawn --nodes=NODES --guests=GUESTS --tun=TYPE --odl=IP - Runs NODES number of docker-ovs instances and attaches - GUESTS number of namespaces to each instance. If tun - option is specified, tunnel of such type will be configured - between the nodes and a host bridge. Types supported are - vxlan or vxlan-gpe - clean - Stops containers and deletes namespaces -Options: - -h, --help display this help message. -EOF -} - -UTIL=$(basename $0) -search_path ovs-vsctl -search_path docker - -#if [[ $EUID -ne 0 ]]; then -# echo "This script must be run as root" 1>&2 -# exit 1 -#fi - -if (sudo ip netns) > /dev/null 2>&1; then :; else - echo >&2 "$UTIL: ip utility not found (or it does not support netns),"\ - "cannot proceed" - exit 1 -fi - -if [ $# -eq 0 ]; then - usage - exit 0 -fi - -case $1 in - "spawn") - shift - spawn_nodes_and_guests "$@" - exit 0 - ;; - "clean") - shift - clean - exit 0 - ;; - -h | --help) - usage - exit 0 - ;; - *) - echo >&2 "$UTIL: unknown command \"$1\" (use --help for help)" - exit 1 - ;; -esac - diff --git a/csit/suites/sfc/Full_Deploy/setup-docker-image.sh b/csit/suites/sfc/Full_Deploy/setup-docker-image.sh deleted file mode 100755 index 62c1ca6b83..0000000000 --- a/csit/suites/sfc/Full_Deploy/setup-docker-image.sh +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/bash - -set -o xtrace -set -o nounset #Do not allow for unset variables -set -e #Exit script if a command fails - -function build_ovs() { - K_VERSION=$(uname -r) - - if [[ "${OVS_VERSION}" != "2.6.1" && "${OVS_VERSION}" != "2.9.2" ]]; then - echo "Unsupported OVS version ${OVS_VERSION}" - exit 1 - fi - - echo "Building OVS ${OVS_VERSION}" - - # install running kernel devel packages - sudo yum -y install centos-release yum-utils @'Development Tools' rpm-build - REPO=$(repoquery --enablerepo=C* -i kernel-devel-${K_VERSION} | grep Repository | sed 's/Repo.*:[ \t]*//') - sudo yum -y --enablerepo=${REPO} install kernel-{devel,debug-devel,headers}-${K_VERSION} - - TMP=$(mktemp -d) - pushd ${TMP} - - git clone https://github.com/openvswitch/ovs.git - cd ovs - git checkout v${OVS_VERSION} - - if [[ "${OVS_VERSION}" == "2.6.1" ]]; then - echo "Will apply nsh patches for OVS version 2.6.1" - git clone https://github.com/yyang13/ovs_nsh_patches.git ../ovs_nsh_patches - git apply ../ovs_nsh_patches/v2.6.1_centos7/*.patch - fi - - sed -e 's/@VERSION@/0.0.1/' rhel/openvswitch-fedora.spec.in > /tmp/ovs.spec - sudo yum-builddep -y /tmp/ovs.spec - rm /tmp/ovs.spec - ./boot.sh - ./configure --with-linux=/lib/modules/${K_VERSION}/build --prefix=/usr/local --disable-libcapng - # dont use libcap, we wont have the proper libraries in the docker image - make rpm-fedora RPMBUILD_OPT="--without check --without libcapng" - # we dont need the kernel module (yet) - # make rpm-fedora-kmod RPMBUILD_OPT="-D 'kversion ${K_VERSION}'" - make DESTDIR=${TMP}/ovs_install/openvswitch_${OVS_VERSION} install - - popd - - # copy rpms and installation - mkdir -p ovs_package - find ${TMP}/ovs/rpm/rpmbuild/RPMS -name "*.rpm" | xargs -i cp {} ovs_package/ - tar cvzf ovs_package/openvswitch_${OVS_VERSION}.tgz -C ${TMP}/ovs_install . - - rm -rf ${TMP} -} - -ODL_STREAM=$1 - -# build ovs -[ "${ODL_STREAM}" == "oxygen" ] && OVS_VERSION="2.6.1" || OVS_VERSION="2.9.2" -build_ovs - -# install ovs -sudo yum -y install ovs_package/openvswitch-${OVS_VERSION}-*.rpm -# without libcapng, we have to run as root -sudo sed -i 's/^OVS_USER_ID/#OVS_USER_ID/' /etc/sysconfig/openvswitch -sudo systemctl enable openvswitch -sudo systemctl start openvswitch -sudo ovs-vsctl --retry -t 10 show - -# download supervisor to run OVS as a service inside the docker busybox image -wget https://raw.githubusercontent.com/socketplane/docker-ovs/master/configure-ovs.sh -chmod a+x configure-ovs.sh -wget https://raw.githubusercontent.com/socketplane/docker-ovs/master/supervisord.conf -wget https://pypi.python.org/packages/source/s/supervisor-stdout/supervisor-stdout-0.1.1.tar.gz --no-check-certificate - -# busybox image is missing some libs, take them from the host -cp /usr/lib64/libcrypto.so.10 . -cp /usr/lib64/libssl.so.10 . -cp /usr/lib64/libgssapi_krb5.so.2 . -cp /usr/lib64/libkrb5.so.3 . -cp /usr/lib64/libcom_err.so.2 . -cp /usr/lib64/libk5crypto.so.3 . -cp /usr/lib64/libkrb5support.so.0 . -cp /usr/lib64/libkeyutils.so.1 . -cp /usr/lib64/libselinux.so.1 . -cp /usr/lib64/libpcre.so.1 . -cp /usr/lib64/liblzma.so.5 . - -# build_ovs_docker -sudo docker build -t ovs-docker --build-arg OVS_VERSION=${OVS_VERSION} . - diff --git a/csit/suites/sfc/SFC_Basic/010__sfc_service_functions.robot b/csit/suites/sfc/SFC_Basic/010__sfc_service_functions.robot deleted file mode 100644 index 47c2a5716c..0000000000 --- a/csit/suites/sfc/SFC_Basic/010__sfc_service_functions.robot +++ /dev/null @@ -1,125 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Service Functions, Operates functions from Restconf APIs. - -Library SSHLibrary -Library Collections -Library OperatingSystem -Library RequestsLibrary -Resource ../../../variables/sfc/Variables.robot -Resource ../../../libraries/Utils.robot -Resource ../../../libraries/TemplatedRequests.robot - -Suite Setup Init Suite -Suite Teardown Delete All Sessions -Test Setup Remove All Elements If Exist ${SERVICE_FUNCTIONS_URI} - - -*** Test Cases *** -Add Service Functions - [Documentation] Add Service Functions from JSON file - Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FUNCTIONS_FILE} - ${jsonbody} To Json ${body} - ${functions} Get From Dictionary ${jsonbody} service-functions - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTIONS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${function} Get From Dictionary ${result} service-functions - Lists Should be Equal ${function} ${functions} - -Delete All Service Functions - [Documentation] Delete all Service Functions - ${body} OperatingSystem.Get File ${SERVICE_FUNCTIONS_FILE} - Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTIONS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SERVICE_FUNCTIONS_URI} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTIONS_URI} - Should Be Equal As Strings ${resp.status_code} 404 - -Get one Service Function - [Documentation] Get one Service Function - Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} - ${elements} Create List dpi-102-1 dpi - Check For Elements At URI ${SERVICE_FUNCTION_URI}/dpi-102-1 ${elements} - -Get A Non-existing Service Function - [Documentation] Get A Non-existing Service Function - Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_URI}/non-existing-sf - Should Be Equal As Strings ${resp.status_code} 404 - -Delete A Service Function - [Documentation] Delete A Service Function - Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} - Remove All Elements At URI ${SERVICE_FUNCTION_URI}/dpi-102-1 - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTIONS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Not Contain ${resp.text} dpi-102-1 - -Delete A Non-existing Empty Service Function - [Documentation] Delete A Non existing Service Function - Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FUNCTIONS_FILE} - ${jsonbody} To Json ${body} - ${functions} Get From Dictionary ${jsonbody} service-functions - ${resp} RequestsLibrary.Delete Request session ${SERVICE_FUNCTION_URI}/non-existing-sf - Should Be Equal As Strings ${resp.status_code} 404 - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTIONS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${function} Get From Dictionary ${result} service-functions - Lists Should be Equal ${function} ${functions} - -Put one Service Function - [Documentation] Put one Service Function - Add Elements To URI From File ${SF_DPI102100_URI} ${SF_DPI102100_FILE} - ${elements} Create List dpi-102-100 dpi - Check For Elements At URI ${SF_DPI102100_URI} ${elements} - Check For Elements At URI ${SERVICE_FUNCTIONS_URI} ${elements} - -Get Service Function DPL - [Documentation] Get Service Function Data Plane Locator - Add Elements To URI From File ${SF_DPI102100_URI} ${SF_DPI102100_FILE} - ${elements} Create List 100 10100 - Check For Elements At URI ${SF_DPI102100_URI}/sf-data-plane-locator/dpl-100 ${elements} - -Put Service Function DPL - [Documentation] Put Service Function Data Plane Locator - Add Elements To URI From File ${SF_DPI102100_URI} ${SF_DPI102100_FILE} - Add Elements To URI From File ${SF_DPI102100_URI}/sf-data-plane-locator/dpl-101 ${SF_DPL101_FILE} - ${elements} Create List dpl-101 10101 - Check For Elements At URI ${SF_DPI102100_URI}/sf-data-plane-locator/dpl-101 ${elements} - Check For Elements At URI ${SF_DPI102100_URI} ${elements} - -Put Service Function DPL to a Non-existing Service Function - [Documentation] Put Service Function DPL to a Non-existing Service Function - [Tags] exclude - Add Elements To URI From File ${SF_DPI102100_URI}/sf-data-plane-locator/dpl-101 ${SF_DPL101_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTIONS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Contain ${resp.text} dpi-102-100 - ${elements} Create List dpl-101 10101 - Check For Elements At URI ${SF_DPI102100_URI}/sf-data-plane-locator/dpl-101 ${elements} - Check For Elements At URI ${SF_DPI102100_URI} ${elements} - -Delete Service Function DPL - [Documentation] Delete Service Function Data Plane Locator - Add Elements To URI From File ${SF_DPI102100_URI} ${SF_DPI102100_FILE} - Remove All Elements At URI ${SF_DPI102100_URI}/sf-data-plane-locator/dpl-100 - ${resp} RequestsLibrary.Get Request session ${SF_DPI102100_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Not Contain ${resp.text} dpl-100 - - -*** Keywords *** -Init Suite - [Documentation] Initialize session and ODL version specific variables - Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} - log ${ODL_STREAM} - Set Suite Variable ${VERSION_DIR} master - Set Suite Variable ${TEST_DIR} ${CURDIR}/../../../variables/sfc/${VERSION_DIR} - Set Suite Variable ${SERVICE_FUNCTIONS_FILE} ${TEST_DIR}/service-functions.json - Set Suite Variable ${SF_DPI102100_URI} ${SERVICE_FUNCTION_URI}/dpi-102-100 - Set Suite Variable ${SF_DPI102100_FILE} ${TEST_DIR}/sf_dpi_102_100.json - Set Suite Variable ${SF_DPL101_FILE} ${TEST_DIR}/sf_dpl_101.json diff --git a/csit/suites/sfc/SFC_Basic/020__sfc_service_forwarders.robot b/csit/suites/sfc/SFC_Basic/020__sfc_service_forwarders.robot deleted file mode 100644 index 0570d95f76..0000000000 --- a/csit/suites/sfc/SFC_Basic/020__sfc_service_forwarders.robot +++ /dev/null @@ -1,282 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Service Function Forwarders, Operates SFFs from Restconf APIs. - -Library SSHLibrary -Library Collections -Library OperatingSystem -Library RequestsLibrary -Resource ../../../variables/sfc/Variables.robot -Resource ../../../libraries/Utils.robot -Resource ../../../libraries/TemplatedRequests.robot - -Suite Setup Init Suite -Suite Teardown Delete All Sessions -Test Setup Remove All Elements If Exist ${SERVICE_FORWARDERS_URI} - - -*** Test Cases *** -Put Service Function Forwarders - [Documentation] Add Service Function Forwarders from JSON file - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FORWARDERS_FILE} - ${jsonbody} To Json ${body} - ${forwarders} Get From Dictionary ${jsonbody} service-function-forwarders - ${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDERS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${forwarder} Get From Dictionary ${result} service-function-forwarders - Lists Should be Equal ${forwarder} ${forwarders} - -Delete All Service Function Forwarders - [Documentation] Delete all Service Function Forwarders - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDERS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SERVICE_FORWARDERS_URI} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDERS_URI} - Should Be Equal As Strings ${resp.status_code} 404 - -Get one Service Function Forwarder - [Documentation] Get one Service Function Forwarder - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${elements} Create List SFF-bootstrap service-locator:vxlan-gpe SF1 - Check For Elements At URI ${SFF_BOOTSTRAP_URI} ${elements} - -Get A Non-existing Service Function Forwarder - [Documentation] Get A Non-existing Service Function Forwarder - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDER_URI}/non-existing-sff - Should Be Equal As Strings ${resp.status_code} 404 - -Delete A Service Function Forwarder - [Documentation] Delete A Service Function Forwarder - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${resp} RequestsLibrary.Get Request session ${SFF_BOOTSTRAP_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SFF_BOOTSTRAP_URI} - ${resp} RequestsLibrary.Get Request session ${SFF_BOOTSTRAP_URI} - Should Be Equal As Strings ${resp.status_code} 404 - ${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDERS_URI} - Should Be Equal As Strings ${resp.status_code} 200 - Should Not Contain ${resp.text} SF1 - -Delete A Non-existing Service Function Forwarder - [Documentation] Delete A Non existing Service Function - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FORWARDERS_FILE} - ${jsonbody} To Json ${body} - ${forwarders} Get From Dictionary ${jsonbody} service-function-forwarders - ${resp} RequestsLibrary.Delete Request session ${SERVICE_FORWARDER_URI}/non-existing-sff - Should Be Equal As Strings ${resp.status_code} 404 - ${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDERS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${forwarder} Get From Dictionary ${result} service-function-forwarders - Lists Should be Equal ${forwarder} ${forwarders} - -Put one Service Function Forwarder - [Documentation] Put one Service Function Forwarder - Add Elements To URI From File ${SFF_OVS100_URI} ${SFF_OVS100_FILE} - ${resp} RequestsLibrary.Get Request session ${SFF_OVS100_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${elements} Create List ovs-100 SF7 - Check For Elements At URI ${SFF_OVS100_URI} ${elements} - Check For Elements At URI ${SERVICE_FORWARDERS_URI} ${elements} - -Get Service Function Forwarder DPL - [Documentation] Get Service Function Data Plane Locator - Add Elements To URI From File ${SFF_OVS100_URI} ${SFF_OVS100_FILE} - ${elements} Create List eth0 service-locator:vxlan-gpe - Check For Elements At URI ${SFF_OVS100_URI}/sff-data-plane-locator/eth0 ${elements} - -Put Service Function Forwarder DPL - [Documentation] Put Service Function Forwarder Data Plane Locator - Add Elements To URI From File ${SFF_OVS100_URI} ${SFF_OVS100_FILE} - Add Elements To URI From File ${SFF_OVS100_URI}/sff-data-plane-locator/dpl-101 ${SFF_DPL101_FILE} - ${elements} Create List dpl-101 6101 - Check For Elements At URI ${SFF_OVS100_URI}/sff-data-plane-locator/dpl-101 ${elements} - Check For Elements At URI ${SFF_OVS100_URI} ${elements} - -Put DPL to a Non-existing Service Function Forwarder - [Documentation] Put Service Function DPL to a Non-existing Service Function - Add Elements To URI From File ${SFF_OVS100_URI}/sff-data-plane-locator/dpl-101 ${SFF_DPL101_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDERS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Contain ${resp.text} ovs-100 - ${elements} Create List dpl-101 6101 - Check For Elements At URI ${SFF_OVS100_URI}/sff-data-plane-locator/dpl-101 ${elements} - Check For Elements At URI ${SFF_OVS100_URI} ${elements} - -Delete Service Function Forwarder DPL - [Documentation] Delete Service Function Forwarder Data Plane Locator - Add Elements To URI From File ${SFF_OVS100_URI} ${SFF_OVS100_FILE} - Remove All Elements At URI ${SFF_OVS100_URI}/sff-data-plane-locator/eth0 - ${resp} RequestsLibrary.Get Request session ${SFF_OVS100_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Not Contain ${resp.text} "name":"eth0" - -Get Service Function Forwarder DPL's Locator - [Documentation] Get Service Function Data Plane Locator - Add Elements To URI From File ${SFF_OVS100_URI} ${SFF_OVS100_FILE} - ${elements} Create List 6000 service-locator:vxlan-gpe - Check For Elements At URI ${SFF_OVS100_URI}/sff-data-plane-locator/eth0/data-plane-locator/ ${elements} - -Put Service Function Forwarder DPL's Locator - [Documentation] Put Service Function Forwarder Data Plane Locator - Add Elements To URI From File ${SFF_OVS100_URI} ${SFF_OVS100_FILE} - Add Elements To URI From File ${SFF_OVS100_URI}/sff-data-plane-locator/dpl-101 ${SFF_DPL101_FILE} - Add Elements To URI From File - ... ${SFF_OVS100_URI}/sff-data-plane-locator/dpl-101/data-plane-locator/ - ... ${SFF_DPL_LOCATOR_FILE} - ${elements} Create List 5000 service-locator:vxlan-gpe - Check For Elements At URI ${SFF_OVS100_URI}/sff-data-plane-locator/dpl-101/data-plane-locator ${elements} - ${elements} Create List dpl-101 5000 service-locator:vxlan-gpe - Check For Elements At URI ${SFF_OVS100_URI}/sff-data-plane-locator/dpl-101 ${elements} - Check For Elements At URI ${SFF_OVS100_URI} ${elements} - -Delete Service Function Forwarder DPL's Locator - [Documentation] Delete Service Function Forwarder Data Plane Locator - [Tags] exclude - Add Elements To URI From File ${SFF_OVS100_URI} ${SFF_OVS100_FILE} - Add Elements To URI From File ${SFF_OVS100_URI}/sff-data-plane-locator/dpl-101 ${SFF_DPL101_FILE} - Add Elements To URI From File - ... ${SFF_OVS100_URI}/sff-data-plane-locator/dpl-101/data-plane-locator - ... ${SFF_DPL_LOCATOR_FILE} - Remove All Elements At URI ${SFF_OVS100_URI}/sff-data-plane-locator/dpl-101/data-plane-locator - ${resp} RequestsLibrary.Get Request session ${SFF_OVS100_URI}/sff-data-plane-locator/dpl-101 - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Contain ${resp.text} dpl-101 - Should Not Contain ${resp.text} 6101 - Should Not Contain ${resp.text} service-locator:vxlan-gpe - ${resp} RequestsLibrary.Get Request session ${SFF_OVS100_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Contain ${resp.text} dpl-101 - Should Not Contain ${resp.text} 6101 - -Get Service Function Dictionary From SFF - [Documentation] Get Service Function Dictionary From SFF - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${elements} Create List service-function-dictionary SF1 SF1-DPL eth0 - Check For Elements At URI ${SFF_BOOTSTRAP_URI}/${SF_DICT_SF1_URI} ${elements} - -Delete Service Function Dictionary From SFF - [Documentation] Delete Service Function Dictionary From SFF - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${resp} RequestsLibrary.Get Request session ${SFF_BOOTSTRAP_URI}/${SF_DICT_SF1_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SFF_BOOTSTRAP_URI}/${SF_DICT_SF1_URI} - ${resp} RequestsLibrary.Get Request session ${SFF_BOOTSTRAP_URI}/${SF_DICT_SF1_URI} - Should Be Equal As Strings ${resp.status_code} 404 - ${resp} RequestsLibrary.Get Request session ${SFF_BOOTSTRAP_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Contain ${resp.text} service-function-dictionary - Should Not Contain ${resp.text} SF1 - -Put Service Function Dictionary to SFF - [Documentation] Put Service Function Dictionary to SFF - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - Add Elements To URI From File ${SFF_BOOTSTRAP_URI}/service-function-dictionary/SF100 ${SFF_SFD_SF100_FILE} - ${elements} Create List SF100 SF2-DPL eth0 - Check For Elements At URI ${SFF_BOOTSTRAP_URI}/service-function-dictionary/SF100 ${elements} - ${elements} create list service-function-dictionary SF100 SF2-DPL eth0 - Check For Elements At URI ${SFF_BOOTSTRAP_URI} ${elements} - -Get Service Function Dictionary's DPL From SFF - [Documentation] Get Service Function Dictionary From SFF - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${elements} create list sff-sf-data-plane-locator SF1-DPL eth0 - Check For Elements At URI ${SFF_BOOTSTRAP_URI}/${SF_DICT_SF1_URI}/sff-sf-data-plane-locator/ ${elements} - -Delete Service Function Dictionary's DPL From SFF - [Documentation] Delete Service Function Dictionary From SFF - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${resp} RequestsLibrary.Get Request - ... session - ... ${SFF_BOOTSTRAP_URI}/${SF_DICT_SF1_URI}/sff-sf-data-plane-locator - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SFF_BOOTSTRAP_URI}/${SF_DICT_SF1_URI}/sff-sf-data-plane-locator - ${resp} RequestsLibrary.Get Request - ... session - ... ${SFF_BOOTSTRAP_URI}/${SF_DICT_SF1_URI}/sff-sf-data-plane-locator - Should Be Equal As Strings ${resp.status_code} 404 - -Put DPL of Service Function Dictionary to SFF - [Documentation] Put DPL of Service Function Dictionary to SFF - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - Add Elements To URI From File - ... ${SFF_BOOTSTRAP_URI}/${SF_DICT_SF1_URI}/sff-sf-data-plane-locator - ... ${SFF_SFD_LOCATOR_FILE} - ${elements} create list sff-sf-data-plane-locator SF2-DPL eth0 - Check For Elements At URI ${SFF_BOOTSTRAP_URI}/${SF_DICT_SF1_URI}/sff-sf-data-plane-locator ${elements} - Check For Elements At URI ${SFF_BOOTSTRAP_URI}/${SF_DICT_SF1_URI} ${elements} - -Get Connected SFF Dictionary From SFF - [Documentation] Get Connected SFF Dictionary Dictionary From SFF - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${elements} create list connected-sff-dictionary br-int-ovs-2 sff-sff-data-plane-locator - Check For Elements At URI ${SFF_BOOTSTRAP_URI}/connected-sff-dictionary/br-int-ovs-2 ${elements} - ${resp} RequestsLibrary.Get Request - ... session - ... ${SERVICE_FORWARDER_URI}/br-int-ovs-2/connected-sff-dictionary/SFF-bootstrap - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Contain ${resp.text} SFF-bootstrap - -Delete Connected SFF Dictionary From SFF - [Documentation] Delete Connected SFF Dictionary From SFF - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${resp} RequestsLibrary.Get Request session ${SFF_BOOTSTRAP_URI}/connected-sff-dictionary/br-int-ovs-2 - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SFF_BOOTSTRAP_URI}/connected-sff-dictionary/br-int-ovs-2 - ${resp} RequestsLibrary.Get Request session ${SFF_BOOTSTRAP_URI}/connected-sff-dictionary/br-int-ovs-2 - Should Be Equal As Strings ${resp.status_code} 404 - ${resp} RequestsLibrary.Get Request session ${SFF_BOOTSTRAP_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Not Contain ${resp.text} br-int-ovs-2 - -Put Connected SFF Dictionary to SFF - [Documentation] Put Connected SFF Dictionary to SFF - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - Add Elements To URI From File ${SFF_BOOTSTRAP_URI}/connected-sff-dictionary/SFF100 ${SFF_CSD_SFF100_FILE} - ${elements} create list SFF100 service-function-forwarder:open - Check For Elements At URI ${SFF_BOOTSTRAP_URI}/connected-sff-dictionary/SFF100 ${elements} - Check For Elements At URI ${SFF_BOOTSTRAP_URI} ${elements} - -Get Connected SFF Dictionary's DPL From SFF - [Documentation] Get Connected SFF Dictionary's DPL From SFF - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - ${elements} create list sff-sff-data-plane-locator 5000 192.168.1.2 - Check For Elements At URI - ... ${SFF_BOOTSTRAP_URI}/connected-sff-dictionary/br-int-ovs-2/sff-sff-data-plane-locator - ... ${elements} - -Put DPL of Connected SFF Dictionary to SFF - [Documentation] Put DPL of Connected SFF Dictionary to SFF - Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE} - Add Elements To URI From File - ... ${SFF_BOOTSTRAP_URI}/connected-sff-dictionary/br-int-ovs-2/sff-sff-data-plane-locator - ... ${SFF_CSD_LOCATOR_FILE} - ${elements} create list sff-sff-data-plane-locator 6000 10.1.1.1 - Check For Elements At URI - ... ${SFF_BOOTSTRAP_URI}/connected-sff-dictionary/br-int-ovs-2/sff-sff-data-plane-locator - ... ${elements} - Check For Elements At URI ${SFF_BOOTSTRAP_URI}/connected-sff-dictionary/br-int-ovs-2 ${elements} - - -*** Keywords *** -Init Suite - [Documentation] Initialize session and ODL version specific variables - Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} - log ${ODL_STREAM} - Set Suite Variable ${VERSION_DIR} master - Set Suite Variable ${TEST_DIR} ${CURDIR}/../../../variables/sfc/${VERSION_DIR} - Set Suite Variable ${SERVICE_FORWARDERS_FILE} ${TEST_DIR}/service-function-forwarders.json - Set Suite Variable ${SFF_OVS100_URI} ${SERVICE_FORWARDER_URI}/ovs-100 - Set Suite Variable ${SFF_BOOTSTRAP_URI} ${SERVICE_FORWARDER_URI}/SFF-bootstrap - Set Suite Variable ${SF_DICT_SF1_URI} service-function-dictionary/SF1 - Set Suite Variable ${SFF_OVS100_FILE} ${TEST_DIR}/sff_ovs_100.json - Set Suite Variable ${SFF_DPL101_FILE} ${TEST_DIR}/sff_dpl_101.json - Set Suite Variable ${SFF_DPL_LOCATOR_FILE} ${TEST_DIR}/sff_dpl_locator.json - Set Suite Variable ${SFF_SFD_SF100_FILE} ${TEST_DIR}/sff_sfd_sf100.json - Set Suite Variable ${SFF_SFD_LOCATOR_FILE} ${TEST_DIR}/sff_sfd_locator.json - Set Suite Variable ${SFF_CSD_SFF100_FILE} ${TEST_DIR}/sff_csd_sff100.json - Set Suite Variable ${SFF_CSD_LOCATOR_FILE} ${TEST_DIR}/sff_csd_locator.json diff --git a/csit/suites/sfc/SFC_Basic/030__sfc_service_nodes.robot b/csit/suites/sfc/SFC_Basic/030__sfc_service_nodes.robot deleted file mode 100644 index c9776d52bc..0000000000 --- a/csit/suites/sfc/SFC_Basic/030__sfc_service_nodes.robot +++ /dev/null @@ -1,90 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Service Nodes, Operates Nodes from Restconf APIs. - -Library SSHLibrary -Library Collections -Library OperatingSystem -Library RequestsLibrary -Resource ../../../variables/sfc/Variables.robot -Resource ../../../libraries/Utils.robot -Resource ../../../libraries/TemplatedRequests.robot - -Suite Setup Init Suite -Suite Teardown Delete All Sessions -Test Setup Remove All Elements If Exist ${SERVICE_NODES_URI} - - -*** Test Cases *** -Put Service Nodes - [Documentation] Add Service Nodes from JSON file - Add Elements To URI From File ${SERVICE_NODES_URI} ${SERVICE_NODES_FILE} - ${body} OperatingSystem.Get File ${SERVICE_NODES_FILE} - ${jsonbody} To Json ${body} - ${nodes} Get From Dictionary ${jsonbody} service-nodes - ${resp} RequestsLibrary.Get Request session ${SERVICE_NODES_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${node} Get From Dictionary ${result} service-nodes - Lists Should be Equal ${node} ${nodes} - -Delete All Service Nodes - [Documentation] Delete all Service Nodes - Add Elements To URI From File ${SERVICE_NODES_URI} ${SERVICE_NODES_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_NODES_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SERVICE_NODES_URI} - ${resp} RequestsLibrary.Get Request session ${SERVICE_NODES_URI} - Should Be Equal As Strings ${resp.status_code} 404 - -Get one Service Node - [Documentation] Get one Service Node - Add Elements To URI From File ${SERVICE_NODES_URI} ${SERVICE_NODES_FILE} - ${elements} Create List node-101 firewall-101-2 10.3.1.101 - Check For Elements At URI ${SERVICE_NODE_URI}/node-101 ${elements} - -Get A Non-existing Service Node - [Documentation] Get A Non-existing Service Node - Add Elements To URI From File ${SERVICE_NODES_URI} ${SERVICE_NODES_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_NODE_URI}/non-existing-sf - Should Be Equal As Strings ${resp.status_code} 404 - -Delete A Service Node - [Documentation] Delete A Service Node - Add Elements To URI From File ${SERVICE_NODES_URI} ${SERVICE_NODES_FILE} - Remove All Elements At URI ${SERVICE_NODE_URI}/node-101 - ${resp} RequestsLibrary.Get Request session ${SERVICE_NODES_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Not Contain ${resp.text} node-101 - -Delete A Non-existing Service Node - [Documentation] Delete A Non existing Service Node - Add Elements To URI From File ${SERVICE_NODES_URI} ${SERVICE_NODES_FILE} - ${body} OperatingSystem.Get File ${SERVICE_NODES_FILE} - ${jsonbody} To Json ${body} - ${nodes} Get From Dictionary ${jsonbody} service-nodes - ${resp} RequestsLibrary.Delete Request session ${SERVICE_NODE_URI}/non-existing-sn - Should Be Equal As Strings ${resp.status_code} 404 - ${resp} RequestsLibrary.Get Request session ${SERVICE_NODES_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${node} Get From Dictionary ${result} service-nodes - Lists Should be Equal ${node} ${nodes} - -Put one Service Node - [Documentation] Put one Service Node - Add Elements To URI From File ${SN_NODE100_URI} ${SN_NODE100_FILE} - ${elements} Create List node-100 10.3.1.100 dpi-100-1 firewall-102-1 - Check For Elements At URI ${SN_NODE100_URI} ${elements} - Check For Elements At URI ${SERVICE_NODES_URI} ${elements} - - -*** Keywords *** -Init Suite - [Documentation] Initialize session and ODL version specific variables - Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} - log ${ODL_STREAM} - Set Suite Variable ${VERSION_DIR} master - Set Suite Variable ${TEST_DIR} ${CURDIR}/../../../variables/sfc/${VERSION_DIR} - Set Suite Variable ${SERVICE_NODES_FILE} ${TEST_DIR}/service-nodes.json - Set Suite Variable ${SN_NODE100_URI} ${SERVICE_NODE_URI}/node-100 - Set Suite Variable ${SN_NODE100_FILE} ${TEST_DIR}/sn_node_100.json diff --git a/csit/suites/sfc/SFC_Basic/040__sfc_service_chains.robot b/csit/suites/sfc/SFC_Basic/040__sfc_service_chains.robot deleted file mode 100644 index b73793285a..0000000000 --- a/csit/suites/sfc/SFC_Basic/040__sfc_service_chains.robot +++ /dev/null @@ -1,137 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Service Function Chains, Operates Chains from Restconf APIs. - -Library SSHLibrary -Library Collections -Library OperatingSystem -Library RequestsLibrary -Resource ../../../variables/sfc/Variables.robot -Resource ../../../libraries/Utils.robot -Resource ../../../libraries/TemplatedRequests.robot - -Suite Setup Init Suite -Suite Teardown Delete All Sessions -Test Setup Remove All Elements If Exist ${SERVICE_CHAINS_URI} - - -*** Test Cases *** -Put Service Function Chains - [Documentation] Add Service Function Chains from JSON file - Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE} - ${body} OperatingSystem.Get File ${SERVICE_CHAINS_FILE} - ${jsonbody} To Json ${body} - ${chains} Get From Dictionary ${jsonbody} service-function-chains - ${resp} RequestsLibrary.Get Request session ${SERVICE_CHAINS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${chain} Get From Dictionary ${result} service-function-chains - Lists Should be Equal ${chain} ${chains} - -Delete All Service Function Chains - [Documentation] Delete all Service Function Chains - Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_CHAINS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SERVICE_CHAINS_URI} - ${resp} RequestsLibrary.Get Request session ${SERVICE_CHAINS_URI} - Should Be Equal As Strings ${resp.status_code} 404 - -Get one Service Function Chain - [Documentation] Get one Service Function Chain - Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE} - ${elements} Create List SFC1 dpi-abstract1 napt44-abstract1 firewall-abstract1 - Check For Elements At URI ${SERVICE_CHAIN_URI}/SFC1 ${elements} - -Get A Non-existing Service Function Chain - [Documentation] Get A Non-existing Service Function Chain - Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_CHAIN_URI}/non-existing-sfc - Should Be Equal As Strings ${resp.status_code} 404 - -Delete A Service Function Chain - [Documentation] Delete A Service Function Chain - Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_CHAIN_URI}/SFC1 - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SERVICE_CHAIN_URI}/SFC1 - ${elements} Create List SFC1 dpi-abstract1 napt44-abstract1 firewall-abstract1 - Check For Elements Not At URI ${SERVICE_CHAINS_URI} ${elements} - -Delete A Non-existing Service Function Chain - [Documentation] Delete A Non existing Service Function Chain - Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE} - ${body} OperatingSystem.Get File ${SERVICE_CHAINS_FILE} - ${jsonbody} To Json ${body} - ${chains} Get From Dictionary ${jsonbody} service-function-chains - ${resp} RequestsLibrary.Delete Request session ${SERVICE_CHAIN_URI}/non-existing-sfc - Should Be Equal As Strings ${resp.status_code} 404 - ${resp} RequestsLibrary.Get Request session ${SERVICE_CHAINS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${chain} Get From Dictionary ${result} service-function-chains - Lists Should be Equal ${chain} ${chains} - -Put one Service Function Chain - [Documentation] Put one Service Function Chain - Add Elements To URI From File ${SERVICE_CHAIN100_URI} ${SERVICE_CHAIN100_FILE} - ${elements} Create List SFC100 dpi-abstract100 napt44-abstract100 firewall-abstract100 - Check For Elements At URI ${SERVICE_CHAIN100_URI} ${elements} - Check For Elements At URI ${SERVICE_CHAINS_URI} ${elements} - -Get one Service Function From Chain - [Documentation] Get one Service Function From Chain - Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE} - ${elements} Create List dpi-abstract1 "order":0 "type":"dpi" - Check For Elements At URI ${SERVICE_CHAIN_URI}/SFC1/sfc-service-function/dpi-abstract1 ${elements} - -Get A Non-existing Service Function From Chain - [Documentation] Get A Non-existing Service Function From Chain - Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE} - ${resp} RequestsLibrary.Get Request - ... session - ... ${SERVICE_CHAIN_URI}/SFC1/sfc-service-function/non-existing-sft - Should Be Equal As Strings ${resp.status_code} 404 - -Delete A Service Function From Chain - [Documentation] Delete A Service Function From Chain - Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE} - Remove All Elements At URI ${SERVICE_CHAIN_URI}/SFC1/sfc-service-function/dpi-abstract1 - ${resp} RequestsLibrary.Get Request session ${SERVICE_CHAINS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Contain ${resp.text} SFC1 - ${elements} Create List dpi-abstract1 service-function-type:dpi - Check For Elements Not At URI ${SERVICE_CHAIN_URI}/SFC1 ${elements} - -Delete A Non-existing Service Function From Chain - [Documentation] Delete A Non existing Service Function From Chain - Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE} - ${resp} RequestsLibrary.Delete Request - ... session - ... ${SERVICE_CHAIN_URI}/SFC1/sfc-service-function/non-existing-sft - Should Be Equal As Strings ${resp.status_code} 404 - ${elements} Create List dpi-abstract1 napt44-abstract1 firewall-abstract1 - Check For Elements At URI ${SERVICE_CHAIN_URI}/SFC1 ${elements} - Check For Elements At URI ${SERVICE_CHAINS_URI} ${elements} - -Put one Service Function into Chain - [Documentation] Put one Service Function Chain - Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE} - Add Elements To URI From File ${SERVICE_CHAIN100_SFIDS_URI} ${SERVICE_CHAIN100_SFIDS_FILE} - ${elements} Create List ids-abstract100 "order":3 "type":"ids" - Check For Elements At URI ${SERVICE_CHAIN100_SFIDS_URI} ${elements} - Check For Elements At URI ${SERVICE_CHAIN100_URI} ${elements} - Check For Elements At URI ${SERVICE_CHAINS_URI} ${elements} - - -*** Keywords *** -Init Suite - [Documentation] Initialize session and ODL version specific variables - Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} - log ${ODL_STREAM} - Set Suite Variable ${VERSION_DIR} master - Set Suite Variable ${TEST_DIR} ${CURDIR}/../../../variables/sfc/${VERSION_DIR} - Set Suite Variable ${SERVICE_CHAINS_FILE} ${TEST_DIR}/service-function-chains.json - Set Suite Variable ${SERVICE_CHAIN100_URI} ${SERVICE_CHAIN_URI}/SFC100 - Set Suite Variable ${SERVICE_CHAIN100_FILE} ${TEST_DIR}/sfc_chain_100.json - Set Suite Variable ${SERVICE_CHAIN100_SFIDS_URI} ${SERVICE_CHAIN100_URI}/sfc-service-function/ids-abstract100 - Set Suite Variable ${SERVICE_CHAIN100_SFIDS_FILE} ${TEST_DIR}/sfc_chain_100_sfids.json diff --git a/csit/suites/sfc/SFC_Basic/050__sfc_service_schedule_types.robot b/csit/suites/sfc/SFC_Basic/050__sfc_service_schedule_types.robot deleted file mode 100644 index 05cc04411e..0000000000 --- a/csit/suites/sfc/SFC_Basic/050__sfc_service_schedule_types.robot +++ /dev/null @@ -1,90 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Function Schedule Algorithm Types, Operates types from Restconf APIs. - -Library SSHLibrary -Library Collections -Library OperatingSystem -Library RequestsLibrary -Resource ../../../variables/sfc/Variables.robot -Resource ../../../libraries/Utils.robot -Resource ../../../libraries/TemplatedRequests.robot - -Suite Setup Init Suite -Suite Teardown Delete All Sessions -Test Setup Remove All Elements If Exist ${SERVICE_SCHED_TYPES_URI} - - -*** Test Cases *** -Add Service Function Schedule Algorithm Types - [Documentation] Add Service Function Schedule Algorithm Types from JSON file - Add Elements To URI From File ${SERVICE_SCHED_TYPES_URI} ${SERVICE_SCHED_TYPES_FILE} - ${body} OperatingSystem.Get File ${SERVICE_SCHED_TYPES_FILE} - ${jsonbody} To Json ${body} - ${types} Get From Dictionary ${jsonbody} service-function-scheduler-types - ${resp} RequestsLibrary.Get Request session ${SERVICE_SCHED_TYPES_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${type} Get From Dictionary ${result} service-function-scheduler-types - Lists Should be Equal ${type} ${types} - -Delete All Service Function Schedule Algorithm Types - [Documentation] Delete Service Function Schedule Algorithm Types - Add Elements To URI From File ${SERVICE_SCHED_TYPES_URI} ${SERVICE_SCHED_TYPES_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_SCHED_TYPES_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SERVICE_SCHED_TYPES_URI} - ${resp} RequestsLibrary.Get Request session ${SERVICE_SCHED_TYPES_URI} - Should Be Equal As Strings ${resp.status_code} 404 - -Get Ramdom Schedule Algorithm Type - [Documentation] Get Ramdom Schedule Algorithm Type - Add Elements To URI From File ${SERVICE_SCHED_TYPES_URI} ${SERVICE_SCHED_TYPES_FILE} - ${elements} Create List random "enabled":false service-function-scheduler-type:random - Check For Elements At URI ${SERVICE_RANDOM_SCHED_TYPE_URI} ${elements} - ${resp} RequestsLibrary.Get Request session ${SERVICE_RANDOM_SCHED_TYPE_URI} - -Get A Non-existing Service Function Schedule Algorithm Type - [Documentation] Get A Non-existing Service Function Schedule Algorithm Type - Add Elements To URI From File ${SERVICE_SCHED_TYPES_URI} ${SERVICE_SCHED_TYPES_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_SCHED_TYPE_URI_BASE}user-defined - Should Be Equal As Strings ${resp.status_code} 404 - -Delete Ramdom Schedule Algorithm Type - [Documentation] Delete Ramdom Schedule Algorithm Type - Add Elements To URI From File ${SERVICE_SCHED_TYPES_URI} ${SERVICE_SCHED_TYPES_FILE} - Remove All Elements At URI ${SERVICE_RANDOM_SCHED_TYPE_URI} - ${elements} Create List random service-function-scheduler-type:random - Check For Elements Not At URI ${SERVICE_SCHED_TYPES_URI} ${elements} - -Delete A Non-existing Service Function Schedule Algorithm Type - [Documentation] Delete A Non existing Service Function Schedule Algorithm Type - Add Elements To URI From File ${SERVICE_SCHED_TYPES_URI} ${SERVICE_SCHED_TYPES_FILE} - ${body} OperatingSystem.Get File ${SERVICE_SCHED_TYPES_FILE} - ${jsonbody} To Json ${body} - ${types} Get From Dictionary ${jsonbody} service-function-scheduler-types - ${resp} RequestsLibrary.Delete Request session ${SERVICE_SCHED_TYPE_URI_BASE}user-defined - Should Be Equal As Strings ${resp.status_code} 404 - ${resp} RequestsLibrary.Get Request session ${SERVICE_SCHED_TYPES_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${type} Get From Dictionary ${result} service-function-scheduler-types - Lists Should be Equal ${type} ${types} - -Put one Service Function Schedule Algorithm Type - [Documentation] Put one Service Function Schedule Algorithm Type - Add Elements To URI From File ${SERVICE_WSP_SCHED_TYPE_URI} ${SERVICE_WSP_SCHED_TYPE_FILE} - ${elements} Create List weighted-shortest-path service-function-scheduler-type:weighted-shortest-path - Check For Elements At URI ${SERVICE_WSP_SCHED_TYPE_URI} ${elements} - Check For Elements At URI ${SERVICE_SCHED_TYPES_URI} ${elements} - - -*** Keywords *** -Init Suite - [Documentation] Initialize session and ODL version specific variables - Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} - log ${ODL_STREAM} - Set Suite Variable ${VERSION_DIR} master - Set Suite Variable ${TEST_DIR} ${CURDIR}/../../../variables/sfc/${VERSION_DIR} - Set Suite Variable ${SERVICE_SCHED_TYPES_FILE} ${TEST_DIR}/service-schedule-types.json - Set Suite Variable ${SERVICE_WSP_SCHED_TYPE_URI} ${SERVICE_SCHED_TYPE_URI_BASE}weighted-shortest-path - Set Suite Variable ${SERVICE_WSP_SCHED_TYPE_FILE} ${TEST_DIR}/service-wsp-schedule-type.json diff --git a/csit/suites/sfc/SFC_Basic/060__sfc_service_paths.robot b/csit/suites/sfc/SFC_Basic/060__sfc_service_paths.robot deleted file mode 100644 index 00efccb69d..0000000000 --- a/csit/suites/sfc/SFC_Basic/060__sfc_service_paths.robot +++ /dev/null @@ -1,97 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Service Function Paths, Operates paths from Restconf APIs. - -Library SSHLibrary -Library Collections -Library OperatingSystem -Library RequestsLibrary -Resource ../../../variables/sfc/Variables.robot -Resource ../../../libraries/Utils.robot -Resource ../../../libraries/TemplatedRequests.robot - -Suite Setup Init Suite -Suite Teardown Delete All Sessions -Test Setup Remove All Elements If Exist ${SERVICE_FUNCTION_PATHS_URI} - - -*** Test Cases *** -Add Service Function Paths - [Documentation] Add Service Function Paths from JSON file - Add Elements To URI From File ${SERVICE_FUNCTION_PATHS_URI} ${SERVICE_FUNCTION_PATHS_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FUNCTION_PATHS_FILE} - ${jsonbody} To Json ${body} - ${paths} Get From Dictionary ${jsonbody} service-function-paths - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${path} Get From Dictionary ${result} service-function-paths - Lists Should be Equal ${path} ${paths} - -Delete All Service Function Paths - [Documentation] Delete all Service Function Paths - Add Elements To URI From File ${SERVICE_FUNCTION_PATHS_URI} ${SERVICE_FUNCTION_PATHS_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SERVICE_FUNCTION_PATHS_URI} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Be Equal As Strings ${resp.status_code} 404 - -Get one Service Function Path - [Documentation] Get one Service Function Path - Add Elements To URI From File ${SERVICE_FUNCTION_PATHS_URI} ${SERVICE_FUNCTION_PATHS_FILE} - ${elements} Create List SFC1-100 "service-chain-name":"SFC1" - Check For Elements At URI ${SERVICE_FUNCTION_PATH_URI}/SFC1-100 ${elements} - -Get A Non-existing Service Function Path - [Documentation] Get A Non-existing Service Function Path - Add Elements To URI From File ${SERVICE_FUNCTION_PATHS_URI} ${SERVICE_FUNCTION_PATHS_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATH_URI}/non-existing-sfp - Should Be Equal As Strings ${resp.status_code} 404 - -Delete A Service Function Path - [Documentation] Delete A Service Function Path - Add Elements To URI From File ${SERVICE_FUNCTION_PATHS_URI} ${SERVICE_FUNCTION_PATHS_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATH_URI}/SFC1-100 - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SERVICE_FUNCTION_PATH_URI}/SFC1-100 - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATH_URI}/SFC1-100 - Should Be Equal As Strings ${resp.status_code} 404 - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Not Contain ${resp.text} SFC1-100 - -Delete A Non-existing Empty Service Function Path - [Documentation] Delete A Non existing Service Function Path - Add Elements To URI From File ${SERVICE_FUNCTION_PATHS_URI} ${SERVICE_FUNCTION_PATHS_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FUNCTION_PATHS_FILE} - ${jsonbody} To Json ${body} - ${paths} Get From Dictionary ${jsonbody} service-function-paths - ${resp} RequestsLibrary.Delete Request session ${SERVICE_FUNCTION_PATH_URI}/non-existing-sfp - Should Be Equal As Strings ${resp.status_code} 404 - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${result} To JSON ${resp.content} - ${path} Get From Dictionary ${result} service-function-paths - Lists Should be Equal ${path} ${paths} - -Put One Service Function Path - [Documentation] Put one Service Function Path - Add Elements To URI From File ${SERVICE_FUNCTION_PATH400_URI} ${SERVICE_FUNCTION_PATH400_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATH400_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Contain ${resp.text} SFC1-400 - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Contain ${resp.text} SFC1-400 - - -*** Keywords *** -Init Suite - [Documentation] Initialize session and ODL version specific variables - Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} - log ${ODL_STREAM} - Set Suite Variable ${VERSION_DIR} master - Set Suite Variable ${TEST_DIR} ${CURDIR}/../../../variables/sfc/${VERSION_DIR} - Set Suite Variable ${SERVICE_FUNCTION_PATHS_FILE} ${TEST_DIR}/service-function-paths.json - Set Suite Variable ${SERVICE_FUNCTION_PATH400_URI} ${SERVICE_FUNCTION_PATH_URI}/SFC1-400 - Set Suite Variable ${SERVICE_FUNCTION_PATH400_FILE} ${TEST_DIR}/sfp_sfc1_path400.json 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 deleted file mode 100644 index d6a4b9f220..0000000000 --- a/csit/suites/sfc/SFC_Basic/070__sfc_rendered_service_paths.robot +++ /dev/null @@ -1,270 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Rendered Service Paths, Operates functions from Restconf APIs. - -Library SSHLibrary -Library Collections -Library OperatingSystem -Library RequestsLibrary -Resource ../../../variables/sfc/Variables.robot -Resource ../../../libraries/SFC/SfcKeywords.robot -Resource ../../../libraries/Utils.robot -Resource ../../../libraries/TemplatedRequests.robot - -Suite Setup Init Suite -Suite Teardown Delete All Sessions - - -*** Test Cases *** -Basic Environment Setup Tests - [Documentation] Prepare Basic Test Environment - 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 - ... ${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 - 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 - ${sfp_name} = BuiltIn.Set Variable SFC1-100 - ${rsp_name} = SfcKeywords.Get Rendered Service Path Name ${sfp_name} - ${resp} = RequestsLibrary.Get Request session ${OPERATIONAL_RSP_URI}/${rsp_name} - BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - # The RSP should not be symetric, so only 1 should be created for the SFP - Utils.Check For Specific Number Of Elements At URI - ... ${SERVICE_FUNCTION_PATH_STATE_URI}/${sfp_name} - ... "sfp-rendered-service-path" - ... 1 - ${elements} = BuiltIn.Create List - ... "parent-service-function-path":"SFC1-100" - ... "hop-number":0 - ... "service-index":255 - ... "hop-number":1 - ... "service-index":254 - ... "hop-number":2 - ... "service-index":253 - Utils.Check For Elements At URI ${OPERATIONAL_RSPS_URI} ${elements} - -Get Rendered Service Path Hop - [Documentation] Check Rendered Service Path Hops Created in "Basic Environment Setup Tests" - ${sfp_name} = BuiltIn.Set Variable SFC1-100 - ${rsp_name} = SfcKeywords.Get Rendered Service Path Name ${sfp_name} - ${resp} = RequestsLibrary.Get Request - ... session - ... ${OPERATIONAL_RSP_URI}/${rsp_name}/rendered-service-path-hop/0/ - BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${elements} = BuiltIn.Create List "hop-number":0 "service-index":255 "service-function-name":"dpi - Utils.Check For Elements At URI ${OPERATIONAL_RSP_URI}/${rsp_name}/rendered-service-path-hop/0/ ${elements} - ${elements} = BuiltIn.Create List "hop-number":1 "service-index":254 "service-function-name":"napt44 - Utils.Check For Elements At URI ${OPERATIONAL_RSP_URI}/${rsp_name}/rendered-service-path-hop/1/ ${elements} - ${elements} = BuiltIn.Create List "hop-number":2 "service-index":253 "service-function-name":"firewall - Utils.Check For Elements At URI ${OPERATIONAL_RSP_URI}/${rsp_name}/rendered-service-path-hop/2/ ${elements} - ${resp} = RequestsLibrary.Get Request - ... session - ... ${OPERATIONAL_RSP_URI}/${rsp_name}/rendered-service-path-hop/3/ - BuiltIn.Should Be Equal As Strings ${resp.status_code} 404 - -Delete one Rendered Service Path By Name - [Documentation] Delete One Rendered Service Path By deleting the parent Service Function Path - ... The RSP to be deleted was created in "Basic Environment Setup Tests" - ${sfp_name} = BuiltIn.Set Variable SFC2-200 - ${rsp_name} = SfcKeywords.Get Rendered Service Path Name ${sfp_name} - # First verify that the RSP exists - ${resp} = RequestsLibrary.Get Request session ${OPERATIONAL_RSP_URI}/${rsp_name} - BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - SfcKeywords.Delete Sfp And Wait For Rsps Deletion ${sfp_name} - -Generate RSPs with Random Schedule Algorithm type - [Documentation] Generate RSPs with Random Schedule Algorithm type Through RESTConf APIs - Utils.Remove All Elements At URI ${SERVICE_SCHED_TYPES_URI} - 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 - 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 - Utils.Check For Elements At URI ${OPERATIONAL_RSP_URI}/${rsp_name}/rendered-service-path-hop/0/ ${elements} - ${elements} = BuiltIn.Create List "hop-number":1 "service-index":254 "service-function-name":"napt44 - Utils.Check For Elements At URI ${OPERATIONAL_RSP_URI}/${rsp_name}/rendered-service-path-hop/1/ ${elements} - ${elements} = BuiltIn.Create List "hop-number":2 "service-index":253 "service-function-name":"firewall - Utils.Check For Elements At URI ${OPERATIONAL_RSP_URI}/${rsp_name}/rendered-service-path-hop/2/ ${elements} - -Generate RSPs with Round Robin Schedule Algorithm type - [Documentation] Generate RSPs with Round Robin Schedule Algorithm type - [Tags] exclude - Utils.Remove All Elements At URI ${SERVICE_SCHED_TYPES_URI} - 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 - 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 - ${rsp4_name} = SfcKeywords.Get Rendered Service Path Name SFC2-100 - ${rsp5_name} = SfcKeywords.Get Rendered Service Path Name SFC2-200 - ${path1_hop0} = SfcKeywords.Get JSON Elements From URI - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/0/ - ${path1_hop1} = SfcKeywords.Get JSON Elements From URI - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/1/ - ${path1_hop2} = SfcKeywords.Get JSON Elements From URI - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/2/ - ${path2_hop0} = SfcKeywords.Get JSON Elements From URI - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/0/ - ${path2_hop1} = SfcKeywords.Get JSON Elements From URI - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/1/ - ${path2_hop2} = SfcKeywords.Get JSON Elements From URI - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/2/ - ${path3_hop0} = SfcKeywords.Get JSON Elements From URI - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/0/ - ${path3_hop1} = SfcKeywords.Get JSON Elements From URI - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/1/ - ${path3_hop2} = SfcKeywords.Get JSON Elements From URI - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/2/ - ${path4_hop0} = SfcKeywords.Get JSON Elements From URI - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/0/ - ${path4_hop1} = SfcKeywords.Get JSON Elements From URI - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/1/ - ${path4_hop2} = SfcKeywords.Get JSON Elements From URI - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/2/ - ${path5_hop0} = SfcKeywords.Get JSON Elements From URI - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/0/ - ${path5_hop1} = SfcKeywords.Get JSON Elements From URI - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/1/ - ${path5_hop2} = SfcKeywords.Get JSON Elements From URI - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/2/ - BuiltIn.Should Be Equal ${path1_hop0} ${path4_hop0} - BuiltIn.Should Not Be Equal ${path1_hop0} ${path2_hop0} - BuiltIn.Should Be Equal ${path1_hop1} ${path4_hop1} - BuiltIn.Should Not Be Equal ${path1_hop1} ${path2_hop1} - BuiltIn.Should Be Equal ${path1_hop2} ${path4_hop2} - BuiltIn.Should Not Be Equal ${path1_hop2} ${path2_hop2} - BuiltIn.Should Be Equal ${path2_hop0} ${path5_hop0} - BuiltIn.Should Not Be Equal ${path2_hop0} ${path3_hop0} - BuiltIn.Should Be Equal ${path2_hop1} ${path5_hop1} - BuiltIn.Should Not Be Equal ${path2_hop1} ${path3_hop1} - BuiltIn.Should Be Equal ${path2_hop2} ${path5_hop2} - BuiltIn.Should Not Be Equal ${path2_hop2} ${path3_hop2} - BuiltIn.Should Be Equal ${path3_hop0} ${path1_hop0} - BuiltIn.Should Not Be Equal ${path3_hop0} ${path1_hop0} - BuiltIn.Should Be Equal ${path3_hop1} ${path1_hop1} - BuiltIn.Should Not Be Equal ${path3_hop1} ${path1_hop1} - BuiltIn.Should Be Equal ${path3_hop2} ${path1_hop2} - BuiltIn.Should Not Be Equal ${path3_hop2} ${path1_hop2} - -Generate RSPs with Shortest Path Schedule Algorithm type - [Documentation] Generate RSPs with Shortest Path Schedule Algorithm type Through RESTConf APIs - Utils.Remove All Elements At URI ${SERVICE_SCHED_TYPES_URI} - 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 - 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 - ${rsp4_name} = SfcKeywords.Get Rendered Service Path Name SFC2-100 - ${rsp5_name} = SfcKeywords.Get Rendered Service Path Name SFC2-200 - ${elements} = BuiltIn.Create List "hop-number":0 "service-index":255 "service-function-name":"dpi-1 - Utils.Check For Elements At URI ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/0/ ${elements} - ${elements} = BuiltIn.Create List "hop-number":1 "service-index":254 "service-function-name":"napt44 - Utils.Check For Elements At URI ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/1/ ${elements} - ${elements} = BuiltIn.Create List "hop-number":2 "service-index":253 "service-function-name":"firewall - Utils.Check For Elements At URI ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/2/ ${elements} - ${resp} = RequestsLibrary.Get Request - ... session - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/0/ - BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${temp_vars} = BuiltIn.Set Variable ['rendered-service-path-hop'][0]['service-function-forwarder'] - ${fwd_hop1} = Utils.Extract Value From Content ${resp.content} ${temp_vars} - ${resp} = RequestsLibrary.Get Request - ... session - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/1/ - BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${fwd_hop2} = Utils.Extract Value From Content ${resp.content} ${temp_vars} - ${resp} = RequestsLibrary.Get Request - ... session - ... ${OPERATIONAL_RSP_URI}/${rsp1_name}/rendered-service-path-hop/2/ - BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${fwd_hop3} = Utils.Extract Value From Content ${resp.content} ${temp_vars} - BuiltIn.Should Be Equal ${fwd_hop1} ${fwd_hop2} - BuiltIn.Should Be Equal ${fwd_hop2} ${fwd_hop3} - ${resp} = RequestsLibrary.Get Request - ... session - ... ${OPERATIONAL_RSP_URI}/${rsp2_name}/rendered-service-path-hop/0/ - BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${fwd_hop1} = Utils.Extract Value From Content ${resp.content} ${temp_vars} - ${resp} = RequestsLibrary.Get Request - ... session - ... ${OPERATIONAL_RSP_URI}/${rsp2_name}/rendered-service-path-hop/1/ - BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${fwd_hop2} = Utils.Extract Value From Content ${resp.content} ${temp_vars} - ${resp} = RequestsLibrary.Get Request - ... session - ... ${OPERATIONAL_RSP_URI}/${rsp2_name}/rendered-service-path-hop/2/ - BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${fwd_hop3} = Utils.Extract Value From Content ${resp.content} ${temp_vars} - BuiltIn.Should Be Equal ${fwd_hop1} ${fwd_hop2} - BuiltIn.Should Be Equal ${fwd_hop2} ${fwd_hop3} - -Clean Datastore After Tests - [Documentation] Clean All Items In Datastore After Tests - Utils.Remove All Elements At URI ${SERVICE_FUNCTIONS_URI} - BuiltIn.Wait Until Keyword Succeeds - ... 60s - ... 2s - ... SfcKeywords.Check Service Function Types Removed - ... ${SERVICE_FUNCTION_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_SCHED_TYPES_URI} - Utils.Remove All Elements If Exist ${SERVICE_FUNCTION_PATHS_URI} - BuiltIn.Wait Until Keyword Succeeds 60s 2s SfcKeywords.Check Empty Service Function Paths State - - -*** Keywords *** -Init Suite - [Documentation] Create session and initialize ODL version specific variables - RequestsLibrary.Create Session - ... session - ... http://${ODL_SYSTEM_IP}:${RESTCONFPORT} - ... auth=${AUTH} - ... headers=${HEADERS} - BuiltIn.log ${ODL_STREAM} - BuiltIn.Set Suite Variable ${VERSION_DIR} master - BuiltIn.Set Suite Variable ${TEST_DIR} ${CURDIR}/../../../variables/sfc/${VERSION_DIR} - BuiltIn.Set Suite Variable ${SERVICE_FUNCTIONS_FILE} ${TEST_DIR}/service-functions.json - BuiltIn.Set Suite Variable - ... @{SERVICE_FUNCTION_NAMES} - ... "napt44-103-2" - ... "napt44-103-1" - ... "dpi-102-2" - ... "firewall-101-2" - ... "napt44-104" - ... "dpi-102-1" - ... "firewall-104" - ... "dpi-102-3" - ... "firewall-101-1" - BuiltIn.Set Suite Variable ${SERVICE_FORWARDERS_FILE} ${TEST_DIR}/service-function-forwarders.json - BuiltIn.Set Suite Variable ${SERVICE_NODES_FILE} ${TEST_DIR}/service-nodes.json - BuiltIn.Set Suite Variable ${SERVICE_CHAINS_FILE} ${TEST_DIR}/service-function-chains.json - BuiltIn.Set Suite Variable ${SERVICE_FUNCTION_PATHS_FILE} ${TEST_DIR}/service-function-paths.json - BuiltIn.Set Suite Variable ${SERVICE_RANDOM_SCHED_TYPE_FILE} ${TEST_DIR}/service-random-schedule-type.json - BuiltIn.Set Suite Variable - ... ${SERVICE_ROUNDROBIN_SCHED_TYPE_FILE} - ... ${TEST_DIR}/service-roundrobin-schedule-type.json - BuiltIn.Set Suite Variable - ... ${SERVICE_LOADBALANCE_SCHED_TYPE_FILE} - ... ${TEST_DIR}/service-loadbalance-schedule-type.json - BuiltIn.Set Suite Variable - ... ${SERVICE_SHORTESTPATH_SCHED_TYPE_FILE} - ... ${TEST_DIR}/service-shortestpath-schedule-type.json diff --git a/csit/suites/sfc/SFC_Basic/080__sfc_simple_clustering.robot b/csit/suites/sfc/SFC_Basic/080__sfc_simple_clustering.robot deleted file mode 100644 index 08d5ac6979..0000000000 --- a/csit/suites/sfc/SFC_Basic/080__sfc_simple_clustering.robot +++ /dev/null @@ -1,60 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Service Functions, Operates functions from Restconf APIs. - -Library RequestsLibrary -Library SSHLibrary -Library Collections -Library OperatingSystem -Resource ../../../variables/sfc/Variables.robot -Resource ../../../libraries/Utils.robot - -Suite Setup Init Suite -Suite Teardown Delete All Sessions - - -*** Variables *** -${SFC_API} /restconf/config/service-function:service-functions - - -*** Test Cases *** -Add Service Functions To First Node - [Documentation] Add service functions from JSON file - Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} - ${jsonbody} Read JSON From File ${SFC_FUNCTIONS_FILE} - Add Elements To URI From File ${SFC_API} ${SFC_FUNCTIONS_FILE} ${HEADERS_YANG_JSON} - ${resp} RequestsLibrary.Get Request session ${SFC_API} - Should Be Equal As Strings ${resp.status_code} 200 - ${result} To JSON ${resp.content} - Lists Should be Equal ${result} ${jsonbody} - -Read Service Functions From Second Node - Create Session session http://${ODL_SYSTEM_2_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} - ${jsonbody} Read JSON From File ${SFC_FUNCTIONS_FILE} - ${resp} RequestsLibrary.Get Request session ${SFC_API} - Should Be Equal As Strings ${resp.status_code} 200 - ${result} To JSON ${resp.content} - Lists Should be Equal ${result} ${jsonbody} - -Read Service Functions From Third Node - Create Session session http://${ODL_SYSTEM_3_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} - ${jsonbody} Read JSON From File ${SFC_FUNCTIONS_FILE} - ${resp} RequestsLibrary.Get Request session ${SFC_API} - Should Be Equal As Strings ${resp.status_code} 200 - ${result} To JSON ${resp.content} - Lists Should be Equal ${result} ${jsonbody} - - -*** Keywords *** -Read JSON From File - [Arguments] ${filepath} - ${body} OperatingSystem.Get File ${filepath} - ${jsonbody} To Json ${body} - RETURN ${jsonbody} - -Init Suite - [Documentation] Initialize ODL version specific variables - log ${ODL_STREAM} - Set Suite Variable ${VERSION_DIR} master - Set Suite Variable - ... ${SFC_FUNCTIONS_FILE} - ... ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-functions.json diff --git a/csit/suites/sfc/SFC_Basic/120__sfc_service_function_acl.robot b/csit/suites/sfc/SFC_Basic/120__sfc_service_function_acl.robot deleted file mode 100644 index bdad5ed9bd..0000000000 --- a/csit/suites/sfc/SFC_Basic/120__sfc_service_function_acl.robot +++ /dev/null @@ -1,65 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Service Function ACL, Operates functions from Restconf APIs. - -Library SSHLibrary -Library Collections -Library OperatingSystem -Library RequestsLibrary -Resource ../../../variables/sfc/Variables.robot -Resource ../../../libraries/Utils.robot - -Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} -Suite Teardown Delete All Sessions -Test Setup Remove All Elements If Exist ${SERVICE_FUNCTION_ACLS_URI} -Test Teardown Remove All Elements At URI ${SERVICE_FUNCTION_ACLS_URI} - - -*** Variables *** -${SERVICE_FUNCTION_ACL_FILE} ${CURDIR}/../../../variables/sfc/master/service-function-acl.json - - -*** Test Cases *** -Add ACL - [Documentation] Add Service Function ACL from JSON file - Add Elements To URI From File ${SERVICE_FUNCTION_ACLS_URI} ${SERVICE_FUNCTION_ACL_FILE} - ${body} OperatingSystem.Get File ${SERVICE_FUNCTION_ACL_FILE} - ${jsonbody} To Json ${body} - ${functions} Get From Dictionary ${jsonbody} access-lists - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_ACLS_URI} - ${result} To JSON ${resp.content} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - ${function} Get From Dictionary ${result} access-lists - Lists Should be Equal ${function} ${functions} - -Delete All ACLs - [Documentation] Delete all ACL - ${body} OperatingSystem.Get File ${SERVICE_FUNCTION_ACL_FILE} - Add Elements To URI From File ${SERVICE_FUNCTION_ACLS_URI} ${SERVICE_FUNCTION_ACL_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_ACLS_URI} - Should Be Equal As Strings ${resp.status_code} 200 - Remove All Elements At URI ${SERVICE_FUNCTION_ACLS_URI} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_ACLS_URI} - Should Be Equal As Strings ${resp.status_code} 404 - [Teardown] NONE - -Get one ACL - [Documentation] Get one ACL - Add Elements To URI From File ${SERVICE_FUNCTION_ACLS_URI} ${SERVICE_FUNCTION_ACL_FILE} - ${resp} RequestsLibrary.Get Request - ... session - ... ${SERVICE_FUNCTION_ACLS_URI}/acl/ietf-access-control-list:ipv4-acl/ACL1 - Should Be Equal As Strings ${resp.status_code} 200 - -Get A Non-existing ACL - [Documentation] Get A Non-existing ACL - Add Elements To URI From File ${SERVICE_FUNCTION_ACLS_URI} ${SERVICE_FUNCTION_ACL_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_ACLS_URI}/acl/unexisting-acl - Should Be Equal As Strings ${resp.status_code} 404 - -Delete An ACL - [Documentation] Delete an ACL - Add Elements To URI From File ${SERVICE_FUNCTION_ACLS_URI} ${SERVICE_FUNCTION_ACL_FILE} - Remove All Elements At URI ${SERVICE_FUNCTION_ACLS_URI}/acl/ietf-access-control-list:ipv4-acl/ACL1 - ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_ACLS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Not Contain ${resp.text} ACL1 diff --git a/csit/suites/sfc/SFC_Basic/140__sfc_service_function_classifier.robot b/csit/suites/sfc/SFC_Basic/140__sfc_service_function_classifier.robot deleted file mode 100644 index 1d0cd70895..0000000000 --- a/csit/suites/sfc/SFC_Basic/140__sfc_service_function_classifier.robot +++ /dev/null @@ -1,67 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Service Function Classifiers, Operates functions from Restconf APIs. - -Library SSHLibrary -Library Collections -Library OperatingSystem -Library RequestsLibrary -Resource ../../../variables/sfc/Variables.robot -Resource ../../../libraries/Utils.robot - -Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} -Suite Teardown Delete All Sessions -Test Setup Remove All Elements If Exist ${SERVICE_CLASSIFIERS_URI} -Test Teardown Remove All Elements At URI ${SERVICE_CLASSIFIERS_URI} - - -*** Variables *** -${SERVICE_CLASSIFIER_FILE} ${CURDIR}/../../../variables/sfc/master/service-function-classifiers.json - - -*** Test Cases *** -Add Service Function Classifier - [Documentation] Add Service Function Classifiers from JSON file - Add Elements To URI From File ${SERVICE_CLASSIFIERS_URI} ${SERVICE_CLASSIFIER_FILE} - ${body} OperatingSystem.Get File ${SERVICE_CLASSIFIER_FILE} - ${jsonbody} To Json ${body} - ${functions} Get From Dictionary ${jsonbody} service-function-classifiers - ${resp} RequestsLibrary.Get Request session ${SERVICE_CLASSIFIERS_URI} - ${result} To JSON ${resp.content} - Should Be Equal As Strings ${resp.status_code} 200 - ${function} Get From Dictionary ${result} service-function-classifiers - Lists Should be Equal ${function} ${functions} - -Delete All Classifiers - [Documentation] Delete all Classifiers - ${body} OperatingSystem.Get File ${SERVICE_CLASSIFIER_FILE} - Add Elements To URI From File ${SERVICE_CLASSIFIERS_URI} ${SERVICE_CLASSIFIER_FILE} - ${resp} RequestsLibrary.Get Request session ${SERVICE_CLASSIFIERS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Remove All Elements At URI ${SERVICE_CLASSIFIERS_URI} - ${resp} RequestsLibrary.Get Request session ${SERVICE_CLASSIFIERS_URI} - Should Be Equal As Strings ${resp.status_code} 404 - [Teardown] NONE - -Get one Classifier - [Documentation] Get one Classifier - Add Elements To URI From File ${SERVICE_CLASSIFIERS_URI} ${SERVICE_CLASSIFIER_FILE} - ${resp} RequestsLibrary.Get Request - ... session - ... ${SERVICE_CLASSIFIERS_URI}/service-function-classifier/Classifier1 - Should Be Equal As Strings ${resp.status_code} 200 - -Get A Non-existing Classifier - [Documentation] Get A Non-existing Classifier - Add Elements To URI From File ${SERVICE_CLASSIFIERS_URI} ${SERVICE_CLASSIFIER_FILE} - ${resp} RequestsLibrary.Get Request - ... session - ... ${SERVICE_CLASSIFIERS_URI}/service-function-classifier/nonexistant-classifier - Should Be Equal As Strings ${resp.status_code} 404 - -Delete a Classifier - [Documentation] Delete a classifier - Add Elements To URI From File ${SERVICE_CLASSIFIERS_URI} ${SERVICE_CLASSIFIER_FILE} - Remove All Elements At URI ${SERVICE_CLASSIFIERS_URI}/service-function-classifier/Classifier1 - ${resp} RequestsLibrary.Get Request session ${SERVICE_CLASSIFIERS_URI} - Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code} - Should Not Contain ${resp.text} Classifier1 diff --git a/csit/suites/sfc/SFC_Persistency/020__sfc_persistency.robot b/csit/suites/sfc/SFC_Persistency/020__sfc_persistency.robot deleted file mode 100644 index 0b3aacd3c9..0000000000 --- a/csit/suites/sfc/SFC_Persistency/020__sfc_persistency.robot +++ /dev/null @@ -1,96 +0,0 @@ -*** Settings *** -Documentation Test suite for SFC Persistency. Checks that system persistency is working as expected - -Library SSHLibrary -Library Collections -Library OperatingSystem -Library RequestsLibrary -Library ../../../libraries/SFC/SfcUtils.py -Resource ../../../libraries/SFC/SfcKeywords.robot -Resource ../../../libraries/ClusterOpenFlow.robot -Resource ../../../libraries/KarafKeywords.robot -Resource ../../../variables/sfc/Variables.robot -Resource ../../../libraries/Utils.robot -Resource ../../../libraries/TemplatedRequests.robot -Resource ../../../libraries/SFC/DockerSfc.robot - -Suite Setup Init Suite -Suite Teardown Delete All Sessions - - -*** Variables *** -${JSON_DIR} ${CURDIR}/../../../variables/sfc/master -${SERVICE_FUNCTIONS_FILE} ${JSON_DIR}/service-functions.json -${SERVICE_FORWARDERS_FILE} ${JSON_DIR}/service-function-forwarders.json -${SERVICE_NODES_FILE} ${JSON_DIR}/service-nodes.json -${SERVICE_CHAINS_FILE} ${JSON_DIR}/service-function-chains.json -${SERVICE_FUNCTION_PATHS_FILE} ${JSON_DIR}/service-function-paths.json -${CREATE_RSP1_INPUT} {"input":{"parent-service-function-path":"SFC1-100","name":"SFC1-100-Path-1"}} -@{SF_NAMES} -... napt44-103-2 -... napt44-103-1 -... dpi-102-2 -... firewall-101-2 -... napt44-104 -... dpi-102-1 -... firewall-104 -... dpi-102-3 -... firewall-101-1 - - -*** Test Cases *** -Add SFC Elements and restart cluster - [Documentation] Add SFC Elements, restart the cluster and check that persisted resources are present - Add SFC Elements - ${session} = Resolve Http Session for Controller - Kill_Members_From_List_Or_All - Start_Members_From_List_Or_All wait_for_sync=True - Wait until Keyword succeeds 2min 5 sec Get Data From URI session ${SERVICE_FORWARDERS_URI} - Wait until Keyword succeeds 2min 5 sec Get Data From URI session ${SERVICE_NODES_URI} - Wait until Keyword succeeds 2min 5 sec Get Data From URI session ${SERVICE_FUNCTIONS_URI} - Wait Until Keyword Succeeds 2min 5 sec Check Service Function Types Added ${SF_NAMES} - Wait until Keyword succeeds 2min 5 sec Get Data From URI session ${SERVICE_CHAINS_URI} - Wait until Keyword succeeds 2min 5 sec Get Data From URI session ${SERVICE_FUNCTION_PATHS_URI} - Wait until Keyword succeeds - ... 2min - ... 5 sec - ... TemplatedRequests.Get_As_Json_Templated - ... session=${session} - ... folder=${RESTCONF_MODULES_DIR} - ... verify=False - Wait until Keyword succeeds - ... 2min - ... 5 sec - ... Get Data From URI - ... session - ... ${OPERATIONAL_RSPS_URI} - [Teardown] Remove SFC Elements - - -*** Keywords *** -Init Suite - [Documentation] Connect Create session and initialize ODL version specific variables - ClusterManagement Setup - Create Session session http://${ODL_SYSTEM_1_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} - -Add SFC Elements - [Documentation] Add Elements to the Controller via API REST - 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_FUNCTION_PATHS_URI} ${SERVICE_FUNCTION_PATHS_FILE} - Wait until Keyword succeeds 60s 2s Get Data From URI session ${OPERATIONAL_RSPS_URI} - -Remove SFC Elements - [Documentation] Remove Elements from the Controller via API REST - Remove All Elements At URI ${SERVICE_FUNCTIONS_URI} - 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} - -Resolve Http Session for Controller - ${session} = Resolve_Http_Session_For_Member member_index=1 - RETURN ${session} diff --git a/csit/testplans/sfc-full-deploy.txt b/csit/testplans/sfc-full-deploy.txt deleted file mode 100644 index e799e5bb46..0000000000 --- a/csit/testplans/sfc-full-deploy.txt +++ /dev/null @@ -1,3 +0,0 @@ -# Place the suites in run order: -integration/test/csit/suites/sfc/Full_Deploy -integration/test/csit/suites/sfc/SFC_Persistency/020__sfc_persistency.robot diff --git a/csit/testplans/sfc-rest-basic.txt b/csit/testplans/sfc-rest-basic.txt deleted file mode 100644 index 646aca712c..0000000000 --- a/csit/testplans/sfc-rest-basic.txt +++ /dev/null @@ -1,2 +0,0 @@ -# Place the suites in run order: -integration/test/csit/suites/sfc/SFC_Basic -- 2.36.6