*** Settings ***
-Documentation Test suite for legato topology of 1 switch
-Suite Setup Setup Test Environment
-Suite Teardown Delete All Sessions
-Library RequestsLibrary
-Library SSHLibrary
-Library Collections
-Library OperatingSystem
-Resource ../../../libraries/Utils.robot
-Resource ../../../libraries/MininetKeywords.robot
-Resource ../../../libraries/TemplatedRequests.robot
-Resource ../../../variables/Variables.robot
+Documentation Test suite for legato topology of 1 switch
+
+Library RequestsLibrary
+Library SSHLibrary
+Library Collections
+Library OperatingSystem
+Resource ../../../libraries/Utils.robot
+Resource ../../../libraries/MininetKeywords.robot
+Resource ../../../libraries/TemplatedRequests.robot
+Resource ../../../variables/Variables.robot
+
+Suite Setup Setup Test Environment
+Suite Teardown Delete All Sessions
+
*** Variables ***
-${UniMgr_variables_DIR} ${CURDIR}/../../../variables/unimgr
-${options} --topo single,2
+${UniMgr_variables_DIR} ${CURDIR}/../../../variables/unimgr
+${options} --topo single,2
+
*** Test Cases ***
Check no connectivity before creating service
Create epl service
[Documentation] Create point to point service between the eth ports
${interface} Create List s1-eth1 s1-eth2
- Wait Until Keyword Succeeds 12s 2s Check For Elements At URI ${CONFIG_API}/mef-interfaces:mef-interfaces/ ${interface}
- ${body}= OperatingSystem.Get File ${UniMgr_variables_DIR}/add_epl.json
- ${resp} RequestsLibrary.Put Request session ${CONFIG_API}/mef-services:mef-services/ headers=${HEADERS_YANG_JSON} data=${body}
+ Wait Until Keyword Succeeds
+ ... 12s
+ ... 2s
+ ... Check For Elements At URI
+ ... ${CONFIG_API}/mef-interfaces:mef-interfaces/
+ ... ${interface}
+ ${body} OperatingSystem.Get File ${UniMgr_variables_DIR}/add_epl.json
+ ${resp} RequestsLibrary.Put Request
+ ... session
+ ... ${CONFIG_API}/mef-services:mef-services/
+ ... headers=${HEADERS_YANG_JSON}
+ ... data=${body}
Log ${resp.content}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
${elements} Create List eth1 eth2
- Wait Until Keyword Succeeds 56s 8s Check For Elements At URI ${CONFIG_API}/elan:elan-interfaces/ ${elements}
+ Wait Until Keyword Succeeds
+ ... 56s
+ ... 8s
+ ... Check For Elements At URI
+ ... ${CONFIG_API}/elan:elan-interfaces/
+ ... ${elements}
Check ping between h1-h2 after service creation
[Documentation] Verify ping between the hosts h1 - h2
Delete epl service
[Documentation] Delete the evc point to point & verify no ping
- ${resp} RequestsLibrary.Delete Request session ${CONFIG_API}/mef-services:mef-services/ headers=${HEADERS_YANG_JSON}
+ ${resp} RequestsLibrary.Delete Request
+ ... session
+ ... ${CONFIG_API}/mef-services:mef-services/
+ ... headers=${HEADERS_YANG_JSON}
Log ${resp.content}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
[Documentation] Verify no ping after deleteing the eplan service
Wait Until Keyword Succeeds 8s 2s MininetKeywords.Verify Mininet No Ping h1 h2
+
*** Keywords ***
Setup Test Environment
[Documentation] Establish the Opendayligh session and prepair 1 Mininet VMs
*** Settings ***
-Documentation Test suite for legato topology of 1 switch
-Suite Setup Setup Test Environment
-Suite Teardown Delete All Sessions
-Library RequestsLibrary
-Library SSHLibrary
-Library Collections
-Library OperatingSystem
-Resource ../../../libraries/Utils.robot
-Resource ../../../libraries/MininetKeywords.robot
-Resource ../../../libraries/TemplatedRequests.robot
-Resource ../../../variables/Variables.robot
+Documentation Test suite for legato topology of 1 switch
+
+Library RequestsLibrary
+Library SSHLibrary
+Library Collections
+Library OperatingSystem
+Resource ../../../libraries/Utils.robot
+Resource ../../../libraries/MininetKeywords.robot
+Resource ../../../libraries/TemplatedRequests.robot
+Resource ../../../variables/Variables.robot
+
+Suite Setup Setup Test Environment
+Suite Teardown Delete All Sessions
+
*** Variables ***
-${UniMgr_variables_DIR} ${CURDIR}/../../../variables/unimgr
-${options} --topo single,5
+${UniMgr_variables_DIR} ${CURDIR}/../../../variables/unimgr
+${options} --topo single,5
+
*** Test Cases ***
Check no connectivity before creating service
Create epl service
[Documentation] Create multi point to multi point service between the eth ports
${interface} Create List s1-eth1 s1-eth2
- Wait Until Keyword Succeeds 10s 2s Check For Elements At URI ${CONFIG_API}/mef-interfaces:mef-interfaces/ ${interface}
- ${body}= OperatingSystem.Get File ${UniMgr_variables_DIR}/add_eplan.json
- ${resp} RequestsLibrary.Put Request session ${CONFIG_API}/mef-services:mef-services/ headers=${HEADERS_YANG_JSON} data=${body}
+ Wait Until Keyword Succeeds
+ ... 10s
+ ... 2s
+ ... Check For Elements At URI
+ ... ${CONFIG_API}/mef-interfaces:mef-interfaces/
+ ... ${interface}
+ ${body} OperatingSystem.Get File ${UniMgr_variables_DIR}/add_eplan.json
+ ${resp} RequestsLibrary.Put Request
+ ... session
+ ... ${CONFIG_API}/mef-services:mef-services/
+ ... headers=${HEADERS_YANG_JSON}
+ ... data=${body}
Log ${resp.content}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
${elements} Create List eth3 eth4 eth5
- Wait Until Keyword Succeeds 56s 8s Check For Elements At URI ${CONFIG_API}/elan:elan-interfaces/ ${elements}
+ Wait Until Keyword Succeeds
+ ... 56s
+ ... 8s
+ ... Check For Elements At URI
+ ... ${CONFIG_API}/elan:elan-interfaces/
+ ... ${elements}
Check ping between h3-h4 after service creation
[Documentation] Verify ping between the hosts h3 - h4
Delete epl service
[Documentation] Delete the evc multi point to multi point & verify no ping
- ${resp} RequestsLibrary.Delete Request session ${CONFIG_API}/mef-services:mef-services/ headers=${HEADERS_YANG_JSON}
+ ${resp} RequestsLibrary.Delete Request
+ ... session
+ ... ${CONFIG_API}/mef-services:mef-services/
+ ... headers=${HEADERS_YANG_JSON}
Log ${resp.content}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
[Documentation] Verify no ping after deleteing the eplan service
Wait Until Keyword Succeeds 8s 2s MininetKeywords.Verify Mininet No Ping h3 h4
+
*** Keywords ***
Setup Test Environment
[Documentation] Establish the Opendayligh session and prepair 1 Mininet VMs
*** Settings ***
-Documentation Test suite for all Uni Manager operations
-Suite Setup Setup Unimgr Test Environment
-Suite Teardown Delete All Sessions
-Library OperatingSystem
-Library String
-Library Collections
-Library SSHLibrary
-Library RequestsLibrary
-Library ../../../libraries/Common.py
-Variables ../../../variables/Variables.py
-Resource ../../../libraries/Utils.robot
-Resource ../../../libraries/UnimgrKeywords.robot
-Resource ../../../libraries/TemplatedRequests.robot
+Documentation Test suite for all Uni Manager operations
+
+Library OperatingSystem
+Library String
+Library Collections
+Library SSHLibrary
+Library RequestsLibrary
+Library ../../../libraries/Common.py
+Variables ../../../variables/Variables.py
+Resource ../../../libraries/Utils.robot
+Resource ../../../libraries/UnimgrKeywords.robot
+Resource ../../../libraries/TemplatedRequests.robot
+
+Suite Setup Setup Unimgr Test Environment
+Suite Teardown Delete All Sessions
+
*** Variables ***
-${DEFAULT_LINUX_PROMPT} ${EMPTY}
-${Mininet1_IP} ${TOOLS_SYSTEM_IP}
-${Mininet2_IP} ${TOOLS_SYSTEM_2_IP}
-${UNI1_MAC} 68:5b:35:bb:f8:3e
-${UNI2_MAC} 52:7b:25:cb:a7:3c
-${Evc_topo_API} topology/unimgr:evc/link/evc:%2F%2F1
-${Uni_topo_API} topology/unimgr:uni/node/uni:%2F%2F
-${UniMgr_variables_DIR} ${CURDIR}/../../../variables/unimgr
+${DEFAULT_LINUX_PROMPT} ${EMPTY}
+${Mininet1_IP} ${TOOLS_SYSTEM_IP}
+${Mininet2_IP} ${TOOLS_SYSTEM_2_IP}
+${UNI1_MAC} 68:5b:35:bb:f8:3e
+${UNI2_MAC} 52:7b:25:cb:a7:3c
+${Evc_topo_API} topology/unimgr:evc/link/evc:%2F%2F1
+${Uni_topo_API} topology/unimgr:uni/node/uni:%2F%2F
+${UniMgr_variables_DIR} ${CURDIR}/../../../variables/unimgr
+
*** Test Cases ***
Create source and destination UNIs at the OVS instances using Restconf API
[Documentation] Create source and destination UNIs
- [Tags] UniMgr UNIs Create
+ [Tags] unimgr unis create
${uniSource} Get Add Uni Json ${Mininet1_IP} ${UNI1_MAC}
${uniDest} Get Add Uni Json ${Mininet2_IP} ${UNI2_MAC}
- ${resp} RequestsLibrary.Put Request session ${CONFIG_TOPO_API}/${Uni_topo_API}${Mininet1_IP} data=${uniSource}
+ ${resp} RequestsLibrary.Put Request
+ ... session
+ ... ${CONFIG_TOPO_API}/${Uni_topo_API}${Mininet1_IP}
+ ... data=${uniSource}
Log ${resp.content}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
- ${resp} RequestsLibrary.Put Request session ${CONFIG_TOPO_API}/${Uni_topo_API}${Mininet2_IP} data=${uniDest}
+ ${resp} RequestsLibrary.Put Request
+ ... session
+ ... ${CONFIG_TOPO_API}/${Uni_topo_API}${Mininet2_IP}
+ ... data=${uniDest}
Log ${resp.content}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
${elements} Create List ${Mininet1_IP} ${Mininet2_IP}
- Wait Until Keyword Succeeds 16s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/unimgr:uni/ ${elements}
+ Wait Until Keyword Succeeds
+ ... 16s
+ ... 2s
+ ... Check For Elements At URI
+ ... ${OPERATIONAL_TOPO_API}/topology/unimgr:uni/
+ ... ${elements}
Update UNI Speed
[Documentation] Update the Unis source and destenation speed
- [Tags] UniMgr UNIs Speed
+ [Tags] unimgr unis speed
${speedJson} OperatingSystem.Get File ${UniMgr_variables_DIR}/uni_speed.json
- ${resp} RequestsLibrary.Put Request session ${CONFIG_TOPO_API}/${Uni_topo_API}${Mininet1_IP}/cl-unimgr-mef:speed data=${speedJson}
+ ${resp} RequestsLibrary.Put Request
+ ... session
+ ... ${CONFIG_TOPO_API}/${Uni_topo_API}${Mininet1_IP}/cl-unimgr-mef:speed
+ ... data=${speedJson}
Log ${resp.content}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
- ${resp} RequestsLibrary.Put Request session ${CONFIG_TOPO_API}/${Uni_topo_API}${Mininet2_IP}/cl-unimgr-mef:speed data=${speedJson}
+ ${resp} RequestsLibrary.Put Request
+ ... session
+ ... ${CONFIG_TOPO_API}/${Uni_topo_API}${Mininet2_IP}/cl-unimgr-mef:speed
+ ... data=${speedJson}
Log ${resp.content}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
${elements} Create List speed-10G
- Wait Until Keyword Succeeds 16s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/unimgr:uni/ ${elements}
+ Wait Until Keyword Succeeds
+ ... 16s
+ ... 2s
+ ... Check For Elements At URI
+ ... ${OPERATIONAL_TOPO_API}/topology/unimgr:uni/
+ ... ${elements}
Create EVC tunnel between the Unis
[Documentation] Create EVC between Unis
- [Tags] UniMgr EVC Create
+ [Tags] unimgr evc create
${evc} Get Add Evc Json ${Mininet1_IP} ${Mininet2_IP}
${resp} RequestsLibrary.Put Request session ${CONFIG_TOPO_API}/${Evc_topo_API} data=${evc}
Log ${resp.content}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
${elements} Create List evc://1
- Wait Until Keyword Succeeds 16s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/unimgr:evc/ ${elements}
+ Wait Until Keyword Succeeds
+ ... 16s
+ ... 2s
+ ... Check For Elements At URI
+ ... ${OPERATIONAL_TOPO_API}/topology/unimgr:evc/
+ ... ${elements}
Update EVC Ingress and Egress Speed
[Documentation] Update the EVC connection Ingress and Egress Speed
- [Tags] UniMgr EVC Speed
+ [Tags] unimgr evc speed
${ingressJson} OperatingSystem.Get File ${UniMgr_variables_DIR}/evc_ingress_speed.json
${egressJson} OperatingSystem.Get File ${UniMgr_variables_DIR}/evc_egress_speed.json
- ${resp} RequestsLibrary.Put Request session ${CONFIG_TOPO_API}/${Evc_topo_API}/cl-unimgr-mef:ingress-bw data=${ingressJson}
+ ${resp} RequestsLibrary.Put Request
+ ... session
+ ... ${CONFIG_TOPO_API}/${Evc_topo_API}/cl-unimgr-mef:ingress-bw
+ ... data=${ingressJson}
Log ${resp.content}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
- ${resp} RequestsLibrary.Put Request session ${CONFIG_TOPO_API}/${Evc_topo_API}/cl-unimgr-mef:egress-bw data=${egressJson}
+ ${resp} RequestsLibrary.Put Request
+ ... session
+ ... ${CONFIG_TOPO_API}/${Evc_topo_API}/cl-unimgr-mef:egress-bw
+ ... data=${egressJson}
Log ${resp.content}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
${elements} Create List speed-1G
- Wait Until Keyword Succeeds 16s 2s Check For Elements At URI ${OPERATIONAL_TOPO_API}/topology/unimgr:evc/ ${elements}
+ Wait Until Keyword Succeeds
+ ... 16s
+ ... 2s
+ ... Check For Elements At URI
+ ... ${OPERATIONAL_TOPO_API}/topology/unimgr:evc/
+ ... ${elements}
Delete EVC tunnel between the Unis
[Documentation] Delete EVC
- [Tags] UniMgr EVC Delete
+ [Tags] unimgr evc delete
${resp} RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/${Evc_topo_API}
Log ${resp.content}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
${elements} Create List evc://1
- Wait Until Keyword Succeeds 16s 2s Check For Elements Not At URI ${CONFIG_TOPO_API}/topology/unimgr:evc/ ${elements}
+ Wait Until Keyword Succeeds
+ ... 16s
+ ... 2s
+ ... Check For Elements Not At URI
+ ... ${CONFIG_TOPO_API}/topology/unimgr:evc/
+ ... ${elements}
Delete UNIs source and destination
[Documentation] Delete both UNIs source and destination
- [Tags] UniMgr UNI Delete
+ [Tags] unimgr uni delete
${resp} RequestsLibrary.Delete Request session ${CONFIG_TOPO_API}/${Uni_topo_API}${Mininet1_IP}
Log ${resp.content}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
Log ${resp.content}
Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
${elements} Create List ${Mininet1_IP} ${Mininet2_IP}
- Wait Until Keyword Succeeds 16s 2s Check For Elements Not At URI ${OPERATIONAL_TOPO_API}/topology/unimgr:uni/ ${elements}
+ Wait Until Keyword Succeeds
+ ... 16s
+ ... 2s
+ ... Check For Elements Not At URI
+ ... ${OPERATIONAL_TOPO_API}/topology/unimgr:uni/
+ ... ${elements}
*** Settings ***
-Documentation Test suite for all Uni Manager operations
-Suite Setup Setup Unimgr Test Environment
-Suite Teardown Delete All Sessions
-Library OperatingSystem
-Library String
-Library Collections
-Library SSHLibrary
-Library RequestsLibrary
-Library ../../../libraries/Common.py
-Variables ../../../variables/Variables.py
-Resource ../../../libraries/Utils.robot
-Resource ../../../libraries/KarafKeywords.robot
-Resource ../../../libraries/UnimgrKeywords.robot
+Documentation Test suite for all Uni Manager operations
+
+Library OperatingSystem
+Library String
+Library Collections
+Library SSHLibrary
+Library RequestsLibrary
+Library ../../../libraries/Common.py
+Variables ../../../variables/Variables.py
+Resource ../../../libraries/Utils.robot
+Resource ../../../libraries/KarafKeywords.robot
+Resource ../../../libraries/UnimgrKeywords.robot
+
+Suite Setup Setup Unimgr Test Environment
+Suite Teardown Delete All Sessions
+
*** Variables ***
-${DEFAULT_LINUX_PROMPT} ${EMPTY}
-${Mininet1_IP} ${TOOLS_SYSTEM_IP}
-${Mininet2_IP} ${TOOLS_SYSTEM_2_IP}
-${UNI1_MAC} 68:5b:35:bb:f8:3e
-${UNI2_MAC} 52:7b:25:cb:a7:3c
+${DEFAULT_LINUX_PROMPT} ${EMPTY}
+${Mininet1_IP} ${TOOLS_SYSTEM_IP}
+${Mininet2_IP} ${TOOLS_SYSTEM_2_IP}
+${UNI1_MAC} 68:5b:35:bb:f8:3e
+${UNI2_MAC} 52:7b:25:cb:a7:3c
+
*** Test Cases ***
Create source and destination UNIs at the OVS instances using Restconf API
[Documentation] Create source and destination UNIs
- [Tags] UniMgr UNIs Create
+ [Tags] unimgr unis create
${elements} Create List ${Mininet1_IP}
- Wait Until Keyword Succeeds 16s 2s Check For Elements On Karaf Command Output Message uni-add -ip ${Mininet1_IP} -ma ${UNI1_MAC} ${elements}
+ Wait Until Keyword Succeeds
+ ... 16s
+ ... 2s
+ ... Check For Elements On Karaf Command Output Message
+ ... uni-add -ip ${Mininet1_IP} -ma ${UNI1_MAC}
+ ... ${elements}
${elements} Create List ${Mininet2_IP}
- Wait Until Keyword Succeeds 16s 2s Check For Elements On Karaf Command Output Message uni-add -ip ${Mininet2_IP} -ma ${UNI2_MAC} ${elements}
+ Wait Until Keyword Succeeds
+ ... 16s
+ ... 2s
+ ... Check For Elements On Karaf Command Output Message
+ ... uni-add -ip ${Mininet2_IP} -ma ${UNI2_MAC}
+ ... ${elements}
List All UNIs
[Documentation] List all existing UNIs in the config data store
- [Tags] UniMgr
+ [Tags] unimgr
${elements} Create List ${Mininet1_IP} ${Mininet2_IP}
- Wait Until Keyword Succeeds 16s 2s Check For Elements On Karaf Command Output Message uni-list -c ${elements}
+ Wait Until Keyword Succeeds
+ ... 16s
+ ... 2s
+ ... Check For Elements On Karaf Command Output Message
+ ... uni-list -c
+ ... ${elements}
Show UNI
[Documentation] Show the information of the created Unis from the operational data store
- [Tags] UniMgr
+ [Tags] unimgr
${elements} Create List ${Mininet1_IP}
- Wait Until Keyword Succeeds 16s 2s Check For Elements On Karaf Command Output Message uni-show ${Mininet1_IP} ${elements}
+ Wait Until Keyword Succeeds
+ ... 16s
+ ... 2s
+ ... Check For Elements On Karaf Command Output Message
+ ... uni-show ${Mininet1_IP}
+ ... ${elements}
Update the Unis Speed
[Documentation] Update Created Unis speed
- [Tags] UniMgr
+ [Tags] unimgr
${elements} Create List ${Mininet1_IP} updated
- Check For Elements On Karaf Command Output Message uni-update -ip ${Mininet1_IP} -ma ${UNI1_MAC} -s 10G ${elements}
+ Check For Elements On Karaf Command Output Message
+ ... uni-update -ip ${Mininet1_IP} -ma ${UNI1_MAC} -s 10G
+ ... ${elements}
${element} Create List Speed10G
- Wait Until Keyword Succeeds 16s 2s Check For Elements On Karaf Command Output Message uni-show ${Mininet1_IP} ${element}
+ Wait Until Keyword Succeeds
+ ... 16s
+ ... 2s
+ ... Check For Elements On Karaf Command Output Message
+ ... uni-show ${Mininet1_IP}
+ ... ${element}
Delete UNIs source and destination
[Documentation] Delete both UNIs source and destination.
- [Tags] UniMgr UNI Delete
+ [Tags] unimgr uni delete
${elements} Create List Uni successfully removed
Check For Elements On Karaf Command Output Message uni-remove ${Mininet1_IP} ${elements}
Check For Elements On Karaf Command Output Message uni-remove ${Mininet2_IP} ${elements}
${elements} Create List No uni found
- Wait Until Keyword Succeeds 16s 2s Check For Elements On Karaf Command Output Message uni-show ${Mininet1_IP} ${elements}
- Wait Until Keyword Succeeds 16s 2s Check For Elements On Karaf Command Output Message uni-show ${Mininet2_IP} ${elements}
+ Wait Until Keyword Succeeds
+ ... 16s
+ ... 2s
+ ... Check For Elements On Karaf Command Output Message
+ ... uni-show ${Mininet1_IP}
+ ... ${elements}
+ Wait Until Keyword Succeeds
+ ... 16s
+ ... 2s
+ ... Check For Elements On Karaf Command Output Message
+ ... uni-show ${Mininet2_IP}
+ ... ${elements}
*** Settings ***
-Suite Setup Download Tools
-Resource ../../libraries/UscUtils.robot
+Resource ../../libraries/UscUtils.robot
+
+Suite Setup Download Tools
*** Settings ***
-Documentation Test suite for quicking testing if the environme setup is correct
-Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
-Suite Teardown Delete All Sessions
-Default Tags TCP_BASIC
-Library Collections
-Library OperatingSystem
-Library RequestsLibrary
-Library json
-Variables ../../../variables/Variables.py
-Resource ../../../libraries/UscUtils.robot
+Documentation Test suite for quicking testing if the environme setup is correct
+
+Library Collections
+Library OperatingSystem
+Library RequestsLibrary
+Library json
+Variables ../../../variables/Variables.py
+Resource ../../../libraries/UscUtils.robot
+
+Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
+Suite Teardown Delete All Sessions
+
+Default Tags tcp_basic
+
*** Test Cases ***
View Channel
*** Settings ***
-Documentation Test suite for an USC TLS channel
-Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
-Suite Teardown Delete All Sessions
-Library Collections
-Library OperatingSystem
-Library SSHLibrary
-Library RequestsLibrary
-Library json
-Library ../../../../libraries/Common.py
-Variables ../../../../variables/Variables.py
-Resource ../../../../libraries/UscUtils.robot
+Documentation Test suite for an USC TLS channel
+
+Library Collections
+Library OperatingSystem
+Library SSHLibrary
+Library RequestsLibrary
+Library json
+Library ../../../../libraries/Common.py
+Variables ../../../../variables/Variables.py
+Resource ../../../../libraries/UscUtils.robot
+
+Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
+Suite Teardown Delete All Sessions
+
*** Test Cases ***
Add Channel
[Documentation] Add an USC TLS channel
- ${content} Create Dictionary hostname=${TOOLS_SYSTEM_IP} tcp=true port=${ECHO_SERVER_PORT} remote=false
+ ${content} Create Dictionary
+ ... hostname=${TOOLS_SYSTEM_IP}
+ ... tcp=true
+ ... port=${ECHO_SERVER_PORT}
+ ... remote=false
${channel} Create Dictionary channel=${content}
${input} Create Dictionary input=${channel}
${data} json.dumps ${input}
Send Messages
[Documentation] Send test messages multiple times to multiple sessions
- ${content} Create Dictionary hostname=${TOOLS_SYSTEM_IP} port=${ECHO_SERVER_PORT} tcp=true content=${TEST_MESSAGE}
+ ${content} Create Dictionary
+ ... hostname=${TOOLS_SYSTEM_IP}
+ ... port=${ECHO_SERVER_PORT}
+ ... tcp=true
+ ... content=${TEST_MESSAGE}
${channel} Create Dictionary channel=${content}
${input} Create Dictionary input=${channel}
FOR ${index} IN RANGE 0 ${NUM_OF_MESSAGES}
*** Settings ***
-Documentation Test suite for an USC TLS channel
-Suite Setup Start TCP
-Suite Teardown Stop Agent_Echo
-Resource ../../../../libraries/UscUtils.robot
+Documentation Test suite for an USC TLS channel
-*** Variables ***
+Resource ../../../../libraries/UscUtils.robot
-*** Keywords ***
+Suite Setup Start TCP
+Suite Teardown Stop Agent_Echo
*** Settings ***
-Documentation Test suite for multiple sessions in an USC TLS channel
-Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
-Suite Teardown Delete All Sessions
-Library Collections
-Library OperatingSystem
-Library SSHLibrary
-Library RequestsLibrary
-Library json
-Library ../../../../libraries/Common.py
-Variables ../../../../variables/Variables.py
-Resource ../../../../libraries/UscUtils.robot
+Documentation Test suite for multiple sessions in an USC TLS channel
+
+Library Collections
+Library OperatingSystem
+Library SSHLibrary
+Library RequestsLibrary
+Library json
+Library ../../../../libraries/Common.py
+Variables ../../../../variables/Variables.py
+Resource ../../../../libraries/UscUtils.robot
+
+Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
+Suite Teardown Delete All Sessions
-*** Variables ***
*** Test Cases ***
Add Channel
[Documentation] Add multiple USC TLS channels
FOR ${port_index} IN @{LIST_ECHO_SERVER_PORT}
- ${content} Create Dictionary hostname=${TOOLS_SYSTEM_IP} port=${port_index} tcp=true remote=false
+ ${content} Create Dictionary
+ ... hostname=${TOOLS_SYSTEM_IP}
+ ... port=${port_index}
+ ... tcp=true
+ ... remote=false
${channel} Create Dictionary channel=${content}
${input} Create Dictionary input=${channel}
${data} json.dumps ${input}
Send Messages
[Documentation] Send test messages multiple times
FOR ${port_index} IN @{LIST_ECHO_SERVER_PORT}
- ${content} Create Dictionary hostname=${TOOLS_SYSTEM_IP} port=${port_index} tcp=true content=${TEST_MESSAGE}
+ ${content} Create Dictionary
+ ... hostname=${TOOLS_SYSTEM_IP}
+ ... port=${port_index}
+ ... tcp=true
+ ... content=${TEST_MESSAGE}
${channel} Create Dictionary channel=${content}
${input} Create Dictionary input=${channel}
Send Now ${input}
Should Be Equal As Strings ${resp.status_code} 200
Should Contain ${resp.content} "topology"
+
*** Keywords ***
Send Now
[Arguments] ${body}
*** Settings ***
-Documentation Test suite for multiple sessions in an USC TLS channel
-Suite Setup Start Multiple_Sessions_TCP
-Suite Teardown Stop One_Agent_Multiple_Echo
-Force Tags Multiple Sessions TCP
-Resource ../../../../libraries/UscUtils.robot
+Documentation Test suite for multiple sessions in an USC TLS channel
-*** Variables ***
+Resource ../../../../libraries/UscUtils.robot
-*** Keywords ***
+Suite Setup Start Multiple_Sessions_TCP
+Suite Teardown Stop One_Agent_Multiple_Echo
+
+Force Tags multiple sessions tcp
*** Settings ***
-Documentation Test suite for callhome TLS channel
-Suite Setup Start CALLHOME_TCP
-Suite Teardown Stop Agent_Echo
-Resource ../../../../libraries/UscUtils.robot
+Documentation Test suite for callhome TLS channel
-*** Variables ***
+Resource ../../../../libraries/UscUtils.robot
-*** Keywords ***
+Suite Setup Start CALLHOME_TCP
+Suite Teardown Stop Agent_Echo
*** Settings ***
-Documentation Test suite for callhome TLS channel
-Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
-Suite Teardown Delete All Sessions
-Library Collections
-Library OperatingSystem
-Library SSHLibrary
-Library RequestsLibrary
-Library json
-Library ../../../../libraries/Common.py
-Variables ../../../../variables/Variables.py
-Resource ../../../../libraries/UscUtils.robot
+Documentation Test suite for callhome TLS channel
+
+Library Collections
+Library OperatingSystem
+Library SSHLibrary
+Library RequestsLibrary
+Library json
+Library ../../../../libraries/Common.py
+Variables ../../../../variables/Variables.py
+Resource ../../../../libraries/UscUtils.robot
+
+Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
+Suite Teardown Delete All Sessions
+
*** Test Cases ***
Add Channel
[Documentation] Add an USC TLS callhome channel
- ${content} Create Dictionary hostname=${TOOLS_SYSTEM_IP} tcp=true port=${ECHO_SERVER_PORT} remote=false
+ ${content} Create Dictionary
+ ... hostname=${TOOLS_SYSTEM_IP}
+ ... tcp=true
+ ... port=${ECHO_SERVER_PORT}
+ ... remote=false
${channel} Create Dictionary channel=${content}
${input} Create Dictionary input=${channel}
${data} json.dumps ${input}
Send Messages
[Documentation] Send test messages multiple times
- ${content} Create Dictionary hostname=${TOOLS_SYSTEM_IP} port=${ECHO_SERVER_PORT} tcp=true content=${TEST_MESSAGE}
+ ${content} Create Dictionary
+ ... hostname=${TOOLS_SYSTEM_IP}
+ ... port=${ECHO_SERVER_PORT}
+ ... tcp=true
+ ... content=${TEST_MESSAGE}
${channel} Create Dictionary channel=${content}
${input} Create Dictionary input=${channel}
FOR ${index} IN RANGE 0 ${NUM_OF_MESSAGES}
*** Settings ***
-Suite Setup Download Tools
-Force Tags TCP
-Resource ../../../libraries/UscUtils.robot
+Resource ../../../libraries/UscUtils.robot
+
+Suite Setup Download Tools
+
+Force Tags tcp
*** Settings ***
-Documentation Test suite for an USC DTLS channel
-Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
-Suite Teardown Delete All Sessions
-Test Timeout 1min
-Library Collections
-Library OperatingSystem
-Library RequestsLibrary
-Library json
-Library ../../../../libraries/Common.py
-Variables ../../../../variables/Variables.py
-Resource ../../../../libraries/UscUtils.robot
+Documentation Test suite for an USC DTLS channel
+
+Library Collections
+Library OperatingSystem
+Library RequestsLibrary
+Library json
+Library ../../../../libraries/Common.py
+Variables ../../../../variables/Variables.py
+Resource ../../../../libraries/UscUtils.robot
+
+Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
+Suite Teardown Delete All Sessions
+Test Timeout 1min
+
*** Test Cases ***
Add Channel
[Documentation] Add an USC DTLS channel
- ${content} Create Dictionary hostname=${TOOLS_SYSTEM_IP} tcp=false port=${ECHO_SERVER_PORT} remote=false
+ ${content} Create Dictionary
+ ... hostname=${TOOLS_SYSTEM_IP}
+ ... tcp=false
+ ... port=${ECHO_SERVER_PORT}
+ ... remote=false
${channel} Create Dictionary channel=${content}
${input} Create Dictionary input=${channel}
${data} json.dumps ${input}
Send Messages
[Documentation] Send test messages multiple times to multiple sessions
- ${content} Create Dictionary hostname=${TOOLS_SYSTEM_IP} port=${ECHO_SERVER_PORT} tcp=false content=${TEST_MESSAGE}
+ ${content} Create Dictionary
+ ... hostname=${TOOLS_SYSTEM_IP}
+ ... port=${ECHO_SERVER_PORT}
+ ... tcp=false
+ ... content=${TEST_MESSAGE}
${channel} Create Dictionary channel=${content}
${input} Create Dictionary input=${channel}
FOR ${index} IN RANGE 0 ${NUM_OF_MESSAGES}
*** Settings ***
-Documentation Test suite for an USC DTLS channel
-Suite Setup Start UDP
-Suite Teardown Stop Agent_Echo
-Force Tags 110_UDP
-Resource ../../../../libraries/UscUtils.robot
+Documentation Test suite for an USC DTLS channel
-*** Variables ***
+Resource ../../../../libraries/UscUtils.robot
-*** Keywords ***
+Suite Setup Start UDP
+Suite Teardown Stop Agent_Echo
+
+Force Tags 110_udp
*** Settings ***
-Documentation Test suite for multiple sessions in an USC TLS channel
-Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
-Suite Teardown Delete All Sessions
-Test Timeout 1min
-Library Collections
-Library OperatingSystem
-Library SSHLibrary
-Library RequestsLibrary
-Library json
-Library ../../../../libraries/Common.py
-Variables ../../../../variables/Variables.py
-Resource ../../../../libraries/UscUtils.robot
+Documentation Test suite for multiple sessions in an USC TLS channel
+
+Library Collections
+Library OperatingSystem
+Library SSHLibrary
+Library RequestsLibrary
+Library json
+Library ../../../../libraries/Common.py
+Variables ../../../../variables/Variables.py
+Resource ../../../../libraries/UscUtils.robot
+
+Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
+Suite Teardown Delete All Sessions
+Test Timeout 1min
-*** Variables ***
*** Test Cases ***
Add Channel
[Documentation] Add multiple USC DTLS channels
FOR ${port_index} IN @{LIST_ECHO_SERVER_PORT}
- ${content} Create Dictionary hostname=${TOOLS_SYSTEM_IP} port=${port_index} tcp=false remote=false
+ ${content} Create Dictionary
+ ... hostname=${TOOLS_SYSTEM_IP}
+ ... port=${port_index}
+ ... tcp=false
+ ... remote=false
${channel} Create Dictionary channel=${content}
${input} Create Dictionary input=${channel}
${data} json.dumps ${input}
Send Messages
[Documentation] Send test messages multiple times
FOR ${port_index} IN @{LIST_ECHO_SERVER_PORT}
- ${content} Create Dictionary hostname=${TOOLS_SYSTEM_IP} port=${port_index} tcp=false content=${TEST_MESSAGE}
+ ${content} Create Dictionary
+ ... hostname=${TOOLS_SYSTEM_IP}
+ ... port=${port_index}
+ ... tcp=false
+ ... content=${TEST_MESSAGE}
${channel} Create Dictionary channel=${content}
${input} Create Dictionary input=${channel}
Send Now ${input}
Should Be Equal As Strings ${resp.status_code} 200
Should Contain ${resp.content} "topology"
+
*** Keywords ***
Send Now
[Arguments] ${body}
*** Settings ***
-Documentation Test suite for multiple sessions in an USC DTLS channel
-Suite Setup Start Multiple_Sessions_UDP
-Suite Teardown Stop One_Agent_Multiple_Echo
-Force Tags Multiple_Sessions_UDP
-Resource ../../../../libraries/UscUtils.robot
+Documentation Test suite for multiple sessions in an USC DTLS channel
-*** Variables ***
+Resource ../../../../libraries/UscUtils.robot
-*** Keywords ***
+Suite Setup Start Multiple_Sessions_UDP
+Suite Teardown Stop One_Agent_Multiple_Echo
+
+Force Tags multiple_sessions_udp
*** Settings ***
-Documentation Test suite for callhome DTLS channel
-Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
-Suite Teardown Delete All Sessions
-Test Timeout 1 minute
-Library Collections
-Library OperatingSystem
-Library SSHLibrary
-Library RequestsLibrary
-Library json
-Library ../../../../libraries/Common.py
-Variables ../../../../variables/Variables.py
-Resource ../../../../libraries/UscUtils.robot
+Documentation Test suite for callhome DTLS channel
+
+Library Collections
+Library OperatingSystem
+Library SSHLibrary
+Library RequestsLibrary
+Library json
+Library ../../../../libraries/Common.py
+Variables ../../../../variables/Variables.py
+Resource ../../../../libraries/UscUtils.robot
+
+Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
+Suite Teardown Delete All Sessions
+Test Timeout 1 minute
+
*** Test Cases ***
Add Channel
[Documentation] Add an USC TLS callhome channel
- ${content} Create Dictionary hostname=${TOOLS_SYSTEM_IP} tcp=false port=${ECHO_SERVER_PORT} remote=false
+ ${content} Create Dictionary
+ ... hostname=${TOOLS_SYSTEM_IP}
+ ... tcp=false
+ ... port=${ECHO_SERVER_PORT}
+ ... remote=false
${channel} Create Dictionary channel=${content}
${input} Create Dictionary input=${channel}
${data} json.dumps ${input}
Send Messages
[Documentation] Send test messages multiple times
- ${content} Create Dictionary hostname=${TOOLS_SYSTEM_IP} port=${ECHO_SERVER_PORT} tcp=false content=${TEST_MESSAGE}
+ ${content} Create Dictionary
+ ... hostname=${TOOLS_SYSTEM_IP}
+ ... port=${ECHO_SERVER_PORT}
+ ... tcp=false
+ ... content=${TEST_MESSAGE}
${channel} Create Dictionary channel=${content}
${input} Create Dictionary input=${channel}
FOR ${index} IN RANGE 0 ${NUM_OF_MESSAGES}
*** Settings ***
-Documentation Test suite for callhome DTLS channel
-Suite Setup Start CALLHOME_UDP
-Suite Teardown Stop Agent_Echo
-Force Tags UDP_CALLHOME
-Resource ../../../../libraries/UscUtils.robot
+Documentation Test suite for callhome DTLS channel
-*** Variables ***
+Resource ../../../../libraries/UscUtils.robot
-*** Keywords ***
+Suite Setup Start CALLHOME_UDP
+Suite Teardown Stop Agent_Echo
+
+Force Tags udp_callhome
*** Settings ***
-Suite Setup Download Tools
-Force Tags UDP
-Resource ../../../libraries/UscUtils.robot
+Resource ../../../libraries/UscUtils.robot
+
+Suite Setup Download Tools
+
+Force Tags udp
*** Settings ***
-Documentation Test Suite that, verifies the features and corresponding bundles are installed.
-Resource ../../libraries/KarafKeywords.robot
+Documentation Test Suite that, verifies the features and corresponding bundles are installed.
+
+Resource ../../libraries/KarafKeywords.robot
+
*** Variables ***
-@{FEATURE_LIST} odl-vpnservice-api odl-vpnservice-impl odl-vpnservice-impl-rest odl-vpnservice-impl-ui odl-vpnservice-core
-@{BUNDLE_LIST} org.opendaylight.vpnservice.vpnmanager-impl org.opendaylight.vpnservice.interfacemgr-impl org.opendaylight.vpnservice.nexthopmgr-impl org.opendaylight.vpnservice.idmanager-impl org.opendaylight.vpnservice.fibmanager-impl org.opendaylight.vpnservice.bgpmanager-impl org.opendaylight.vpnservice.model-bgp
-@{MESSAGE_STRING_LIST} VpnserviceProvider Session Initiated InterfacemgrProvider Session Initiated NexthopmgrProvider Session Initiated IDManagerserviceProvider Session Initiated FibManagerProvider Session Initiated BgpManager Session Initiated
+@{FEATURE_LIST}
+... odl-vpnservice-api
+... odl-vpnservice-impl
+... odl-vpnservice-impl-rest
+... odl-vpnservice-impl-ui
+... odl-vpnservice-core
+@{BUNDLE_LIST}
+... org.opendaylight.vpnservice.vpnmanager-impl
+... org.opendaylight.vpnservice.interfacemgr-impl
+... org.opendaylight.vpnservice.nexthopmgr-impl
+... org.opendaylight.vpnservice.idmanager-impl
+... org.opendaylight.vpnservice.fibmanager-impl
+... org.opendaylight.vpnservice.bgpmanager-impl
+... org.opendaylight.vpnservice.model-bgp
+@{MESSAGE_STRING_LIST}
+... VpnserviceProvider Session Initiated
+... InterfacemgrProvider Session Initiated
+... NexthopmgrProvider Session Initiated
+... IDManagerserviceProvider Session Initiated
+... FibManagerProvider Session Initiated
+... BgpManager Session Initiated
+
*** Test Cases ***
Verify if the VPN Service features are installed for vpnservice
[Documentation] Executes command "feature list -i | grep <feature_name>" in karaf console and checks if output \ contain \ the specific features.
- [Tags] Verify Feature
+ [Tags] verify feature
FOR ${feature} IN @{FEATURE_LIST}
Verify Feature Is Installed ${feature}
END
Verify if the VPN Service bundles are loaded
[Documentation] Executes command "bundle:list -s | grep <bundle name>" and checks in the output for the specific bundles
- [Tags] Verify VPN bundles
+ [Tags] verify vpn bundles
FOR ${bundle} IN @{BUNDLE_LIST}
Verify Bundle Is Installed ${bundle}
END
Verify if the sessions for bundles got initiated
[Documentation] Executes"log:display | grep vpnservice" command in karaf console and verifies the logs for session initiation
- [Tags] Verify Session
- Wait Until Keyword Succeeds 240 seconds 30 seconds Check Karaf Log Has Messages vpnservice @{MESSAGE_STRING_LIST}
+ [Tags] verify session
+ Wait Until Keyword Succeeds
+ ... 240 seconds
+ ... 30 seconds
+ ... Check Karaf Log Has Messages
+ ... vpnservice
+ ... @{MESSAGE_STRING_LIST}
*** Settings ***
-Documentation Test Suite for vpn instance
-Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
-Suite Teardown Delete All Sessions
-Library OperatingSystem
-Library String
-Library RequestsLibrary
-Variables ../../variables/Variables.py
-Library Collections
-Resource CompareStream.robot
+Documentation Test Suite for vpn instance
+
+Library OperatingSystem
+Library String
+Library RequestsLibrary
+Variables ../../variables/Variables.py
+Library Collections
+Resource CompareStream.robot
+
+Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
+Suite Teardown Delete All Sessions
+
*** Variables ***
-${REST_CON} /restconf/config/
-@{vpn_inst_values} testVpn1 1000:1 1000:1,2000:1 3000:1,4000:1
-@{vm_int_values} s1-eth1 l2vlan openflow:1:1
-@{vm_vpnint_values} s1-eth1 testVpn1 10.0.0.1 12:f8:57:a8:b9:a1
-${VPN_CONFIG_DIR} ${CURDIR}/../../variables/vpnservice
+${REST_CON} /restconf/config/
+@{vpn_inst_values} testVpn1 1000:1 1000:1,2000:1 3000:1,4000:1
+@{vm_int_values} s1-eth1 l2vlan openflow:1:1
+@{vm_vpnint_values} s1-eth1 testVpn1 10.0.0.1 12:f8:57:a8:b9:a1
+${VPN_CONFIG_DIR} ${CURDIR}/../../variables/vpnservice
+
*** Test Cases ***
Create VPN Instance
[Documentation] Creates VPN Instance through restconf
- [Tags] Post
+ [Tags] post
${body} OperatingSystem.Get File ${VPN_CONFIG_DIR}/vpn_instance.json
- CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Post Request session ${REST_CON}l3vpn:vpn-instances/ data=${body}
- CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Post Request session ${REST_CON}l3vpn-instances-interfaces:vpn-instances/ data=${body}
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Post Request
+ ... session
+ ... ${REST_CON}l3vpn:vpn-instances/
+ ... data=${body}
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Post Request
+ ... session
+ ... ${REST_CON}l3vpn-instances-interfaces:vpn-instances/
+ ... data=${body}
Log ${resp.content}
Should Be Equal As Strings ${resp.status_code} 204
Verify VPN instance
[Documentation] Verifies the vpn instance is created
- [Tags] Get
- CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Get Request session ${REST_CON}l3vpn:vpn-instances/vpn-instance/${vpn_inst_values[0]}/ headers=${ACCEPT_XML}
- CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Get Request session ${REST_CON}l3vpn-instances-interfaces:vpn-instances/vpn-instance/${vpn_inst_values[0]}/ headers=${ACCEPT_XML}
+ [Tags] get
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Get Request
+ ... session
+ ... ${REST_CON}l3vpn:vpn-instances/vpn-instance/${vpn_inst_values[0]}/
+ ... headers=${ACCEPT_XML}
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Get Request
+ ... session
+ ... ${REST_CON}l3vpn-instances-interfaces:vpn-instances/vpn-instance/${vpn_inst_values[0]}/
+ ... headers=${ACCEPT_XML}
Should Be Equal As Strings ${resp.status_code} 200
Log ${resp.content}
FOR ${value} IN @{vpn_inst_values}
Create ietf vm interface
[Documentation] Creates ietf interface through the restconf
- [Tags] Post
+ [Tags] post
${body} OperatingSystem.Get File ${VPN_CONFIG_DIR}/vm_interface.json
${resp} RequestsLibrary.Post Request session ${REST_CON}ietf-interfaces:interfaces/ data=${body}
Should Be Equal As Strings ${resp.status_code} 204
Verify ietf vm interface
[Documentation] Verifies ietf interface created
- [Tags] Get
- ${resp} RequestsLibrary.Get Request session ${REST_CON}ietf-interfaces:interfaces/interface/${vm_int_values[0]}/ headers=${ACCEPT_XML}
+ [Tags] get
+ ${resp} RequestsLibrary.Get Request
+ ... session
+ ... ${REST_CON}ietf-interfaces:interfaces/interface/${vm_int_values[0]}/
+ ... headers=${ACCEPT_XML}
Should Be Equal As Strings ${resp.status_code} 200
Log ${resp.content}
FOR ${value} IN @{vm_int_values}
Create VPN interface
[Documentation] Creates vpn interface for the corresponding ietf interface
- [Tags] Post
+ [Tags] post
${body} OperatingSystem.Get File ${VPN_CONFIG_DIR}/vm_vpninterface.json
- CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Post Request session ${REST_CON}l3vpn:vpn-interfaces/ data=${body}
- CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Post Request session ${REST_CON}l3vpn-instances-interfaces:vpn-interfaces/ data=${body}
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Post Request
+ ... session
+ ... ${REST_CON}l3vpn:vpn-interfaces/
+ ... data=${body}
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Post Request
+ ... session
+ ... ${REST_CON}l3vpn-instances-interfaces:vpn-interfaces/
+ ... data=${body}
Should Be Equal As Strings ${resp.status_code} 204
Verify VPN interface
[Documentation] Verifies the vpn interface created
- [Tags] Get
- CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Get Request session ${REST_CON}l3vpn:vpn-interfaces/ headers=${ACCEPT_XML}
- CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Get Request session ${REST_CON}l3vpn-instances-interfaces:vpn-interfaces/ headers=${ACCEPT_XML}
+ [Tags] get
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Get Request
+ ... session
+ ... ${REST_CON}l3vpn:vpn-interfaces/
+ ... headers=${ACCEPT_XML}
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Get Request
+ ... session
+ ... ${REST_CON}l3vpn-instances-interfaces:vpn-interfaces/
+ ... headers=${ACCEPT_XML}
Should Be Equal As Strings ${resp.status_code} 200
Log ${resp.content}
FOR ${value} IN @{vm_vpnint_values}
Verify FIB entry after create
[Documentation] Verifies the fib entry for the corresponding vpn interface
- [Tags] Get
+ [Tags] get
Wait Until Keyword Succeeds 5s 1s Ensure The Fib Entry Is Present ${vm_vpnint_values[2]}
Delete vm vpn interface
[Documentation] Deletes the vpn interface
- [Tags] Delete
- CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Delete Request session ${REST_CON}l3vpn:vpn-interfaces/
- CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Delete Request session ${REST_CON}l3vpn-instances-interfaces:vpn-interfaces/
+ [Tags] delete
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Delete Request
+ ... session
+ ... ${REST_CON}l3vpn:vpn-interfaces/
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Delete Request
+ ... session
+ ... ${REST_CON}l3vpn-instances-interfaces:vpn-interfaces/
Should Be Equal As Strings ${resp.status_code} 200
Verify after deleteing vm vpn interface
[Documentation] Verifies vpn interface after delete
- [Tags] Verify after delete
- CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Get Request session ${REST_CON}l3vpn:vpn-interfaces/ headers=${ACCEPT_XML}
- CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Get Request session ${REST_CON}l3vpn-instances-interfaces:vpn-interfaces/ headers=${ACCEPT_XML}
+ [Tags] verify after delete
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Get Request
+ ... session
+ ... ${REST_CON}l3vpn:vpn-interfaces/
+ ... headers=${ACCEPT_XML}
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Get Request
+ ... session
+ ... ${REST_CON}l3vpn-instances-interfaces:vpn-interfaces/
+ ... headers=${ACCEPT_XML}
Should Be Equal As Strings ${resp.status_code} 404
Delete VPN Instance
[Documentation] Deletes the VPN Instance
- [Tags] Delete
- CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Delete Request session ${REST_CON}l3vpn:vpn-instances/vpn-instance/${vpn_inst_values[0]}/
- CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Delete Requestt session ${REST_CON}l3vpn-instances-interfaces:vpn-instances/vpn-instance/${vpn_inst_values[0]}/
+ [Tags] delete
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Delete Request
+ ... session
+ ... ${REST_CON}l3vpn:vpn-instances/vpn-instance/${vpn_inst_values[0]}/
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Delete Requestt
+ ... session
+ ... ${REST_CON}l3vpn-instances-interfaces:vpn-instances/vpn-instance/${vpn_inst_values[0]}/
Should Be Equal As Strings ${resp.status_code} 200
Verify after deleting the vpn instance
[Documentation] Verifies after deleting the vpn instance
- [Tags] Verfiy after delete
- CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Post Request session ${REST_CON}l3vpn:vpn-instances/vpn-instance/${vpn_inst_values[0]}/ headers=${ACCEPT_XML}
- CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Post Request session ${REST_CON}l3vpn-instances-interfaces:vpn-instances/vpn-instance/${vpn_inst_values[0]}/ headers=${ACCEPT_XML}
+ [Tags] verfiy after delete
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Post Request
+ ... session
+ ... ${REST_CON}l3vpn:vpn-instances/vpn-instance/${vpn_inst_values[0]}/
+ ... headers=${ACCEPT_XML}
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Post Request
+ ... session
+ ... ${REST_CON}l3vpn-instances-interfaces:vpn-instances/vpn-instance/${vpn_inst_values[0]}/
+ ... headers=${ACCEPT_XML}
Should Be Equal As Strings ${resp.status_code} 404
Delete vm ietf interface
[Documentation] Deletes the ietf interface
- [Tags] Delete
- ${resp} RequestsLibrary.Delete Request session ${REST_CON}ietf-interfaces:interfaces/interface/${vm_int_values[0]}
+ [Tags] delete
+ ${resp} RequestsLibrary.Delete Request
+ ... session
+ ... ${REST_CON}ietf-interfaces:interfaces/interface/${vm_int_values[0]}
Should Be Equal As Strings ${resp.status_code} 200
Verify after deleting vm ietf interface
[Documentation] Verifies ietf interface after delete
- [Tags] Verify after delete
- ${resp} RequestsLibrary.Get Request session ${REST_CON}ietf-interfaces:interfaces/interface/${vm_int_values[0]} headers=${ACCEPT_XML}
+ [Tags] verify after delete
+ ${resp} RequestsLibrary.Get Request
+ ... session
+ ... ${REST_CON}ietf-interfaces:interfaces/interface/${vm_int_values[0]}
+ ... headers=${ACCEPT_XML}
Should Be Equal As Strings ${resp.status_code} 404
Verify FIB entry after delete
[Documentation] Verifies the fib entry is deleted for the corresponding vpn interface
- [Tags] Get
+ [Tags] get
Wait Until Keyword Succeeds 5s 1s Ensure The Fib Entry Is Removed ${vm_vpnint_values[2]}
+
*** Keywords ***
Ensure The Fib Entry Is Present
- [Arguments] ${prefix}
[Documentation] Will succeed if the fib entry is present for the vpn
- ${resp} RequestsLibrary.Get Request session /restconf/operational/odl-fib:fibEntries/ headers=${ACCEPT_XML}
+ [Arguments] ${prefix}
+ ${resp} RequestsLibrary.Get Request
+ ... session
+ ... /restconf/operational/odl-fib:fibEntries/
+ ... headers=${ACCEPT_XML}
Should Be Equal As Strings ${resp.status_code} 200
Log ${resp.content}
Should Contain ${resp.content} ${prefix}
Should Contain ${resp.content} label
Ensure the Fib Entry Is Removed
- [Arguments] ${prefix}
[Documentation] Will succeed if the fib entry is removed for the vpn
- ${resp} RequestsLibrary.Get Request session /restconf/operational/odl-fib:fibEntries/ headers=${ACCEPT_XML}
+ [Arguments] ${prefix}
+ ${resp} RequestsLibrary.Get Request
+ ... session
+ ... /restconf/operational/odl-fib:fibEntries/
+ ... headers=${ACCEPT_XML}
Should Be Equal As Strings ${resp.status_code} 200
Should Not Contain ${resp.content} ${prefix}
*** Settings ***
-Documentation Test Suite for vpn instance
-Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
-Suite Teardown Delete All Sessions
-Variables ../../variables/vpnservice/configureSwitches.py ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_2_IP}
-Library SSHLibrary
-Variables ../../variables/Variables.py
-Resource ../../libraries/Utils.robot
-Library RequestsLibrary
+Documentation Test Suite for vpn instance
+
+Variables ../../variables/vpnservice/configureSwitches.py ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_2_IP}
+Library SSHLibrary
+Variables ../../variables/Variables.py
+Resource ../../libraries/Utils.robot
+Library RequestsLibrary
+
+Suite Setup Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
+Suite Teardown Delete All Sessions
+
*** Variables ***
-${REST_CON} /restconf/config
-@{vpn_inst_values} testVpn1 100:1 200:1 300:1 testVpn2 400:1 500:1
-... 600:1
-@{ietf_int_values} s1-eth1 s1-eth2 s1-gre1 s2-eth1 s2-eth2 s2-gre1
-@{vpn_int_values} s1-eth1 testVpn1 10.0.0.1 00:00:00:00:00:01 s1-eth2 10.0.0.2 00:00:00:00:00:02
-... s2-eth1 10.0.0.3 00:00:00:00:00:03 testVpn2 s2-eth2 10.0.0.4 00:00:00:00:00:04
-${REST_OPER} /restconf/operational
-@{NODE_ELEMENTS} openflow:1 openflow:1:1 openflow:1:2 openflow:1:3 openflow:2 openflow:2:1 openflow:2:2
-... openflow:2:3
+${REST_CON} /restconf/config
+@{vpn_inst_values} testVpn1 100:1 200:1 300:1 testVpn2 400:1 500:1
+... 600:1
+@{ietf_int_values} s1-eth1 s1-eth2 s1-gre1 s2-eth1 s2-eth2 s2-gre1
+@{vpn_int_values}
+... s1-eth1
+... testVpn1
+... 10.0.0.1
+... 00:00:00:00:00:01
+... s1-eth2
+... 10.0.0.2
+... 00:00:00:00:00:02
+... s2-eth1
+... 10.0.0.3
+... 00:00:00:00:00:03
+... testVpn2
+... s2-eth2
+... 10.0.0.4
+... 00:00:00:00:00:04
+${REST_OPER} /restconf/operational
+@{NODE_ELEMENTS}
+... openflow:1
+... openflow:1:1
+... openflow:1:2
+... openflow:1:3
+... openflow:2
+... openflow:2:1
+... openflow:2:2
+... openflow:2:3
+
*** Test Cases ***
Veirfy The Switches
Create VPN Instances
[Documentation] Creates VPN Instances through restconf
- [Tags] Post
- CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Post Request session ${REST_CON}/l3vpn:vpn-instances/ data=${vpn_instances}
- CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Post Request session ${REST_CON}/l3vpn-instances-interfaces:vpn-instances/ data=${vpn_instances}
+ [Tags] post
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Post Request
+ ... session
+ ... ${REST_CON}/l3vpn:vpn-instances/
+ ... data=${vpn_instances}
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Post Request
+ ... session
+ ... ${REST_CON}/l3vpn-instances-interfaces:vpn-instances/
+ ... data=${vpn_instances}
Log ${resp.content}
Should Be Equal As Strings ${resp.status_code} 204
Verify VPN instances
[Documentation] Verifies the vpn instances in the datastores
- [Tags] Get
- CompareStream.Run_Keyword_If_Less_Than_Magnesium Wait Until Keyword Succeeds 5s 1s Check For Elements At URI ${REST_CON}/l3vpn:vpn-instances/ ${vpn_inst_values}
- CompareStream.Run_Keyword_If_Less_Than_Magnesium Wait Until Keyword Succeeds 5s 1s Check For Elements At URI ${REST_OPER}/l3vpn:vpn-instances/ ${vpn_inst_values}
- CompareStream.Run_Keyword_If_At_Least_Magnesium Wait Until Keyword Succeeds 5s 1s Check For Elements At URI ${REST_CON}/l3vpn-instances-interfaces:vpn-instances/ ${vpn_inst_values}
- CompareStream.Run_Keyword_If_At_Least_Magnesium Wait Until Keyword Succeeds 5s 1s Check For Elements At URI ${REST_OPER}/l3vpn-instances-interfaces:vpn-instances/ ${vpn_inst_values}
+ [Tags] get
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... Wait Until Keyword Succeeds
+ ... 5s
+ ... 1s
+ ... Check For Elements At URI
+ ... ${REST_CON}/l3vpn:vpn-instances/
+ ... ${vpn_inst_values}
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... Wait Until Keyword Succeeds
+ ... 5s
+ ... 1s
+ ... Check For Elements At URI
+ ... ${REST_OPER}/l3vpn:vpn-instances/
+ ... ${vpn_inst_values}
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... Wait Until Keyword Succeeds
+ ... 5s
+ ... 1s
+ ... Check For Elements At URI
+ ... ${REST_CON}/l3vpn-instances-interfaces:vpn-instances/
+ ... ${vpn_inst_values}
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... Wait Until Keyword Succeeds
+ ... 5s
+ ... 1s
+ ... Check For Elements At URI
+ ... ${REST_OPER}/l3vpn-instances-interfaces:vpn-instances/
+ ... ${vpn_inst_values}
Create ietf interfaces
[Documentation] Creates ietf interfaces through the restconf
- [Tags] Post
- ${resp} RequestsLibrary.Post Request session ${REST_CON}/ietf-interfaces:interfaces/ data=${ietf_interfaces}
+ [Tags] post
+ ${resp}= RequestsLibrary.Post Request
+ ... session
+ ... ${REST_CON}/ietf-interfaces:interfaces/
+ ... data=${ietf_interfaces}
Should Be Equal As Strings ${resp.status_code} 204
Verify ietf interfaces
[Documentation] Verifies ietf interfaces created in datastores
- [Tags] Get
- Wait Until Keyword Succeeds 5s 1s Check For Elements At URI ${REST_CON}/ietf-interfaces:interfaces/ ${ietf_int_values}
- Wait Until Keyword Succeeds 5s 1s Check For Elements At URI ${REST_OPER}/ietf-interfaces:interfaces-state/ ${ietf_int_values}
+ [Tags] get
+ Wait Until Keyword Succeeds
+ ... 5s
+ ... 1s
+ ... Check For Elements At URI
+ ... ${REST_CON}/ietf-interfaces:interfaces/
+ ... ${ietf_int_values}
+ Wait Until Keyword Succeeds
+ ... 5s
+ ... 1s
+ ... Check For Elements At URI
+ ... ${REST_OPER}/ietf-interfaces:interfaces-state/
+ ... ${ietf_int_values}
@{state}= Create List down
- Wait Until Keyword Succeeds 2s 1s Check For Elements Not At URI ${REST_OPER}/ietf-interfaces:interfaces-state/ ${state}
+ Wait Until Keyword Succeeds
+ ... 2s
+ ... 1s
+ ... Check For Elements Not At URI
+ ... ${REST_OPER}/ietf-interfaces:interfaces-state/
+ ... ${state}
Create VPN interfaces
[Documentation] Creates vpn interface for the corresponding ietf interface
- [Tags] Post
- CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Post Request session ${REST_CON}/l3vpn:vpn-interfaces/ data=${vpn_instances}
- CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Post Request session ${REST_CON}/l3vpn-instances-interfaces:vpn-interfaces/ data=${vpn_instances}
+ [Tags] post
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Post Request
+ ... session
+ ... ${REST_CON}/l3vpn:vpn-interfaces/
+ ... data=${vpn_instances}
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Post Request
+ ... session
+ ... ${REST_CON}/l3vpn-instances-interfaces:vpn-interfaces/
+ ... data=${vpn_instances}
Should Be Equal As Strings ${resp.status_code} 204
Verify VPN interfaces
[Documentation] Verifies the vpn interfaces created in datastores
- [Tags] Get
- CompareStream.Run_Keyword_If_Less_Than_Magnesium Wait Until Keyword Succeeds 3s 1s Check For Elements At URI ${REST_CON}/l3vpn:vpn-interfaces/ ${vpn_int_values}
- CompareStream.Run_Keyword_If_Less_Than_Magnesium Wait Until Keyword Succeeds 3s 1s Check For Elements At URI ${REST_OPER}/l3vpn:vpn-interfaces/ ${vpn_int_values}
- CompareStream.Run_Keyword_If_At_Least_Magnesium Wait Until Keyword Succeeds 3s 1s Check For Elements At URI ${REST_CON}/l3vpn-instances-interfaces:vpn-interfaces/ ${vpn_int_values}
- CompareStream.Run_Keyword_If_At_Least_Magnesium Wait Until Keyword Succeeds 3s 1s Check For Elements At URI ${REST_OPER}/l3vpn-instances-interfaces:vpn-interfaces/ ${vpn_int_values}
+ [Tags] get
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... Wait Until Keyword Succeeds
+ ... 3s
+ ... 1s
+ ... Check For Elements At URI
+ ... ${REST_CON}/l3vpn:vpn-interfaces/
+ ... ${vpn_int_values}
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... Wait Until Keyword Succeeds
+ ... 3s
+ ... 1s
+ ... Check For Elements At URI
+ ... ${REST_OPER}/l3vpn:vpn-interfaces/
+ ... ${vpn_int_values}
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... Wait Until Keyword Succeeds
+ ... 3s
+ ... 1s
+ ... Check For Elements At URI
+ ... ${REST_CON}/l3vpn-instances-interfaces:vpn-interfaces/
+ ... ${vpn_int_values}
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... Wait Until Keyword Succeeds
+ ... 3s
+ ... 1s
+ ... Check For Elements At URI
+ ... ${REST_OPER}/l3vpn-instances-interfaces:vpn-interfaces/
+ ... ${vpn_int_values}
Verify FIB entries after create
[Documentation] Verifies the fib entries in the operational DS for the corresponding vpn interfaces
- [Tags] Get
+ [Tags] get
@{fib_entries1}= Create List ${vpn_int_values[2]} ${vpn_int_values[8]}
@{fib_entries2}= Create List ${vpn_int_values[5]} ${vpn_int_values[12]}
- Wait Until Keyword Succeeds 3s 1s Check For Elements At URI ${REST_OPER}/odl-fib:fibEntries/vrfTables/${vpn_inst_values[1]} ${fib_entries1}
- Wait Until Keyword Succeeds 3s 1s Check For Elements At URI ${REST_OPER}/odl-fib:fibEntries/vrfTables/${vpn_inst_values[5]} ${fib_entries2}
+ Wait Until Keyword Succeeds
+ ... 3s
+ ... 1s
+ ... Check For Elements At URI
+ ... ${REST_OPER}/odl-fib:fibEntries/vrfTables/${vpn_inst_values[1]}
+ ... ${fib_entries1}
+ Wait Until Keyword Succeeds
+ ... 3s
+ ... 1s
+ ... Check For Elements At URI
+ ... ${REST_OPER}/odl-fib:fibEntries/vrfTables/${vpn_inst_values[5]}
+ ... ${fib_entries2}
Verify flows
[Documentation] Verify flows in the switches
[Tags] verify in switch
- @{flow_elements} Create List ${vpn_int_values[2]} ${vpn_int_values[5]} ${vpn_int_values[8]} ${vpn_int_values[12]}
+ @{flow_elements}= Create List
+ ... ${vpn_int_values[2]}
+ ... ${vpn_int_values[5]}
+ ... ${vpn_int_values[8]}
+ ... ${vpn_int_values[12]}
Wait Until Keyword Succeeds 6s 2s Ensure Flows Are Present ${mininet1_conn_id_1} ${flow_elements}
Wait Until Keyword Succeeds 6s 2s Ensure Flows Are Present ${mininet2_conn_id_1} ${flow_elements}
Verify groups
[Documentation] Verify groups in the switches
[Tags] verify in switch
- @{group_elements1} Create List ${vpn_int_values[3]} ${vpn_int_values[6]}
- @{group_elements2} Create List ${vpn_int_values[9]} ${vpn_int_values[13]}
- Wait Until Keyword Succeeds 5s 1s Ensure Groups Are Present ${mininet1_conn_id_1} ${group_elements1} 3
- Wait Until Keyword Succeeds 5s 1s Ensure Groups Are Present ${mininet2_conn_id_1} ${group_elements2} 3
+ @{group_elements1}= Create List ${vpn_int_values[3]} ${vpn_int_values[6]}
+ @{group_elements2}= Create List ${vpn_int_values[9]} ${vpn_int_values[13]}
+ Wait Until Keyword Succeeds
+ ... 5s
+ ... 1s
+ ... Ensure Groups Are Present
+ ... ${mininet1_conn_id_1}
+ ... ${group_elements1}
+ ... 3
+ Wait Until Keyword Succeeds
+ ... 5s
+ ... 1s
+ ... Ensure Groups Are Present
+ ... ${mininet2_conn_id_1}
+ ... ${group_elements2}
+ ... 3
Verify ping
[Documentation] Verifies the ping between the two hosts. Ping should succeed between hosts in same vpn, (h1,h3) and (h2,h4).Ping between hosts in different vpns should fail (h1,h2) & (h3,h4). The commented out section is to be uncommented when ovs supports mpls over gre in datapath
[Tags] verify in switch
Switch Connection ${mininet1_conn_id_1}
Write h1 ping h2 -c 5
- ${result} Read Until mininet>
+ ${result}= Read Until mininet>
Log ${result}
Should Contain ${result} 100% packet loss
Delete vpn interfaces
[Documentation] Deletes the vpn interfaces
- [Tags] Delete
- CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Delete Request session ${REST_CON}/l3vpn:vpn-interfaces/
- CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Delete Request session ${REST_CON}/l3vpn-instances-interfaces:vpn-interfaces/
+ [Tags] delete
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Delete Request
+ ... session
+ ... ${REST_CON}/l3vpn:vpn-interfaces/
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Delete Request
+ ... session
+ ... ${REST_CON}/l3vpn-instances-interfaces:vpn-interfaces/
Should Be Equal As Strings ${resp.status_code} 200
Verify after deleting vpn interfaces
[Documentation] Verifies if vpn interfaces are deleted
- [Tags] Verify after delete
- CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.get Request session ${REST_CON}/l3vpn:vpn-interfaces/ headers=${ACCEPT_XML}
- CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.get Request session ${REST_CON}/l3vpn-instances-interfaces:vpn-interfaces/ headers=${ACCEPT_XML}
+ [Tags] verify after delete
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.get Request
+ ... session
+ ... ${REST_CON}/l3vpn:vpn-interfaces/
+ ... headers=${ACCEPT_XML}
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.get Request
+ ... session
+ ... ${REST_CON}/l3vpn-instances-interfaces:vpn-interfaces/
+ ... headers=${ACCEPT_XML}
Should Be Equal As Strings ${resp.status_code} 404
Delete ietf interfaces
[Documentation] Deletes the ietf interfaces
- [Tags] Delete
- ${resp} RequestsLibrary.Delete Request session ${REST_CON}/ietf-interfaces:interfaces/
+ [Tags] delete
+ ${resp}= RequestsLibrary.Delete Request session ${REST_CON}/ietf-interfaces:interfaces/
Should Be Equal As Strings ${resp.status_code} 200
Verify after deleting ietf interfaces
[Documentation] Verifies if ietf interfaces are deleted
- [Tags] Verify after delete
- ${resp} RequestsLibrary.get Request session ${REST_CON}/ietf-interfaces:interfaces/ headers=${ACCEPT_XML}
+ [Tags] verify after delete
+ ${resp}= RequestsLibrary.get Request
+ ... session
+ ... ${REST_CON}/ietf-interfaces:interfaces/
+ ... headers=${ACCEPT_XML}
Should Be Equal As Strings ${resp.status_code} 404
Delete VPN Instances
[Documentation] Deletes the VPN Instances
- [Tags] Delete
- CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.Delete Request session ${REST_CON}/l3vpn:vpn-instances/
- CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.Delete Request session ${REST_CON}/l3vpn-instances-interfaces:vpn-instances/
+ [Tags] delete
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Delete Request
+ ... session
+ ... ${REST_CON}/l3vpn:vpn-instances/
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.Delete Request
+ ... session
+ ... ${REST_CON}/l3vpn-instances-interfaces:vpn-instances/
Should Be Equal As Strings ${resp.status_code} 200
Verify after deleting the vpn instances
[Documentation] Verifies after deleting the vpn instances
- [Tags] Verfiy after delete
- CompareStream.Run_Keyword_If_Less_Than_Magnesium ${resp} RequestsLibrary.get Request session ${REST_CON}/l3vpn:vpn-instances/ headers=${ACCEPT_XML}
- CompareStream.Run_Keyword_If_At_Least_Magnesium ${resp} RequestsLibrary.get Request session ${REST_CON}/l3vpn-instances-interfaces:vpn-instances/ headers=${ACCEPT_XML}
+ [Tags] verfiy after delete
+ CompareStream.Run_Keyword_If_Less_Than_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.get Request
+ ... session
+ ... ${REST_CON}/l3vpn:vpn-instances/
+ ... headers=${ACCEPT_XML}
+ CompareStream.Run_Keyword_If_At_Least_Magnesium
+ ... ${resp}
+ ... RequestsLibrary.get Request
+ ... session
+ ... ${REST_CON}/l3vpn-instances-interfaces:vpn-instances/
+ ... headers=${ACCEPT_XML}
Should Be Equal As Strings ${resp.status_code} 404
Verify FIB entries after delete
[Documentation] Verifies if the fib entries are deleted in the operational DS
- [Tags] Get
- @{fib_entries}= Create List ${vpn_int_values[2]} ${vpn_int_values[5]} ${vpn_int_values[8]} ${vpn_int_values[12]}
- Wait Until Keyword Succeeds 3s 1s Check For Elements Not At URI ${REST_OPER}/odl-fib:fibEntries/ ${fib_entries}
+ [Tags] get
+ @{fib_entries}= Create List
+ ... ${vpn_int_values[2]}
+ ... ${vpn_int_values[5]}
+ ... ${vpn_int_values[8]}
+ ... ${vpn_int_values[12]}
+ Wait Until Keyword Succeeds
+ ... 3s
+ ... 1s
+ ... Check For Elements Not At URI
+ ... ${REST_OPER}/odl-fib:fibEntries/
+ ... ${fib_entries}
Verify flows after delete
[Documentation] Verify if the flows are deleted from the switch
Wait Until Keyword Succeeds 12s 2s Ensure Flows Are Removed ${mininet1_conn_id_1}
Wait Until Keyword Succeeds 12s 2s Ensure Flows Are Removed ${mininet2_conn_id_1}
+
*** Keywords ***
Ensure Flows Are Present
- [Arguments] ${conn_id} ${flow_elements}
[Documentation] Succeeds if the flows for vpn service are present
+ [Arguments] ${conn_id} ${flow_elements}
Switch Connection ${conn_id}
Write dpctl dump-flows -O OpenFlow13
${output}= Read Until mininet>
END
Ensure Groups Are Present
- [Arguments] ${conn_id} ${group_elements} ${gre_port_id}
[Documentation] Succeeds if the groups for the vpn service are present
+ [Arguments] ${conn_id} ${group_elements} ${gre_port_id}
Switch Connection ${conn_id}
Write dpctl dump-groups -O OpenFlow13
${output}= Read Until mininet>
END
Ensure Flows Are Removed
- [Arguments] ${conn_id}
[Documentation] Succeeds if the flows are removed from the switch
+ [Arguments] ${conn_id}
Switch Connection ${conn_id}
Write dpctl dump-flows -O OpenFlow13
${output}= Read Until mininet>
Should Not contain ${output} table=21
Ensure Groups Are Removed
- [Arguments] ${conn_id}
[Documentation] Succeeds if the group entries are removed from switch
+ [Arguments] ${conn_id}
Switch Connection ${conn_id}
Write dpctl dump-groups -O OpenFlow13
${output}= Read Until mininet>
*** Settings ***
-Documentation Test suite for Inventory Scalability
-Suite Setup Start Suite
-Suite Teardown Stop Suite
-Library SSHLibrary
-Library ../../libraries/Common.py
-Variables ../../variables/Variables.py
-Resource ../../libraries/Utils.robot
+Documentation Test suite for Inventory Scalability
+
+Library SSHLibrary
+Library ../../libraries/Common.py
+Variables ../../variables/Variables.py
+Resource ../../libraries/Utils.robot
+
+Suite Setup Start Suite
+Suite Teardown Stop Suite
+
*** Variables ***
-${start1} sudo mn \ --controller=remote,ip=${ODL_SYSTEM_IP} --custom custom.py --topo Switch1 --switch ovsk,protocols=OpenFlow13
-${start2} sudo mn \ --controller=remote,ip=${ODL_SYSTEM_IP} --custom custom.py --topo Switch2 --switch ovsk,protocols=OpenFlow13
+${start1}
+... sudo mn \ --controller=remote,ip=${ODL_SYSTEM_IP} --custom custom.py --topo Switch1 --switch ovsk,protocols=OpenFlow13
+${start2}
+... sudo mn \ --controller=remote,ip=${ODL_SYSTEM_IP} --custom custom.py --topo Switch2 --switch ovsk,protocols=OpenFlow13
+
*** Keywords ***
Start Suite
${mininet1_conn_id_2}= Open Connection ${TOOLS_SYSTEM_IP} prompt=${DEFAULT_LINUX_PROMPT} timeout= 30s
Set Global Variable ${mininet1_conn_id_2}
Login With Public Key ${TOOLS_SYSTEM_USER} ${USER_HOME}/.ssh/${SSH_KEY} any
- Execute Command sudo ovs-vsctl add-port s1 s1-gre1 -- set interface s1-gre1 type=gre options:remote_ip=${TOOLS_SYSTEM_2_IP} options:local_ip=${TOOLS_SYSTEM_IP}
- ${output} Execute Command sudo ovs-vsctl show
+ Execute Command
+ ... sudo ovs-vsctl add-port s1 s1-gre1 -- set interface s1-gre1 type=gre options:remote_ip=${TOOLS_SYSTEM_2_IP} options:local_ip=${TOOLS_SYSTEM_IP}
+ ${output}= Execute Command sudo ovs-vsctl show
Log ${output}
Execute Command sudo ovs-ofctl add-flow s1 -O OpenFlow13 arp,actions=FLOOD
${mininet2_conn_id_1}= Open Connection ${TOOLS_SYSTEM_2_IP} prompt=${DEFAULT_LINUX_PROMPT} timeout=30s
${mininet2_conn_id_2}= Open Connection ${TOOLS_SYSTEM_2_IP} prompt=${DEFAULT_LINUX_PROMPT} timeout= 30s
Set Global Variable ${mininet2_conn_id_2}
Login With Public Key ${TOOLS_SYSTEM_USER} ${USER_HOME}/.ssh/${SSH_KEY} any
- Execute Command sudo ovs-vsctl add-port s2 s2-gre1 -- set interface s2-gre1 type=gre options:remote_ip=${TOOLS_SYSTEM_IP} options:local_ip=${TOOLS_SYSTEM_2_IP}
- ${output} Execute Command sudo ovs-vsctl show
+ Execute Command
+ ... sudo ovs-vsctl add-port s2 s2-gre1 -- set interface s2-gre1 type=gre options:remote_ip=${TOOLS_SYSTEM_IP} options:local_ip=${TOOLS_SYSTEM_2_IP}
+ ${output}= Execute Command sudo ovs-vsctl show
Log ${output}
Execute Command sudo ovs-ofctl add-flow s2 -O OpenFlow13 arp,actions=FLOOD
*** Settings ***
-Documentation Test suite for VTN Coordinator
-Suite Setup Start SuiteVtnCoTest
-Suite Teardown Stop SuiteVtnCoTest
-Resource ../../../libraries/VtnCoKeywords.robot
+Documentation Test suite for VTN Coordinator
+
+Resource ../../../libraries/VtnCoKeywords.robot
+
+Suite Setup Start SuiteVtnCoTest
+Suite Teardown Stop SuiteVtnCoTest
+
*** Test Cases ***
Test if VTNC is ready
*** Settings ***
-Documentation Test suite for VTNC Launch
-Suite Setup Start SuiteVtnCo
-Suite Teardown Stop SuiteVtnCo
-Library SSHLibrary
-Resource ../../../libraries/VtnCoKeywords.robot
+Documentation Test suite for VTNC Launch
+
+Library SSHLibrary
+Resource ../../../libraries/VtnCoKeywords.robot
+
+Suite Setup Start SuiteVtnCo
+Suite Teardown Stop SuiteVtnCo
*** Settings ***
-Documentation Test suite for VTN Coordinator
-Suite Setup Start SuiteVtnCoTest
-Suite Teardown Stop SuiteVtnCoTest
-Resource ../../../libraries/VtnCoKeywords.robot
+Documentation Test suite for VTN Coordinator
+
+Resource ../../../libraries/VtnCoKeywords.robot
+
+Suite Setup Start SuiteVtnCoTest
+Suite Teardown Stop SuiteVtnCoTest
+
*** Test Cases ***
Add a ODL Controller
*** Settings ***
-Documentation Test suite for VTN Coordinator
-Suite Setup Start SuiteVtnCoTest
-Suite Teardown Stop SuiteVtnCoTest
-Resource ../../../libraries/VtnCoKeywords.robot
+Documentation Test suite for VTN Coordinator
+
+Resource ../../../libraries/VtnCoKeywords.robot
+
+Suite Setup Start SuiteVtnCoTest
+Suite Teardown Stop SuiteVtnCoTest
+
*** Test Cases ***
Add a ODL Controller
*** Settings ***
-Documentation Test suite for VTN Coordinator
-Suite Setup Start SuiteVtnCoTest
-Suite Teardown Stop SuiteVtnCoTest
-Resource ../../../libraries/VtnCoKeywords.robot
-Resource ../../../libraries/WaitForFailure.robot
+Documentation Test suite for VTN Coordinator
+
+Resource ../../../libraries/VtnCoKeywords.robot
+Resource ../../../libraries/WaitForFailure.robot
+
+Suite Setup Start SuiteVtnCoTest
+Suite Teardown Stop SuiteVtnCoTest
+
*** Test Cases ***
Add a ODL Controller with Invalid IP
Verify the Controller Status is down
[Documentation] Check Controller status
- WaitForFailure.Verify_Keyword_Does_Not_Fail_Within_Timeout 12s 1s Check Controller Status odc_test down
+ WaitForFailure.Verify_Keyword_Does_Not_Fail_Within_Timeout
+ ... 12s
+ ... 1s
+ ... Check Controller Status
+ ... odc_test
+ ... down
Add a Vtn Tenant1
[Documentation] Create Vtn Tenant1
*** Settings ***
-Documentation Test suite for VTN Coordinator
-Suite Setup Start SuiteVtnCoTest
-Suite Teardown Stop SuiteVtnCoTest
-Resource ../../../libraries/VtnCoKeywords.robot
+Documentation Test suite for VTN Coordinator
+
+Resource ../../../libraries/VtnCoKeywords.robot
+
+Suite Setup Start SuiteVtnCoTest
+Suite Teardown Stop SuiteVtnCoTest
+
*** Test Cases ***
Add a ODL Controller
*** Settings ***
-Documentation Test suite for VTN Coordinator
-Suite Setup Start SuiteVtnCoTest
-Suite Teardown Stop SuiteVtnCoTest
-Resource ../../../libraries/VtnCoKeywords.robot
+Documentation Test suite for VTN Coordinator
+
+Resource ../../../libraries/VtnCoKeywords.robot
+
+Suite Setup Start SuiteVtnCoTest
+Suite Teardown Stop SuiteVtnCoTest
+
*** Test Cases ***
Add a ODL Controller
*** Settings ***
-Documentation Test suite for VTN Coordinator
-Suite Setup Start SuiteVtnCoTest
-Suite Teardown Stop SuiteVtnCoTest
-Resource ../../../libraries/VtnCoKeywords.robot
+Documentation Test suite for VTN Coordinator
+
+Resource ../../../libraries/VtnCoKeywords.robot
+
+Suite Setup Start SuiteVtnCoTest
+Suite Teardown Stop SuiteVtnCoTest
+
*** Test Cases ***
Add a ODL Controller
*** Settings ***
-Documentation Test suite for VTN Coordinator
-Suite Setup Start SuiteVtnCoTest
-Suite Teardown Stop SuiteVtnCoTest
-Resource ../../../libraries/VtnCoKeywords.robot
+Documentation Test suite for VTN Coordinator
+
+Resource ../../../libraries/VtnCoKeywords.robot
+
+Suite Setup Start SuiteVtnCoTest
+Suite Teardown Stop SuiteVtnCoTest
+
*** Test Cases ***
Add a ODL Controller
*** Settings ***
-Documentation Test suite for AD-SAL NSF
-Suite Setup Start Mininet
-Suite Teardown Delete All Sessions
-Library SSHLibrary
-Resource ../../../libraries/VtnCoKeywords.robot
+Documentation Test suite for AD-SAL NSF
-*** Variables ***
-${start} sudo mn --controller=remote,ip=${ODL_SYSTEM_IP} --topo tree,2
+Library SSHLibrary
+Resource ../../../libraries/VtnCoKeywords.robot
+
+Suite Setup Start Mininet
+Suite Teardown Delete All Sessions
-*** Keywords ***
+
+*** Variables ***
+${start} sudo mn --controller=remote,ip=${ODL_SYSTEM_IP} --topo tree,2
*** Settings ***
-Documentation Test suite for VTN Coordinator
-Suite Setup Start SuiteVtnCoTest
-Suite Teardown Stop SuiteVtnCoTest
-Resource ../../../libraries/VtnCoKeywords.robot
+Documentation Test suite for VTN Coordinator
+
+Resource ../../../libraries/VtnCoKeywords.robot
+
+Suite Setup Start SuiteVtnCoTest
+Suite Teardown Stop SuiteVtnCoTest
+
*** Test Cases ***
Add a ODL Controller
*** Settings ***
-Documentation Test suite for VTN Coordinator
-Suite Setup Start SuiteVtnCoTest
-Suite Teardown Stop SuiteVtnCoTest
-Resource ../../../libraries/VtnCoKeywords.robot
+Documentation Test suite for VTN Coordinator
+
+Resource ../../../libraries/VtnCoKeywords.robot
+
+Suite Setup Start SuiteVtnCoTest
+Suite Teardown Stop SuiteVtnCoTest
+
*** Test Cases ***
Add a ODL Controller
*** Settings ***
-Documentation Test suite for VTN Coordinator
-Suite Setup Start SuiteVtnCoTest
-Suite Teardown Stop SuiteVtnCoTest
-Resource ../../../libraries/VtnCoKeywords.robot
-Resource ../../../libraries/WaitForFailure.robot
+Documentation Test suite for VTN Coordinator
+
+Resource ../../../libraries/VtnCoKeywords.robot
+Resource ../../../libraries/WaitForFailure.robot
+
+Suite Setup Start SuiteVtnCoTest
+Suite Teardown Stop SuiteVtnCoTest
+
*** Test Cases ***
Add a ODL Controller with Invalid IP
Verify the Controller Status is down
[Documentation] Check Controller status
- WaitForFailure.Verify_Keyword_Does_Not_Fail_Within_Timeout 12s 1s Check Controller Status odc_test down
+ WaitForFailure.Verify_Keyword_Does_Not_Fail_Within_Timeout
+ ... 12s
+ ... 1s
+ ... Check Controller Status
+ ... odc_test
+ ... down
Add a Vtn Tenant1
[Documentation] Create Vtn Tenant1
*** Settings ***
-Documentation Test suite for VTN Coordinator
-Suite Setup Start SuiteVtnCoTest
-Suite Teardown Stop SuiteVtnCoTest
-Resource ../../../libraries/VtnCoKeywords.robot
+Documentation Test suite for VTN Coordinator
+
+Resource ../../../libraries/VtnCoKeywords.robot
+
+Suite Setup Start SuiteVtnCoTest
+Suite Teardown Stop SuiteVtnCoTest
+
*** Test Cases ***
Add a ODL Controller
*** Settings ***
-Documentation Test suite for VTN Coordinator
-Suite Setup Start SuiteVtnCoTest
-Suite Teardown Stop SuiteVtnCoTest
-Resource ../../../libraries/VtnCoKeywords.robot
+Documentation Test suite for VTN Coordinator
+
+Resource ../../../libraries/VtnCoKeywords.robot
+
+Suite Setup Start SuiteVtnCoTest
+Suite Teardown Stop SuiteVtnCoTest
+
*** Test Cases ***
Add a ODL Controller
*** Settings ***
-Documentation Test suite for VTN Coordinator
-Suite Setup Start SuiteVtnCoTest
-Suite Teardown Stop SuiteVtnCoTest
-Resource ../../../libraries/VtnCoKeywords.robot
+Documentation Test suite for VTN Coordinator
+
+Resource ../../../libraries/VtnCoKeywords.robot
+
+Suite Setup Start SuiteVtnCoTest
+Suite Teardown Stop SuiteVtnCoTest
+
*** Test Cases ***
Add a ODL Controller
*** Settings ***
-Documentation Test suite for AD-SAL NSF mininet OF13
-Suite Setup Start Mininet
-Suite Teardown Stop Mininet
-Library SSHLibrary
-Resource ../../../libraries/VtnCoKeywords.robot
+Documentation Test suite for AD-SAL NSF mininet OF13
-*** Variables ***
-${start} sudo mn --controller=remote,ip=${ODL_SYSTEM_IP} --topo tree,2 --switch ovsk,protocols=OpenFlow13
+Library SSHLibrary
+Resource ../../../libraries/VtnCoKeywords.robot
+
+Suite Setup Start Mininet
+Suite Teardown Stop Mininet
-*** Keywords ***
+
+*** Variables ***
+${start} sudo mn --controller=remote,ip=${ODL_SYSTEM_IP} --topo tree,2 --switch ovsk,protocols=OpenFlow13
*** Settings ***
-Documentation Test suite for VTN Manager using OF13
-Suite Setup Start SuiteVtnMaTest
-Suite Teardown Stop SuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager using OF13
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMaTest
+Suite Teardown Stop SuiteVtnMaTest
+
*** Test Cases ***
Check if switch1 detected
*** Settings ***
-Documentation Test suite for VTN Manager Data Flow using OF10
-Suite Setup Start SuiteVtnMaTest
-Suite Teardown Stop SuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager Data Flow using OF10
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMaTest
+Suite Teardown Stop SuiteVtnMaTest
+
*** Test Cases ***
Check if switch1 detected
*** Settings ***
-Documentation Test suite for VTN Manager using OF10
-Suite Setup Start SuiteVtnMaTest
-Suite Teardown Stop SuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager using OF10
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMaTest
+Suite Teardown Stop SuiteVtnMaTest
+
*** Variables ***
-${flowconditiondata} "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","destination-network":"10.0.0.3/32"},"index":"1"}]
-${flowfilterInetdata} "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"192.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"192.0.0.2/32"}}],"index": "1"}]
-${flowfilterInetdropdata} "vtn-flow-filter":[{"condition":"cond_1","vtn-drop-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.2/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.4/32"}}],"index": "1"}]
-${flowfilterIcmpCodedata} "vtn-flow-filter": [{"condition": "cond_1","index": "1", "vtn-pass-filter": {}, "vtn-flow-action": [{ "order": "1", "vtn-set-icmp-code-action":{"code": "1"}},{"order": "2","vtn-set-icmp-type-action": {"type": "3"}}]}]
-${flowfilterTpsrcTpdstdata} "vtn-flow-filter": [{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-port-src-action": {"port": "5"}},{"order": "2","vtn-set-port-dst-action": {"port": "10"}}],"index": "1"}]
-${flowfilterDscpdata} "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-inet-dscp-action": {"dscp":"32"}}],"index":"1"}]
-${flowfilterdlsrc} "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-dl-src-action": {"address":"00:00:00:00:00:11"}}],"index":"1"}]
-${flowfiltervlanpcp} "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"3","vtn-set-icmp-code-action":{"code":"1"}},{"order":"4","vtn-set-vlan-pcp-action":{"vlan-pcp":"3"}}],"index":"1"}]
+${flowconditiondata}
+... "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","destination-network":"10.0.0.3/32"},"index":"1"}]
+${flowfilterInetdata}
+... "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"192.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"192.0.0.2/32"}}],"index": "1"}]
+${flowfilterInetdropdata}
+... "vtn-flow-filter":[{"condition":"cond_1","vtn-drop-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.2/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.4/32"}}],"index": "1"}]
+${flowfilterIcmpCodedata}
+... "vtn-flow-filter": [{"condition": "cond_1","index": "1", "vtn-pass-filter": {}, "vtn-flow-action": [{ "order": "1", "vtn-set-icmp-code-action":{"code": "1"}},{"order": "2","vtn-set-icmp-type-action": {"type": "3"}}]}]
+${flowfilterTpsrcTpdstdata}
+... "vtn-flow-filter": [{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-port-src-action": {"port": "5"}},{"order": "2","vtn-set-port-dst-action": {"port": "10"}}],"index": "1"}]
+${flowfilterDscpdata}
+... "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-inet-dscp-action": {"dscp":"32"}}],"index":"1"}]
+${flowfilterdlsrc}
+... "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-dl-src-action": {"address":"00:00:00:00:00:11"}}],"index":"1"}]
+${flowfiltervlanpcp}
+... "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"3","vtn-set-icmp-code-action":{"code":"1"}},{"order":"4","vtn-set-vlan-pcp-action":{"vlan-pcp":"3"}}],"index":"1"}]
+
*** Test Cases ***
Check if switch1 detected
Verify inet4src and inet4dst of vtn flowfilter
[Documentation] Verify vtn flowfilter actions in Flow Enties for inet4src and inet4dst
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF10} @{inet_actions}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF10}
+ ... @{inet_actions}
Remove vtn Flowfilter index
[Documentation] Remove a index of vtn flowfilter
Verify inet4src and inet4dst of vbr flowfilter
[Documentation] Verify actions in Flow Enties for inet4src and inet4dst
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF10} @{inet_actions}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF10}
+ ... @{inet_actions}
Remove vbr Flowfilter index
[Documentation] Remove a index of vbr flowfilter
Verify inet4src and inet4dst of vbrif flowfilter
[Documentation] Verify actions in Flow Enties for inet4src and inet4dst
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF10} @{inet_actions}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF10}
+ ... @{inet_actions}
Remove vbrif Flowfilter index
[Documentation] Remove a index of vbrif flowfilter
Verify icmp action for vtn flowfilter
[Documentation] Verify actions in Flow Enties for icmp code and type
[Tags] exclude
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF10} @{icmp_action}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF10}
+ ... @{icmp_action}
Remove vtn Flowfilter index which has ICMP
[Documentation] Remove a index of vtn flowfilter which have ICMP
Verify icmp action for vbr flowfilter
[Documentation] Verify actions in Flow Enties for icmp code and type
[Tags] exclude
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF10} @{icmp_action}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF10}
+ ... @{icmp_action}
Remove vbr Flowfilter index which has ICMP
[Documentation] Remove a index of vbr flowfilter which have ICMP
Verify icmp action for vbrif flowfilter
[Documentation] Verify actions in Flow Enties for icmp code and type
[Tags] exclude
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF10} @{icmp_action}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF10}
+ ... @{icmp_action}
Remove vbrif Flowfilter index which has ICMP
[Documentation] Remove a index of vbrif flowfilter which have ICMP
*** Settings ***
-Documentation Test suite for VTN Manager using OF10
-Suite Setup Start SuiteVtnMaTest
-Suite Teardown Stop SuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager using OF10
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMaTest
+Suite Teardown Stop SuiteVtnMaTest
+
*** Variables ***
-${flowconditiondata} "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.3/32","destination-network":"10.0.0.1/32"},"index":"1"}]
-${flowfilterInetdata} "output": "true", "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"192.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"192.0.0.2/32"}}],"index": "1"}]
-${flowfilterInetdropdata} "output": "true", "vtn-flow-filter":[{"condition":"cond_1","vtn-drop-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.2/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.4/32"}}],"index": "1"}]
-${flowfilterIcmpCodedata} "output": "true", "vtn-flow-filter": [{"condition": "cond_1","index": "1", "vtn-pass-filter": {}, "vtn-flow-action": [{ "order": "1", "vtn-set-icmp-code-action":{"code": "1"}},{"order": "2","vtn-set-icmp-type-action": {"type": "3"}}]}]
-${flowfilterTpsrcTpdstdata} "output": "true", "vtn-flow-filter": [{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-port-src-action": {"port": "5"}},{"order": "2","vtn-set-port-dst-action": {"port": "10"}}],"index": "1"}]
-${flowfilterDscpdata} "output": "true", "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-inet-dscp-action": {"dscp":"32"}}],"index":"1"}]
-${flowfiltervlanpcp} "output": "true", "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"3","vtn-set-icmp-code-action":{"code":"1"}},{"order":"4","vtn-set-vlan-pcp-action":{"vlan-pcp":"3"}}],"index":"1"}]
+${flowconditiondata}
+... "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.3/32","destination-network":"10.0.0.1/32"},"index":"1"}]
+${flowfilterInetdata}
+... "output": "true", "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"192.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"192.0.0.2/32"}}],"index": "1"}]
+${flowfilterInetdropdata}
+... "output": "true", "vtn-flow-filter":[{"condition":"cond_1","vtn-drop-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.2/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.4/32"}}],"index": "1"}]
+${flowfilterIcmpCodedata}
+... "output": "true", "vtn-flow-filter": [{"condition": "cond_1","index": "1", "vtn-pass-filter": {}, "vtn-flow-action": [{ "order": "1", "vtn-set-icmp-code-action":{"code": "1"}},{"order": "2","vtn-set-icmp-type-action": {"type": "3"}}]}]
+${flowfilterTpsrcTpdstdata}
+... "output": "true", "vtn-flow-filter": [{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-port-src-action": {"port": "5"}},{"order": "2","vtn-set-port-dst-action": {"port": "10"}}],"index": "1"}]
+${flowfilterDscpdata}
+... "output": "true", "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-inet-dscp-action": {"dscp":"32"}}],"index":"1"}]
+${flowfiltervlanpcp}
+... "output": "true", "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"3","vtn-set-icmp-code-action":{"code":"1"}},{"order":"4","vtn-set-vlan-pcp-action":{"vlan-pcp":"3"}}],"index":"1"}]
+
*** Test Cases ***
Check if switch1 detected
Verify inet4src and inet4dst of vbrif flowfilter
[Documentation] Verify actions in Flow Enties for inet4src and inet4dst
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_OUT_DUMPFLOWS_OF10} @{inet_actions}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_OUT_DUMPFLOWS_OF10}
+ ... @{inet_actions}
Remove vbrif Flowfilter index
[Documentation] Remove a index of vbrif flowfilter
*** Settings ***
-Documentation Test suite for VTN Manager using OF10
-Suite Setup Start SuiteVtnMaTest
-Suite Teardown Stop SuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager using OF10
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMaTest
+Suite Teardown Stop SuiteVtnMaTest
+
*** Test Cases ***
Check if switch1 detected
Verify FlowMacAddress
[Documentation] Checking Flows on switch
- [Tags] Switch
+ [Tags] switch
Wait_Until_Keyword_Succeeds 20s 1s Verify FlowMacAddress h2 h4 OF10
Remove Portmap for If1
*** Settings ***
-Documentation Test suite for VTN Manager using OF10
-Suite Setup Start SuiteVtnMaTest
-Suite Teardown Stop SuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager using OF10
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMaTest
+Suite Teardown Stop SuiteVtnMaTest
+
*** Variables ***
-${flowconditiondata} "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","destination-network":"10.0.0.5/32"},"index":"1"}]
-${flowfiltervlanpcp} "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"1","vtn-set-vlan-pcp-action":{"vlan-pcp":"6"}}],"index":"1"}]
+${flowconditiondata}
+... "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","destination-network":"10.0.0.5/32"},"index":"1"}]
+${flowfiltervlanpcp}
+... "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"1","vtn-set-vlan-pcp-action":{"vlan-pcp":"6"}}],"index":"1"}]
+
*** Test Cases ***
Start topology
Verify vlanpcp of vbrif flowfilter
[Documentation] Verify actions in Flow Enties for vlanpcp
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF10} ${vlanpcp_action}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF10}
+ ... ${vlanpcp_action}
Remove vbrif Flowfilter index
[Documentation] Remove a index of vbrif flowfilter
*** Settings ***
-Documentation Test suite for VTN Manager using OF10
-Suite Setup Start SuiteVtnMaTest
-Suite Teardown Stop SuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager using OF10
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMaTest
+Suite Teardown Stop SuiteVtnMaTest
+
*** Variables ***
-${flowconditiondata} "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","destination-network":"10.0.0.5/32"},"index":"1"}]
-${flowfiltervlanpcp} "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"1","vtn-set-vlan-pcp-action":{"vlan-pcp":"6"}}],"index":"1"}]
+${flowconditiondata}
+... "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","destination-network":"10.0.0.5/32"},"index":"1"}]
+${flowfiltervlanpcp}
+... "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"1","vtn-set-vlan-pcp-action":{"vlan-pcp":"6"}}],"index":"1"}]
+
*** Test Cases ***
Start topology
Verify vlanpcp of vtn flowfilter
[Documentation] Verify vtn flowfilter actions in Flow Enties for vlanpcp
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF10} ${vlanpcp_action}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF10}
+ ... ${vlanpcp_action}
Remove vtn Flowfilter index
[Documentation] Remove a index of vtn flowfilter
Verify vlanpcp of vbr flowfilter
[Documentation] Verify actions in Flow Enties for vlanpcp
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF10} ${vlanpcp_action}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF10}
+ ... ${vlanpcp_action}
Remove vbr Flowfilter index
[Documentation] Remove a index of vbr flowfilter
*** Settings ***
-Documentation Test suite for VTN Manager PathPolicy using OF10
-Suite Setup Start PathSuiteVtnMaTestOF10
-Suite Teardown Stop PathSuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager PathPolicy using OF10
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start PathSuiteVtnMaTestOF10
+Suite Teardown Stop PathSuiteVtnMaTest
+
*** Variables ***
-${flowconditiondata} "vtn-flow-match":[{"vtn-ether-match":{"destination-address":"ba:bd:0f:e3:a8:c8","ether-type":"2048","source-address":"ca:9e:58:0c:1e:f0","vlan-id": "1"},"vtn-inet-match":{"source-network":"10.0.0.1/32","protocol":1,"destination-network":"10.0.0.2/32"},"index":"1"}]
-${pathmapdata} {"input":{"tenant-name":"Tenant_path","path-map-list":[{"condition":"flowcond_path","policy":"1","index": "1","idle-timeout":"300","hard-timeout":"0"}]}}
-${pathpolicydata} {"input":{"operation":"SET","id": "1","default-cost": "10000","vtn-path-cost": [{"port-desc":"openflow:1,3,s1-eth3","cost":"1000"},{"port-desc":"openflow:4,2,s4-eth2","cost":"1000"},{"port-desc":"openflow:3,3,s3-eth3","cost":"100000"}]}}
+${flowconditiondata}
+... "vtn-flow-match":[{"vtn-ether-match":{"destination-address":"ba:bd:0f:e3:a8:c8","ether-type":"2048","source-address":"ca:9e:58:0c:1e:f0","vlan-id": "1"},"vtn-inet-match":{"source-network":"10.0.0.1/32","protocol":1,"destination-network":"10.0.0.2/32"},"index":"1"}]
+${pathmapdata}
+... {"input":{"tenant-name":"Tenant_path","path-map-list":[{"condition":"flowcond_path","policy":"1","index": "1","idle-timeout":"300","hard-timeout":"0"}]}}
+${pathpolicydata}
+... {"input":{"operation":"SET","id": "1","default-cost": "10000","vtn-path-cost": [{"port-desc":"openflow:1,3,s1-eth3","cost":"1000"},{"port-desc":"openflow:4,2,s4-eth2","cost":"1000"},{"port-desc":"openflow:3,3,s3-eth3","cost":"100000"}]}}
+
*** Test Cases ***
Check if switch1 detected
*** Settings ***
-Documentation Test suite for VTN Manager (OF10)
-Suite Setup Start SuiteVtnMa
-Suite Teardown Stop SuiteVtnMa
-Test Teardown Collect Debug Info
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager (OF10)
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMa
+Suite Teardown Stop SuiteVtnMa
+Test Teardown Collect Debug Info
+
*** Variables ***
-${start} sudo mn --controller=remote,ip=${ODL_SYSTEM_IP} --topo tree,2 --switch ovsk,protocols=OpenFlow10
+${start} sudo mn --controller=remote,ip=${ODL_SYSTEM_IP} --topo tree,2 --switch ovsk,protocols=OpenFlow10
*** Settings ***
-Documentation Test suite for VTN Manager using OF13
-Suite Setup Start SuiteVtnMaTest
-Suite Teardown Stop SuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager using OF13
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMaTest
+Suite Teardown Stop SuiteVtnMaTest
+
*** Variables ***
-${flowconditiondata} "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","protocol":1,"destination-network":"10.0.0.3/32"},"index":"1"}]
+${flowconditiondata}
+... "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","protocol":1,"destination-network":"10.0.0.3/32"},"index":"1"}]
+
*** Test Cases ***
Add a flowcondition in restconfig
*** Settings ***
-Documentation Test suite for VTN Manager using OF13
-Suite Setup Start SuiteVtnMaTest
-Suite Teardown Stop SuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager using OF13
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMaTest
+Suite Teardown Stop SuiteVtnMaTest
+
*** Test Cases ***
Check if switch1 detected
*** Settings ***
-Documentation Test suite for VTN Manager Data Flow using OF13
-Suite Setup Start SuiteVtnMaTest
-Suite Teardown Stop SuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager Data Flow using OF13
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMaTest
+Suite Teardown Stop SuiteVtnMaTest
+
*** Test Cases ***
Check if switch1 detected
*** Settings ***
-Documentation Test suite for VTN Manager using OF13
-Suite Setup Start SuiteVtnMaTest
-Suite Teardown Stop SuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
-Resource ../../../libraries/Utils.robot
+Documentation Test suite for VTN Manager using OF13
+
+Resource ../../../libraries/VtnMaKeywords.robot
+Resource ../../../libraries/Utils.robot
+
+Suite Setup Start SuiteVtnMaTest
+Suite Teardown Stop SuiteVtnMaTest
+
*** Variables ***
-${flowconditiondata} "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","destination-network":"10.0.0.3/32"},"index":"1"}]
-${flowfilterInetdata} "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"192.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"192.0.0.2/32"}}],"index": "1"}]
-${flowfilterInetdropdata} "vtn-flow-filter":[{"condition":"cond_1","vtn-drop-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.2/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.4/32"}}],"index": "1"}]
-${flowfilterIcmpCodedata} "vtn-flow-filter": [{"condition": "cond_1","index": "1", "vtn-pass-filter": {}, "vtn-flow-action": [{ "order": "1", "vtn-set-icmp-code-action":{"code": "1"}},{"order": "2","vtn-set-icmp-type-action": {"type": "3"}}]}]
-${flowfilterTpsrcTpdstdata} "vtn-flow-filter": [{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-port-src-action": {"port": "5"}},{"order": "2","vtn-set-port-dst-action": {"port": "10"}}],"index": "1"}]
-${flowfilterDscpdata} "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-inet-dscp-action": {"dscp":"32"}}],"index":"1"}]
-${flowfilterdlsrc} "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-dl-src-action": {"address":"00:00:00:00:00:11"}}],"index":"1"}]
-${flowfiltervlanpcp} "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"3","vtn-set-icmp-code-action":{"code":"1"}},{"order":"4","vtn-set-vlan-pcp-action":{"vlan-pcp":"3"}}],"index":"1"}]
+${flowconditiondata}
+... "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","destination-network":"10.0.0.3/32"},"index":"1"}]
+${flowfilterInetdata}
+... "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"192.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"192.0.0.2/32"}}],"index": "1"}]
+${flowfilterInetdropdata}
+... "vtn-flow-filter":[{"condition":"cond_1","vtn-drop-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.2/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.4/32"}}],"index": "1"}]
+${flowfilterIcmpCodedata}
+... "vtn-flow-filter": [{"condition": "cond_1","index": "1", "vtn-pass-filter": {}, "vtn-flow-action": [{ "order": "1", "vtn-set-icmp-code-action":{"code": "1"}},{"order": "2","vtn-set-icmp-type-action": {"type": "3"}}]}]
+${flowfilterTpsrcTpdstdata}
+... "vtn-flow-filter": [{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-port-src-action": {"port": "5"}},{"order": "2","vtn-set-port-dst-action": {"port": "10"}}],"index": "1"}]
+${flowfilterDscpdata}
+... "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-inet-dscp-action": {"dscp":"32"}}],"index":"1"}]
+${flowfilterdlsrc}
+... "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-dl-src-action": {"address":"00:00:00:00:00:11"}}],"index":"1"}]
+${flowfiltervlanpcp}
+... "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"3","vtn-set-icmp-code-action":{"code":"1"}},{"order":"4","vtn-set-vlan-pcp-action":{"vlan-pcp":"3"}}],"index":"1"}]
+
*** Test Cases ***
Check if switch1 detected
Verify inet4src and inet4dst of vtn flowfilter
[Documentation] Verify vtn flowfilter actions in Flow Enties for inet4src and inet4dst
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF13} @{inet_action}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF13}
+ ... @{inet_action}
[Teardown] Run Keywords Report_Failure_Due_To_Bug 6643
... AND Collect Debug Info
Verify inet4src and inet4dst of vbr flowfilter
[Documentation] Verify actions in Flow Enties for inet4src and inet4dst
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF13} @{inet_action}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF13}
+ ... @{inet_action}
Remove vbr Flowfilter index
[Documentation] Remove a index of vbr flowfilter
Verify inet4src and inet4dst of vbrif flowfilter
[Documentation] Verify actions in Flow Enties for inet4src and inet4dst
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF13} @{inet_action}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF13}
+ ... @{inet_action}
Remove vbrif Flowfilter index
[Documentation] Remove a index of vbrif flowfilter
Verify icmp action for vtn flowfilter
[Documentation] Verify actions in Flow Enties for icmp code and type
[Tags] exclude
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF13} @{icmp_action}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF13}
+ ... @{icmp_action}
Remove vtn Flowfilter index which has ICMP
[Documentation] Remove a index of vtn flowfilter which have ICMP
Verify icmp action for vbr flowfilter
[Documentation] Verify actions in Flow Enties for icmp code and type
[Tags] exclude
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF13} @{icmp_action}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF13}
+ ... @{icmp_action}
Remove vbr Flowfilter index which has ICMP
[Documentation] Remove a index of vbr flowfilter which have ICMP
Verify icmp action for vbrif flowfilter
[Documentation] Verify actions in Flow Enties for icmp code and type
[Tags] exclude
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF13} @{icmp_action}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF13}
+ ... @{icmp_action}
Remove vbrif Flowfilter index which has ICMP
[Documentation] Remove a index of vbrif flowfilter which have ICMP
*** Settings ***
-Documentation Test suite for VTN Manager using OF13
-Suite Setup Start SuiteVtnMaTest
-Suite Teardown Stop SuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager using OF13
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMaTest
+Suite Teardown Stop SuiteVtnMaTest
+
*** Variables ***
-${flowconditiondata} "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.3/32","destination-network":"10.0.0.1/32"},"index":"1"}]
-${flowfilterInetdata} "output": "true", "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"192.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"192.0.0.2/32"}}],"index": "1"}]
-${flowfilterInetdropdata} "output": "true", "vtn-flow-filter":[{"condition":"cond_1","vtn-drop-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.2/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.4/32"}}],"index": "1"}]
-${flowfilterIcmpCodedata} "output": "true", "vtn-flow-filter": [{"condition": "cond_1","index": "1", "vtn-pass-filter": {}, "vtn-flow-action": [{ "order": "1", "vtn-set-icmp-code-action":{"code": "1"}},{"order": "2","vtn-set-icmp-type-action": {"type": "3"}}]}]
-${flowfilterTpsrcTpdstdata} "output": "true", "vtn-flow-filter": [{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-port-src-action": {"port": "5"}},{"order": "2","vtn-set-port-dst-action": {"port": "10"}}],"index": "1"}]
-${flowfilterDscpdata} "output": "true", "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-inet-dscp-action": {"dscp":"32"}}],"index":"1"}]
-${flowfiltervlanpcp} "output": "true", "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"3","vtn-set-icmp-code-action":{"code":"1"}},{"order":"4","vtn-set-vlan-pcp-action":{"vlan-pcp":"3"}}],"index":"1"}]
+${flowconditiondata}
+... "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.3/32","destination-network":"10.0.0.1/32"},"index":"1"}]
+${flowfilterInetdata}
+... "output": "true", "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"192.0.0.1/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"192.0.0.2/32"}}],"index": "1"}]
+${flowfilterInetdropdata}
+... "output": "true", "vtn-flow-filter":[{"condition":"cond_1","vtn-drop-filter":{},"vtn-flow-action":[{"order": "1","vtn-set-inet-src-action":{"ipv4-address":"10.0.0.2/32"}},{"order": "2","vtn-set-inet-dst-action":{"ipv4-address":"10.0.0.4/32"}}],"index": "1"}]
+${flowfilterIcmpCodedata}
+... "output": "true", "vtn-flow-filter": [{"condition": "cond_1","index": "1", "vtn-pass-filter": {}, "vtn-flow-action": [{ "order": "1", "vtn-set-icmp-code-action":{"code": "1"}},{"order": "2","vtn-set-icmp-type-action": {"type": "3"}}]}]
+${flowfilterTpsrcTpdstdata}
+... "output": "true", "vtn-flow-filter": [{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-port-src-action": {"port": "5"}},{"order": "2","vtn-set-port-dst-action": {"port": "10"}}],"index": "1"}]
+${flowfilterDscpdata}
+... "output": "true", "vtn-flow-filter":[{"condition": "cond_1","vtn-pass-filter": {},"vtn-flow-action": [{"order": "1","vtn-set-inet-dscp-action": {"dscp":"32"}}],"index":"1"}]
+${flowfiltervlanpcp}
+... "output": "true", "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"3","vtn-set-icmp-code-action":{"code":"1"}},{"order":"4","vtn-set-vlan-pcp-action":{"vlan-pcp":"3"}}],"index":"1"}]
+
*** Test Cases ***
Check if switch1 detected
Verify inet4src and inet4dst of vbrif flowfilter
[Documentation] Verify actions in Flow Enties for inet4src and inet4dst
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_OUT_DUMPFLOWS_OF13} @{inet_action}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_OUT_DUMPFLOWS_OF13}
+ ... @{inet_action}
Remove vbrif Flowfilter index
[Documentation] Remove a index of vbrif flowfilter
*** Settings ***
-Documentation Test suite for VTN Manager using OF13
-Suite Setup Start SuiteVtnMaTest
-Suite Teardown Stop SuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager using OF13
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMaTest
+Suite Teardown Stop SuiteVtnMaTest
+
*** Test Cases ***
Check if switch1 detected
Verify FlowMacAddress
[Documentation] Checking Flows on switch
- [Tags] Switch
+ [Tags] switch
BuiltIn.Wait_Until_Keyword_Succeeds 20 1 Verify FlowMacAddress h2 h4 OF13
Remove Portmap for If1
*** Settings ***
-Documentation Test suite for VTN Manager using OF13
-Suite Setup Start SuiteVtnMaTest
-Suite Teardown Stop SuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager using OF13
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMaTest
+Suite Teardown Stop SuiteVtnMaTest
+
*** Variables ***
-${flowconditiondata} "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","destination-network":"10.0.0.5/32"},"index":"1"}]
-${flowfiltervlanpcp} "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"1","vtn-set-vlan-pcp-action":{"vlan-pcp":"6"}}],"index":"1"}]
+${flowconditiondata}
+... "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","destination-network":"10.0.0.5/32"},"index":"1"}]
+${flowfiltervlanpcp}
+... "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"1","vtn-set-vlan-pcp-action":{"vlan-pcp":"6"}}],"index":"1"}]
+
*** Test Cases ***
Start topology
Verify vlanpcp of vbrif flowfilter
[Documentation] Verify actions in Flow Enties for vlanpcp
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF13} ${vlanpcp_actions}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF13}
+ ... ${vlanpcp_actions}
Remove vbrif Flowfilter index
[Documentation] Remove a index of vbrif flowfilter
*** Settings ***
-Documentation Test suite for VTN Manager using OF13
-Suite Setup Start SuiteVtnMaTest
-Suite Teardown Stop SuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager using OF13
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMaTest
+Suite Teardown Stop SuiteVtnMaTest
+
*** Variables ***
-${flowconditiondata} "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","destination-network":"10.0.0.5/32"},"index":"1"}]
-${flowfiltervlanpcp} "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"1","vtn-set-vlan-pcp-action":{"vlan-pcp":"6"}}],"index":"1"}]
+${flowconditiondata}
+... "vtn-flow-match":[{"vtn-inet-match":{"source-network":"10.0.0.1/32","destination-network":"10.0.0.5/32"},"index":"1"}]
+${flowfiltervlanpcp}
+... "vtn-flow-filter":[{"condition":"cond_1","vtn-pass-filter":{},"vtn-flow-action":[{"order":"1","vtn-set-vlan-pcp-action":{"vlan-pcp":"6"}}],"index":"1"}]
+
*** Test Cases ***
Start topology
Verify vlanpcp of vtn flowfilter
[Documentation] Verify vtn flowfilter actions in Flow Enties for vlanpcp
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF13} ${vlanpcp_actions}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF13}
+ ... ${vlanpcp_actions}
Remove vtn Flowfilter index
[Documentation] Remove a index of vtn flowfilter
Verify vlanpcp of vbr flowfilter
[Documentation] Verify actions in Flow Enties for vlanpcp
- Wait_Until_Keyword_Succeeds 20s 1s Verify Flow Entries for Flowfilter ${FF_DUMPFLOWS_OF13} ${vlanpcp_actions}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify Flow Entries for Flowfilter
+ ... ${FF_DUMPFLOWS_OF13}
+ ... ${vlanpcp_actions}
Remove vbr Flowfilter index
[Documentation] Remove a index of vbr flowfilter
*** Settings ***
-Documentation Test suite for VTN Manager Data Flows using OF13
-Suite Setup Start SuiteVtnMaTest
-Suite Teardown Stop SuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager Data Flows using OF13
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMaTest
+Suite Teardown Stop SuiteVtnMaTest
+
*** Test Cases ***
Start topology
*** Settings ***
-Documentation Test suite for VTN Manager PathPolicy using OF13
-Suite Setup Start PathSuiteVtnMaTest
-Suite Teardown Stop PathSuiteVtnMaTest
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager PathPolicy using OF13
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start PathSuiteVtnMaTest
+Suite Teardown Stop PathSuiteVtnMaTest
+
*** Variables ***
-${flowconditiondata} "vtn-flow-match":[{"vtn-ether-match":{"destination-address":"ba:bd:0f:e3:a8:c8","ether-type":"2048","source-address":"ca:9e:58:0c:1e:f0","vlan-id": "1"},"vtn-inet-match":{"source-network":"10.0.0.1/32","protocol":1,"destination-network":"10.0.0.2/32"},"index":"1"}]
-${pathmapdata} {"input":{"tenant-name":"Tenant_path","path-map-list":[{"condition":"flowcond_path","policy":"1","index": "1","idle-timeout":"300","hard-timeout":"0"}]}}
-${pathpolicydata} {"input":{"operation":"SET","id": "1","default-cost": "10000","vtn-path-cost": [{"port-desc":"openflow:1,3,s1-eth3","cost":"1000"},{"port-desc":"openflow:4,2,s4-eth2","cost":"1000"},{"port-desc":"openflow:3,3,s3-eth3","cost":"100000"}]}}
+${flowconditiondata}
+... "vtn-flow-match":[{"vtn-ether-match":{"destination-address":"ba:bd:0f:e3:a8:c8","ether-type":"2048","source-address":"ca:9e:58:0c:1e:f0","vlan-id": "1"},"vtn-inet-match":{"source-network":"10.0.0.1/32","protocol":1,"destination-network":"10.0.0.2/32"},"index":"1"}]
+${pathmapdata}
+... {"input":{"tenant-name":"Tenant_path","path-map-list":[{"condition":"flowcond_path","policy":"1","index": "1","idle-timeout":"300","hard-timeout":"0"}]}}
+${pathpolicydata}
+... {"input":{"operation":"SET","id": "1","default-cost": "10000","vtn-path-cost": [{"port-desc":"openflow:1,3,s1-eth3","cost":"1000"},{"port-desc":"openflow:4,2,s4-eth2","cost":"1000"},{"port-desc":"openflow:3,3,s3-eth3","cost":"100000"}]}}
+
*** Test Cases ***
Check if switch1 detected
Verify flowEntryBeforePathPolicy
[Documentation] Checking Flows on switch s1 and s3
- Wait_Until_Keyword_Succeeds 20s 1s Verify flowEntryPathPolicy OF13 ${in_port} ${out_before_pathpolicy}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify flowEntryPathPolicy
+ ... OF13
+ ... ${in_port}
+ ... ${out_before_pathpolicy}
Add a flowcondition flowcond_path
[Documentation] Create a flowcondition flowcond_path
Verify flowEntryAfterPathPolicy
[Documentation] Checking Flows on switch s1 and s3
- Wait_Until_Keyword_Succeeds 20s 1s Verify flowEntryPathPolicy OF13 ${in_port} ${out_after_pathpolicy}
+ Wait_Until_Keyword_Succeeds
+ ... 20s
+ ... 1s
+ ... Verify flowEntryPathPolicy
+ ... OF13
+ ... ${in_port}
+ ... ${out_after_pathpolicy}
Delete a pathmap
[Documentation] Delete a pathmap
*** Settings ***
-Documentation Test suite for VTN Manager (OF13)
-Suite Setup Start SuiteVtnMa
-Suite Teardown Stop SuiteVtnMa
-Test Teardown Collect Debug Info
-Resource ../../../libraries/VtnMaKeywords.robot
+Documentation Test suite for VTN Manager (OF13)
+
+Resource ../../../libraries/VtnMaKeywords.robot
+
+Suite Setup Start SuiteVtnMa
+Suite Teardown Stop SuiteVtnMa
+Test Teardown Collect Debug Info
+
*** Variables ***
-${start} sudo mn --controller=remote,ip=${ODL_SYSTEM_IP} --topo tree,2 --switch ovsk,protocols=OpenFlow13
+${start} sudo mn --controller=remote,ip=${ODL_SYSTEM_IP} --topo tree,2 --switch ovsk,protocols=OpenFlow13
*** Settings ***
-Documentation Suite for testing performance of yang-model-validator utility.
+Documentation Suite for testing performance of yang-model-validator utility.
...
-... Copyright (c) 2016,2017 Cisco Systems, Inc. and others. All rights reserved.
+... Copyright (c) 2016,2017 Cisco Systems, Inc. and others. All rights reserved.
...
-... This program and the accompanying materials are made available under the
-... terms of the Eclipse Public License v1.0 which accompanies this distribution,
-... and is available at http://www.eclipse.org/legal/epl-v10.html
+... This program and the accompanying materials are made available under the
+... terms of the Eclipse Public License v1.0 which accompanies this distribution,
+... and is available at http://www.eclipse.org/legal/epl-v10.html
...
...
-... This suite executes the yang-model-validator tool and will turn up any major
-... breakages in that tool. Since yangtools is now a release integrated project
-... and the version of the tool is static and unchanging per release, this suite
-... does not need to run very often.
+... This suite executes the yang-model-validator tool and will turn up any major
+... breakages in that tool. Since yangtools is now a release integrated project
+... and the version of the tool is static and unchanging per release, this suite
+... does not need to run very often.
...
-... Two main things to check for this suite and the yang-model-validator tool:
+... Two main things to check for this suite and the yang-model-validator tool:
...
-... 1) Does it work against the updated yang model repos (see YangCollection.robot)
-... and report valid issues in those models. When the models are updated, does
-... the tool still work as expected.
+... 1) Does it work against the updated yang model repos (see YangCollection.robot)
+... and report valid issues in those models. When the models are updated, does
+... the tool still work as expected.
...
-... 2) What does the runtime of the tool look like as new versions of the tool are
-... released? Does validation take significanltly shorter (an improvement) or
-... longer (a regression)?
+... 2) What does the runtime of the tool look like as new versions of the tool are
+... released? Does validation take significanltly shorter (an improvement) or
+... longer (a regression)?
...
-... The set of Yang modules is large and fixed to specific commits from their relevant
-... repos. That fixed point can be updated periodically in the YangCollection.robot
-... library. Just be sure there is an apples to apples comparision (same exact repo
-... state) between yangtools releases, so #2 above is known.
+... The set of Yang modules is large and fixed to specific commits from their relevant
+... repos. That fixed point can be updated periodically in the YangCollection.robot
+... library. Just be sure there is an apples to apples comparision (same exact repo
+... state) between yangtools releases, so #2 above is known.
...
-Suite Setup Setup_Suite
-Test Setup SetupUtils.Setup_Test_With_Logging_And_Fast_Failing
-Test Teardown Teardown_Test
-Default Tags 1node yang-model-validator critical
-Library RequestsLibrary
-Library SSHLibrary
-Library String
-Resource ${CURDIR}/../../../libraries/CompareStream.robot
-Resource ${CURDIR}/../../../libraries/NexusKeywords.robot
-Resource ${CURDIR}/../../../libraries/RemoteBash.robot
-Resource ${CURDIR}/../../../libraries/SetupUtils.robot
-Resource ${CURDIR}/../../../libraries/SSHKeywords.robot
-Resource ${CURDIR}/../../../libraries/TemplatedRequests.robot
-Resource ${CURDIR}/../../../libraries/YangCollection.robot
+
+Library RequestsLibrary
+Library SSHLibrary
+Library String
+Resource ${CURDIR}/../../../libraries/CompareStream.robot
+Resource ${CURDIR}/../../../libraries/NexusKeywords.robot
+Resource ${CURDIR}/../../../libraries/RemoteBash.robot
+Resource ${CURDIR}/../../../libraries/SetupUtils.robot
+Resource ${CURDIR}/../../../libraries/SSHKeywords.robot
+Resource ${CURDIR}/../../../libraries/TemplatedRequests.robot
+Resource ${CURDIR}/../../../libraries/YangCollection.robot
+
+Suite Setup Setup_Suite
+Test Setup SetupUtils.Setup_Test_With_Logging_And_Fast_Failing
+Test Teardown Teardown_Test
+
+Default Tags 1node yang-model-validator critical
+
*** Variables ***
-${TEST_TOOL_NAME} yang-model-validator
+${TEST_TOOL_NAME} yang-model-validator
${EXPLICIT_YANG_SYSTEM_TEST_URL} ${EMPTY}
+
*** Test Cases ***
Kill_Odl
[Documentation] The ODL instance consumes resources, kill it.
${yang_path_option} = Get_Yang_Model_Validator_Path_Option ${YANG_MODEL_PATHS}
FOR ${yang_file} IN @{yang_files_to_validate}
Log To Console working on: ${yang_file}
- ${logfile} = NexusKeywords.Install_And_Start_Java_Artifact component=yangtools artifact=${TEST_TOOL_NAME}
- ... suffix=jar-with-dependencies tool_options=${yang_path_option} -- ${yang_file} explicit_url=${EXPLICIT_YANG_SYSTEM_TEST_URL}
+ ${logfile} = NexusKeywords.Install_And_Start_Java_Artifact
+ ... component=yangtools
+ ... artifact=${TEST_TOOL_NAME}
+ ... suffix=jar-with-dependencies
+ ... tool_options=${yang_path_option} -- ${yang_file}
+ ... explicit_url=${EXPLICIT_YANG_SYSTEM_TEST_URL}
Wait_Until_Utility_Finishes
Check_Return_Code
END
[Teardown] BuiltIn.Run_Keyword_And_Ignore_Error SSHLibrary.Get_File ${logfile}
+
*** Keywords ***
Setup_Suite
[Documentation] Activate dependency Resources, create SSH connection.
SetupUtils.Teardown_Test_Show_Bugs_And_Start_Fast_Failing_If_Test_Failed
Get_Recursive_Dirs
- [Arguments] ${root}=.
[Documentation] Return list of sub-directories discovered recursively under ${root} relative to
... the current working directory for a new shell spawned over the active SSH session.
... This implementation returns absolute paths as that is easier.
+ [Arguments] ${root}=.
${depth_1} = SSHLibrary.List_Directories_In_Directory path=${root} absolute=True
${subtrees} = BuiltIn.Create_List
FOR ${subdir} IN @{depth_1}
Collections.Append_To_List ${subtrees} ${tree}
END
${flat_list} = Collections.Combine_Lists ${depth_1} @{subtrees}
- [Return] ${flat_list}
+ RETURN ${flat_list}
Get_Yang_Files_From_Dirs
- [Arguments] ${dirs_to_process}
[Documentation] Return list of yang files from provided directories
+ [Arguments] ${dirs_to_process}
${collected_yang_files} = BuiltIn.Create_List
FOR ${dir} IN @{dirs_to_process}
${yang_files_in_dir} = SSHLibrary.List_Files_In_Directory path=${dir} pattern=*.yang absolute=True
${collected_yang_files} = Collections.Combine_Lists ${collected_yang_files} ${yang_files_in_dir}
END
- [Return] ${collected_yang_files}
+ RETURN ${collected_yang_files}
Get_Yang_Model_Validator_Path_Option
- [Arguments] ${yang_paths}
[Documentation] Return the path option for yang-model-validator from the provided list of YANG paths.
+ [Arguments] ${yang_paths}
${separator} = CompareStream.Set_Variable_If_At_Most_Sulfur : ${SPACE}
${path_option} = Evaluate "${separator}".join(${yang_paths})
${path_option} = Catenate SEPARATOR=${SPACE} --path ${path_option}
- [Return] ${path_option}
+ RETURN ${path_option}
Wait_Until_Utility_Finishes
[Documentation] Repeatedly send endline to keep session alive; pass on prompt, fail on timeout.