Remove testplans and suites for sfc 10/109610/16
authorOleksandr Zharov <oleksandr.zharov@pantheon.tech>
Wed, 3 Jan 2024 19:52:06 +0000 (20:52 +0100)
committerOleksandr Zharov <oleksandr.zharov@pantheon.tech>
Fri, 16 Feb 2024 15:44:45 +0000 (16:44 +0100)
Removed testplans and suites for sfc project.

JIRA: INTTEST-140
Change-Id: Iba7934a045d348a2ee23b462e5e66d74c916be42
Signed-off-by: Oleksandr Zharov <oleksandr.zharov@pantheon.tech>
22 files changed:
csit/suites/sfc/Full_Deploy/010__sfc_full_deploy.robot [deleted file]
csit/suites/sfc/Full_Deploy/011__sfc_service_paths.robot [deleted file]
csit/suites/sfc/Full_Deploy/012__sfc_service_paths_validation.robot [deleted file]
csit/suites/sfc/Full_Deploy/013__sfc_service_functions_logical.robot [deleted file]
csit/suites/sfc/Full_Deploy/014__sfc_service_forwarders_logical.robot [deleted file]
csit/suites/sfc/Full_Deploy/015__sfc_rendered_service_paths_logical.robot [deleted file]
csit/suites/sfc/Full_Deploy/Dockerfile [deleted file]
csit/suites/sfc/Full_Deploy/docker-ovs.sh [deleted file]
csit/suites/sfc/Full_Deploy/setup-docker-image.sh [deleted file]
csit/suites/sfc/SFC_Basic/010__sfc_service_functions.robot [deleted file]
csit/suites/sfc/SFC_Basic/020__sfc_service_forwarders.robot [deleted file]
csit/suites/sfc/SFC_Basic/030__sfc_service_nodes.robot [deleted file]
csit/suites/sfc/SFC_Basic/040__sfc_service_chains.robot [deleted file]
csit/suites/sfc/SFC_Basic/050__sfc_service_schedule_types.robot [deleted file]
csit/suites/sfc/SFC_Basic/060__sfc_service_paths.robot [deleted file]
csit/suites/sfc/SFC_Basic/070__sfc_rendered_service_paths.robot [deleted file]
csit/suites/sfc/SFC_Basic/080__sfc_simple_clustering.robot [deleted file]
csit/suites/sfc/SFC_Basic/120__sfc_service_function_acl.robot [deleted file]
csit/suites/sfc/SFC_Basic/140__sfc_service_function_classifier.robot [deleted file]
csit/suites/sfc/SFC_Persistency/020__sfc_persistency.robot [deleted file]
csit/testplans/sfc-full-deploy.txt [deleted file]
csit/testplans/sfc-rest-basic.txt [deleted file]

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 (file)
index 02aa571..0000000
+++ /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 (file)
index 4b41480..0000000
+++ /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 (file)
index 6096c54..0000000
+++ /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 (file)
index 30d0f2e..0000000
+++ /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 (file)
index 2550d37..0000000
+++ /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 (file)
index 5c9df2a..0000000
+++ /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 (file)
index 58f48bf..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-FROM socketplane/busybox:latest
-MAINTAINER The SocketPlane Team <support@socketplane.io>
-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 (executable)
index 50ab7dd..0000000
+++ /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 (executable)
index 62c1ca6..0000000
+++ /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 (file)
index 47c2a57..0000000
+++ /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 (file)
index 0570d95..0000000
+++ /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 (file)
index c9776d5..0000000
+++ /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 (file)
index b737932..0000000
+++ /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 (file)
index 05cc044..0000000
+++ /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 (file)
index 00efccb..0000000
+++ /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 (file)
index d6a4b9f..0000000
+++ /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 (file)
index 08d5ac6..0000000
+++ /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 (file)
index bdad5ed..0000000
+++ /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 (file)
index 1d0cd70..0000000
+++ /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 (file)
index 0b3aacd..0000000
+++ /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 (file)
index e799e5b..0000000
+++ /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 (file)
index 646aca7..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# Place the suites in run order:
-integration/test/csit/suites/sfc/SFC_Basic