Get Rendered Service Path Name
[Arguments] ${sfp_name} ${get_reverse}=False
[Documentation] Given an SFP name, do a get on ${SERVICE_FUNCTION_PATH_STATE_URI} to get the RSP name
- ${resp} = RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATH_STATE_URI}${sfp_name}
+ ${resp} = RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATH_STATE_URI}/${sfp_name}
BuiltIn.Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
# should be like this: {"service-function-path-state":[{"name":"SFC1-100","sfp-rendered-service-path":[{"name":"SFC1-100-Path-183"}]}]}
${sfp_rendered_service_path_list} = Collections.Get_From_Dictionary ${resp.json()} service-function-path-state
\ ${status} ${symmetric} = BuiltIn.Run Keyword And Ignore Error Collections.Get_From_Dictionary ${sfp_entry_dict} symmetric
\ ${symmetric} = BuiltIn.Set Variable If "${status}" == "FAIL" False ${symmetric}
\ ${num_names} = BuiltIn.Set Variable If "${symmetric}" == "False" 2 3
- \ BuiltIn.Wait Until Keyword Succeeds 60s 2s Utils.Check For Specific Number Of Elements At URI ${SERVICE_FUNCTION_PATH_STATE_URI}${sfp_name} name
+ \ BuiltIn.Wait Until Keyword Succeeds 60s 2s Utils.Check For Specific Number Of Elements At URI ${SERVICE_FUNCTION_PATH_STATE_URI}/${sfp_name} name
\ ... ${num_names}
Delete Sfp And Wait For Rsps Deletion
[Arguments] ${sfp_name}
[Documentation] Given an SFP name, delete it and wait for the associated SFP state and RSPs to be deleted
- Utils.Remove All Elements At URI And Verify ${SERVICE_FUNCTION_PATH_URI}${sfp_name}
+ Utils.Remove All Elements At URI And Verify ${SERVICE_FUNCTION_PATH_URI}/${sfp_name}
BuiltIn.Wait Until Keyword Succeeds 60s 2s Check Rendered Service Path Deleted ${sfp_name}
Delete All Sfps And Wait For Rsps Deletion
[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}
+ 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}
+ 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}
Library Collections
Library OperatingSystem
Library RequestsLibrary
+Resource ../../../variables/sfc/Variables.robot
Resource ../../../variables/Variables.robot
Resource ../../../libraries/Utils.robot
Resource ../../../libraries/TemplatedRequests.robot
[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_PATHS_URI}service-function-path/SFC1-100 ${elements}
+ 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_PATHS_URI}service-function-path/non-existing-sfp
+ ${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_PATHS_URI}service-function-path/SFC1-100
+ ${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_PATHS_URI}service-function-path/SFC1-100
- ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI}service-function-path/SFC1-100
+ 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}
${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_PATHS_URI}service-function-path/non-existing-sfp
+ ${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}
Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
log ${ODL_STREAM}
Set Suite Variable ${VERSION_DIR} master
- Set Suite Variable ${SERVICE_FUNCTION_PATHS_URI} /restconf/config/service-function-path:service-function-paths/
- Set Suite Variable ${SERVICE_FUNCTION_PATHS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-paths.json
- Set Suite Variable ${SERVICE_FUNCTION_PATH400_URI} /restconf/config/service-function-path:service-function-paths/service-function-path/SFC1-400
- Set Suite Variable ${SERVICE_FUNCTION_PATH400_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sfp_sfc1_path400.json
+ 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
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_PATH400_URI} ${SERVICE_FUNCTION_PATHS_URI}/SFC1-400
- Set Suite Variable ${SERVICE_FUNCTION_PATH400_FILE} ${SFC_JSON_TEST_FILES_DIR}/sfp_sfc1_path400.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
*** 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_URI} ${SERVICE_FUNCTION_URI}/dpi-1/
${SF_DPI_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sf_dpi.json
*** Test Cases ***
[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}
+ 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
+ ${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
+ 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.content} dpi-1
${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
+ ${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}
*** Variables ***
${VERSION_DIR} master
-${SERVICE_FORWARDERS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-forwarders-logicallsff.json
-${SFF_SFFLOG_URI} ${SERVICE_FORWARDER_URI}sfflogical1/
-${SFF_SFFLOG_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-forwarder-logicallsff1.json
+${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
[Tags] include
Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE}
${elements}= Create List sfflogical1
- Check For Elements At URI ${SERVICE_FORWARDER_URI}sfflogical1 ${elements}
+ 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 ${SERVICE_FORWARDER_URI}sfflogical1
+ ${resp} RequestsLibrary.Get Request session ${SFF_SFFLOG_URI}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
- Remove All Elements At URI ${SERVICE_FORWARDER_URI}sfflogical1
- ${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDER_URI}sfflogical1
+ 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
${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDERS_URI}
Should Be Equal As Strings ${resp.status_code} 200
Resource ../../../libraries/Utils.robot
Resource ../../../libraries/TemplatedRequests.robot
+*** 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
[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}
+ 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}
+ 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}
[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}
+ 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}
+ 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}
SfcKeywords.Create Sfp And Wait For Rsp Creation ${SERVICE_FUNCTION_PATHS_FILE}
${rsp_name} = SfcKeywords.Get Rendered Service Path Name ${SFP_NAME}
${elements} = BuiltIn.Create List "hop-number":0 "service-index":255 "service-function-name":"dpi-1
- Utils.Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/${rsp_name}/rendered-service-path-hop/0/ ${elements}
+ 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_RSPS_URI}rendered-service-path/${rsp_name}/rendered-service-path-hop/1/ ${elements}
- ${resp} = RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/RSP1/rendered-service-path-hop/2/
+ 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 ***
[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_FUNCTIONS_URI}service-function/dpi-102-1 ${elements}
+ 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_FUNCTIONS_URI}service-function/non-existing-sf
+ ${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_FUNCTIONS_URI}service-function/dpi-102-1
+ 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.content} dpi-102-1
${body} OperatingSystem.Get File ${SERVICE_FUNCTIONS_FILE}
${jsonbody} To Json ${body}
${functions} Get From Dictionary ${jsonbody} service-functions
- ${resp} RequestsLibrary.Delete Request session ${SERVICE_FUNCTIONS_URI}service-function/non-existing-sf
+ ${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}
[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}
+ 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}
+ 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}/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}
+ 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.content} 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}/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
+ 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.content} dpl-100
Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
log ${ODL_STREAM}
Set Suite Variable ${VERSION_DIR} master
- Set Suite Variable ${SERVICE_FUNCTIONS_URI} /restconf/config/service-function:service-functions/
- Set Suite Variable ${SERVICE_FUNCTIONS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-functions.json
- Set Suite Variable ${SF_DPI102100_URI} /restconf/config/service-function:service-functions/service-function/dpi-102-100/
- Set Suite Variable ${SF_DPI102100_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sf_dpi_102_100.json
- Set Suite Variable ${SF_DPL101_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sf_dpl_101.json
+ 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
[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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap ${elements}
+ 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_FORWARDERS_URI}service-function-forwarder/non-existing-sff
+ ${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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap
+ ${resp} RequestsLibrary.Get Request session ${SFF_BOOTSTRAP_URI}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
- Remove All Elements At URI ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap
- ${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap
+ 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
${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_FORWARDERS_URI}service-function-forwarder/non-existing-sff
+ ${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}
[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}
+ 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}
+ 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}/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}
+ 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.content} 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}/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
+ 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.content} "name":"eth0"
[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}
+ 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}
+ 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}
+ 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}/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
+ 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.content} dpl-101
Should Not Contain ${resp.content} 6101
[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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF1 ${elements}
+ 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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF1
+ ${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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF1
- ${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF1
+ 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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/
+ ${resp} RequestsLibrary.Get Request session ${SFF_BOOTSTRAP_URI}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
Should Contain ${resp.content} service-function-dictionary
Should Not Contain ${resp.content} 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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF100 ${SFF_SFD_SF100_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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF100 ${elements}
+ 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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/ ${elements}
+ 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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF1/sff-sf-data-plane-locator/ ${elements}
+ 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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF1/sff-sf-data-plane-locator/
+ ${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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF1/sff-sf-data-plane-locator/
- ${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF1/sff-sf-data-plane-locator/
+ 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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF1/sff-sf-data-plane-locator/ ${SFF_SFD_LOCATOR_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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF1/sff-sf-data-plane-locator/ ${elements}
- Check For Elements At URI ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/service-function-dictionary/SF1/ ${elements}
+ 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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/connected-sff-dictionary/br-int-ovs-2 ${elements}
- ${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDERS_URI}service-function-forwarder/br-int-ovs-2/connected-sff-dictionary/SFF-bootstrap
+ 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.content} 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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/connected-sff-dictionary/br-int-ovs-2
+ ${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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/connected-sff-dictionary/br-int-ovs-2
- ${resp} RequestsLibrary.Get Request session ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/connected-sff-dictionary/br-int-ovs-2
+ 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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/
+ ${resp} RequestsLibrary.Get Request session ${SFF_BOOTSTRAP_URI}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
Should Not Contain ${resp.content} 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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/connected-sff-dictionary/SFF100 ${SFF_CSD_SFF100_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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/connected-sff-dictionary/SFF100 ${elements}
- Check For Elements At URI ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/ ${elements}
+ 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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/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/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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/connected-sff-dictionary/br-int-ovs-2/sff-sff-data-plane-locator/ ${SFF_CSD_LOCATOR_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 ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/connected-sff-dictionary/br-int-ovs-2/sff-sff-data-plane-locator/ ${elements}
- Check For Elements At URI ${SERVICE_FORWARDERS_URI}service-function-forwarder/SFF-bootstrap/connected-sff-dictionary/br-int-ovs-2/ ${elements}
+ 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
Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
log ${ODL_STREAM}
Set Suite Variable ${VERSION_DIR} master
- Set Suite Variable ${SERVICE_FORWARDERS_URI} /restconf/config/service-function-forwarder:service-function-forwarders/
- Set Suite Variable ${SERVICE_FORWARDERS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-forwarders.json
- Set Suite Variable ${SFF_OVS100_URI} /restconf/config/service-function-forwarder:service-function-forwarders/service-function-forwarder/ovs-100/
- Set Suite Variable ${SFF_OVS100_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sff_ovs_100.json
- Set Suite Variable ${SFF_DPL101_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sff_dpl_101.json
- Set Suite Variable ${SFF_DPL_LOCATOR_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sff_dpl_locator.json
- Set Suite Variable ${SFF_SFD_SF100_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sff_sfd_sf100.json
- Set Suite Variable ${SFF_SFD_LOCATOR_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sff_sfd_locator.json
- Set Suite Variable ${SFF_CSD_SFF100_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sff_csd_sff100.json
- Set Suite Variable ${SFF_CSD_LOCATOR_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sff_csd_locator.json
+ 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
[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_NODES_URI}service-node/node-101 ${elements}
+ 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_NODES_URI}service-node/non-existing-sf
+ ${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_NODES_URI}service-node/node-101
+ 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.content} node-101
${body} OperatingSystem.Get File ${SERVICE_NODES_FILE}
${jsonbody} To Json ${body}
${nodes} Get From Dictionary ${jsonbody} service-nodes
- ${resp} RequestsLibrary.Delete Request session ${SERVICE_NODES_URI}service-node/non-existing-sn
+ ${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}
Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
log ${ODL_STREAM}
Set Suite Variable ${VERSION_DIR} master
- Set Suite Variable ${SERVICE_NODES_URI} /restconf/config/service-node:service-nodes/
- Set Suite Variable ${SERVICE_NODES_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-nodes.json
- Set Suite Variable ${SN_NODE100_URI} /restconf/config/service-node:service-nodes/service-node/node-100
- Set Suite Variable ${SN_NODE100_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sn_node_100.json
+ 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
[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_CHAINS_URI}service-function-chain/SFC1 ${elements}
+ 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_CHAINS_URI}service-function-chain/non-existing-sfc
+ ${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_CHAINS_URI}service-function-chain/SFC1
+ ${resp} RequestsLibrary.Get Request session ${SERVICE_CHAIN_URI}/SFC1
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
- Remove All Elements At URI ${SERVICE_CHAINS_URI}service-function-chain/SFC1
+ 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}
${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_CHAINS_URI}service-function-chain/non-existing-sfc
+ ${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}
[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_CHAINS_URI}service-function-chain/SFC1/sfc-service-function/dpi-abstract1 ${elements}
+ 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_CHAINS_URI}service-function-chain/SFC1/sfc-service-function/non-existing-sft
+ ${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_CHAINS_URI}service-function-chain/SFC1/sfc-service-function/dpi-abstract1
+ 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.content} SFC1
${elements}= Create List dpi-abstract1 service-function-type:dpi
- Check For Elements Not At URI ${SERVICE_CHAINS_URI}service-function-chain/SFC1/ ${elements}
+ 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_CHAINS_URI}service-function-chain/SFC1/sfc-service-function/non-existing-sft
+ ${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_CHAINS_URI}service-function-chain/SFC1 ${elements}
+ 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
Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
log ${ODL_STREAM}
Set Suite Variable ${VERSION_DIR} master
- Set Suite Variable ${SERVICE_CHAINS_URI} /restconf/config/service-function-chain:service-function-chains/
- Set Suite Variable ${SERVICE_CHAINS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-chains.json
- Set Suite Variable ${SERVICE_CHAIN100_URI} /restconf/config/service-function-chain:service-function-chains/service-function-chain/SFC100
- Set Suite Variable ${SERVICE_CHAIN100_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sfc_chain_100.json
- Set Suite Variable ${SERVICE_CHAIN100_SFIDS_URI} /restconf/config/service-function-chain:service-function-chains/service-function-chain/SFC100/sfc-service-function/ids-abstract100
- Set Suite Variable ${SERVICE_CHAIN100_SFIDS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sfc_chain_100_sfids.json
+ 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
[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_SCHED_TYPES_URI}service-function-scheduler-type/service-function-scheduler-type:random ${elements}
- ${resp} RequestsLibrary.Get Request session ${SERVICE_SCHED_TYPES_URI}service-function-scheduler-type/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_TYPES_URI}service-function-scheduler-type/service-function-scheduler-type:user-defined
+ ${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_SCHED_TYPES_URI}service-function-scheduler-type/service-function-scheduler-type:random
+ 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}
${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_TYPES_URI}service-function-scheduler-type/service-function-scheduler-type:user-defined
+ ${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}
Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
log ${ODL_STREAM}
Set Suite Variable ${VERSION_DIR} master
- Set Suite Variable ${SERVICE_SCHED_TYPES_URI} /restconf/config/service-function-scheduler-type:service-function-scheduler-types/
- Set Suite Variable ${SERVICE_SCHED_TYPES_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-schedule-types.json
- Set Suite Variable ${SERVICE_WSP_SCHED_TYPE_URI} /restconf/config/service-function-scheduler-type:service-function-scheduler-types/service-function-scheduler-type/service-function-scheduler-type:weighted-shortest-path
- Set Suite Variable ${SERVICE_WSP_SCHED_TYPE_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-wsp-schedule-type.json
+ 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
[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_PATHS_URI}service-function-path/SFC1-100 ${elements}
+ 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_PATHS_URI}service-function-path/non-existing-sfp
+ ${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_PATHS_URI}service-function-path/SFC1-100
+ ${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_PATHS_URI}service-function-path/SFC1-100
- ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_PATHS_URI}service-function-path/SFC1-100
+ 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}
${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_PATHS_URI}service-function-path/non-existing-sfp
+ ${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}
Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
log ${ODL_STREAM}
Set Suite Variable ${VERSION_DIR} master
- Set Suite Variable ${SERVICE_FUNCTION_PATHS_URI} /restconf/config/service-function-path:service-function-paths/
- Set Suite Variable ${SERVICE_FUNCTION_PATHS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-paths.json
- Set Suite Variable ${SERVICE_FUNCTION_PATH400_URI} /restconf/config/service-function-path:service-function-paths/service-function-path/SFC1-400
- Set Suite Variable ${SERVICE_FUNCTION_PATH400_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sfp_sfc1_path400.json
+ 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
[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}
+ ${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
+ 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}
[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/
+ ${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}
+ 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}
+ 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/
+ 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
${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}
+ ${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}
${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}
+ 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}
+ 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}
+ 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
${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/
+ ${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}
${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}
+ 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}
+ 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/
+ 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}
${fwd_hop1} = Utils.Extract Value From Content ${resp.content} /rendered-service-path-hop/0/service-function-forwarder
- ${resp} = RequestsLibrary.Get Request session ${OPERATIONAL_RSP_URI}${rsp1_name}/rendered-service-path-hop/1/
+ ${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} /rendered-service-path-hop/0/service-function-forwarder
- ${resp} = RequestsLibrary.Get Request session ${OPERATIONAL_RSP_URI}${rsp1_name}/rendered-service-path-hop/2/
+ ${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} /rendered-service-path-hop/0/service-function-forwarder
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/
+ ${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} /rendered-service-path-hop/0/service-function-forwarder
- ${resp} = RequestsLibrary.Get Request session ${OPERATIONAL_RSP_URI}${rsp2_name}/rendered-service-path-hop/1/
+ ${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} /rendered-service-path-hop/0/service-function-forwarder
- ${resp} = RequestsLibrary.Get Request session ${OPERATIONAL_RSP_URI}${rsp2_name}/rendered-service-path-hop/2/
+ ${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} /rendered-service-path-hop/0/service-function-forwarder
BuiltIn.Should Be Equal ${fwd_hop1} ${fwd_hop2}
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 ${SERVICE_FUNCTIONS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-functions.json
+ 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} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-forwarders.json
- BuiltIn.Set Suite Variable ${SERVICE_NODES_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-nodes.json
- BuiltIn.Set Suite Variable ${SERVICE_CHAINS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-chains.json
- BuiltIn.Set Suite Variable ${SERVICE_FUNCTION_PATHS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-paths.json
- BuiltIn.Set Suite Variable ${SERVICE_RANDOM_SCHED_TYPE_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-random-schedule-type.json
- BuiltIn.Set Suite Variable ${SERVICE_ROUNDROBIN_SCHED_TYPE_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-roundrobin-schedule-type.json
- BuiltIn.Set Suite Variable ${SERVICE_LOADBALANCE_SCHED_TYPE_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-loadbalance-schedule-type.json
- BuiltIn.Set Suite Variable ${SERVICE_SHORTESTPATH_SCHED_TYPE_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-shortestpath-schedule-type.json
+ 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
Documentation Test suite for SFC Service Function ACL, Operates functions from Restconf APIs.
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_ACL_URI}
-Test Teardown Remove All Elements At URI ${SERVICE_FUNCTION_ACL_URI}
+Test Setup Remove All Elements If Exist ${SERVICE_FUNCTION_ACLS_URI}
+Test Teardown Remove All Elements At URI ${SERVICE_FUNCTION_ACLS_URI}
Library SSHLibrary
Library Collections
Library OperatingSystem
Resource ../../../libraries/Utils.robot
*** Variables ***
-${SERVICE_FUNCTION_ACL_URI} /restconf/config/ietf-access-control-list:access-lists/
${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_ACL_URI} ${SERVICE_FUNCTION_ACL_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_ACL_URI}
+ ${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
Delete All ACLs
[Documentation] Delete all ACL
${body} OperatingSystem.Get File ${SERVICE_FUNCTION_ACL_FILE}
- Add Elements To URI From File ${SERVICE_FUNCTION_ACL_URI} ${SERVICE_FUNCTION_ACL_FILE}
- ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_ACL_URI}
+ 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_ACL_URI}
- ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_ACL_URI}
+ 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_ACL_URI} ${SERVICE_FUNCTION_ACL_FILE}
- ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_ACL_URI}acl/ietf-access-control-list:ipv4-acl/ACL1
+ 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_ACL_URI} ${SERVICE_FUNCTION_ACL_FILE}
- ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_ACL_URI}acl/unexisting-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_ACL_URI} ${SERVICE_FUNCTION_ACL_FILE}
- Remove All Elements At URI ${SERVICE_FUNCTION_ACL_URI}acl/ietf-access-control-list:ipv4-acl/ACL1
- ${resp} RequestsLibrary.Get Request session ${SERVICE_FUNCTION_ACL_URI}
+ 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.content} ACL1
Documentation Test suite for SFC Service Function Classifiers, Operates functions from Restconf APIs.
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_CLASSIFIER_URI}
-Test Teardown Remove All Elements At URI ${SERVICE_CLASSIFIER_URI}
+Test Setup Remove All Elements If Exist ${SERVICE_CLASSIFIERS_URI}
+Test Teardown Remove All Elements At URI ${SERVICE_CLASSIFIERS_URI}
Library SSHLibrary
Library Collections
Library OperatingSystem
Resource ../../../libraries/Utils.robot
*** Variables ***
-${SERVICE_CLASSIFIER_URI} /restconf/config/service-function-classifier:service-function-classifiers/
${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_CLASSIFIER_URI} ${SERVICE_CLASSIFIER_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_CLASSIFIER_URI}
+ ${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
Delete All Classifiers
[Documentation] Delete all Classifiers
${body} OperatingSystem.Get File ${SERVICE_CLASSIFIER_FILE}
- Add Elements To URI From File ${SERVICE_CLASSIFIER_URI} ${SERVICE_CLASSIFIER_FILE}
- ${resp} RequestsLibrary.Get Request session ${SERVICE_CLASSIFIER_URI}
+ 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_CLASSIFIER_URI}
- ${resp} RequestsLibrary.Get Request session ${SERVICE_CLASSIFIER_URI}
+ 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_CLASSIFIER_URI} ${SERVICE_CLASSIFIER_FILE}
- ${resp} RequestsLibrary.Get Request session ${SERVICE_CLASSIFIER_URI}service-function-classifier/Classifier1
+ 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_CLASSIFIER_URI} ${SERVICE_CLASSIFIER_FILE}
- ${resp} RequestsLibrary.Get Request session ${SERVICE_CLASSIFIER_URI}service-function-classifier/unexisting-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_CLASSIFIER_URI} ${SERVICE_CLASSIFIER_FILE}
- Remove All Elements At URI ${SERVICE_CLASSIFIER_URI}service-function-classifier/Classifier1
- ${resp} RequestsLibrary.Get Request session ${SERVICE_CLASSIFIER_URI}
+ 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.content} Classifier1
*** Variables ***
-# Generic Service Chains and Function URIs
+# Generic Service Function Chaining URIs
${REST_CONFIG} /restconf/config
${REST_OPER} /restconf/operational
-${SERVICE_FUNCTION_TYPES_URI} ${REST_CONFIG}/service-function-type:service-function-types/
-${SERVICE_FUNCTIONS_URI} ${REST_CONFIG}/service-function:service-functions/
-${SERVICE_FUNCTION_URI} ${REST_CONFIG}/service-function:service-functions/service-function/
-${SERVICE_FUNCTION_ACLS_URI} ${REST_CONFIG}/ietf-access-control-list:access-lists/
-${SERVICE_CLASSIFIERS_URI} ${REST_CONFIG}/service-function-classifier:service-function-classifiers/
-${SERVICE_FORWARDERS_URI} ${REST_CONFIG}/service-function-forwarder:service-function-forwarders/
-${SERVICE_FORWARDER_URI} ${REST_CONFIG}/service-function-forwarder:service-function-forwarders/service-function-forwarder/
-${SERVICE_NODES_URI} ${REST_CONFIG}/service-node:service-nodes/
-${SERVICE_CHAINS_URI} ${REST_CONFIG}/service-function-chain:service-function-chains/
-${SERVICE_FUNCTION_PATHS_URI} ${REST_CONFIG}/service-function-path:service-function-paths/
-${SERVICE_FUNCTION_PATH_URI} ${SERVICE_FUNCTION_PATHS_URI}service-function-path/
-${SERVICE_FUNCTION_PATHS_STATE_URI} ${REST_OPER}/service-function-path:service-function-paths-state/
-${SERVICE_FUNCTION_PATH_STATE_URI} ${SERVICE_FUNCTION_PATHS_STATE_URI}service-function-path-state/
-${SERVICE_SCHED_TYPES_URI} ${REST_CONFIG}/service-function-scheduler-type:service-function-scheduler-types/
-${SERVICE_SCHED_TYPE_URI_BASE} ${SERVICE_SCHED_TYPES_URI}service-function-scheduler-type/service-function-scheduler-type:
+${OPERATIONAL_RSPS_URI} ${REST_OPER}/rendered-service-path:rendered-service-paths
+${OPERATIONAL_RSP_URI} ${REST_OPER}/rendered-service-path:rendered-service-paths/rendered-service-path
+${OVSDB_TOPOLOGY_URI} ${REST_OPER}/network-topology:network-topology/topology/ovsdb:1
+${RENDERED_SERVICE_PATHS_URI} ${REST_CONFIG}/rendered-service-path:rendered-service-paths
+${SERVICE_CHAINS_URI} ${REST_CONFIG}/service-function-chain:service-function-chains
+${SERVICE_CHAIN_URI} ${SERVICE_CHAINS_URI}/service-function-chain
+${SERVICE_CLASSIFIERS_URI} ${REST_CONFIG}/service-function-classifier:service-function-classifiers
+${SERVICE_FORWARDERS_URI} ${REST_CONFIG}/service-function-forwarder:service-function-forwarders
+${SERVICE_FORWARDER_URI} ${SERVICE_FORWARDERS_URI}/service-function-forwarder
+${SERVICE_FUNCTIONS_URI} ${REST_CONFIG}/service-function:service-functions
+${SERVICE_FUNCTION_URI} ${SERVICE_FUNCTIONS_URI}/service-function
+${SERVICE_FUNCTION_ACLS_URI} ${REST_CONFIG}/ietf-access-control-list:access-lists
+${SERVICE_FUNCTION_PATHS_STATE_URI} ${REST_OPER}/service-function-path:service-function-paths-state
+${SERVICE_FUNCTION_PATH_STATE_URI} ${SERVICE_FUNCTION_PATHS_STATE_URI}/service-function-path-state
+${SERVICE_FUNCTION_PATHS_URI} ${REST_CONFIG}/service-function-path:service-function-paths
+${SERVICE_FUNCTION_PATH_URI} ${SERVICE_FUNCTION_PATHS_URI}/service-function-path
+${SERVICE_FUNCTION_TYPES_URI} ${REST_CONFIG}/service-function-type:service-function-types
+${SERVICE_METADATA_URI} ${REST_CONFIG}/service-function-path-metadata:service-function-metadata
+${SERVICE_NODES_URI} ${REST_CONFIG}/service-node:service-nodes
+${SERVICE_NODE_URI} ${SERVICE_NODES_URI}/service-node
+${SERVICE_SCHED_TYPES_URI} ${REST_CONFIG}/service-function-scheduler-type:service-function-scheduler-types
+${SERVICE_SCHED_TYPE_URI_BASE} ${SERVICE_SCHED_TYPES_URI}/service-function-scheduler-type/service-function-scheduler-type:
${SERVICE_RANDOM_SCHED_TYPE_URI} ${SERVICE_SCHED_TYPE_URI_BASE}random
${SERVICE_LOADBALANCE_SCHED_TYPE_URI} ${SERVICE_SCHED_TYPE_URI_BASE}load-balance
${SERVICE_ROUNDROBIN_SCHED_TYPE_URI} ${SERVICE_SCHED_TYPE_URI_BASE}round-robin
${SERVICE_SHORTESTPATH_SCHED_TYPE_URI} ${SERVICE_SCHED_TYPE_URI_BASE}shortest-path
-${SERVICE_METADATA_URI} ${REST_CONFIG}/service-function-path-metadata:service-function-metadata/
-${OPERATIONAL_RSPS_URI} ${REST_OPER}/rendered-service-path:rendered-service-paths/
-${OPERATIONAL_RSP_URI} ${OPERATIONAL_RSPS_URI}rendered-service-path/
-${OVSDB_TOPOLOGY_URI} ${REST_OPER}/network-topology:network-topology/topology/ovsdb:1