adding fabric xconnect si checks in siab tests
Change-Id: I4aa3c1c1c107a78eb37c13b2e14a4bad20cd2193
diff --git a/src/test/cord-api/Framework/Subscriber.robot b/src/test/cord-api/Framework/Subscriber.robot
index bf6939a..31a158a 100644
--- a/src/test/cord-api/Framework/Subscriber.robot
+++ b/src/test/cord-api/Framework/Subscriber.robot
@@ -125,3 +125,30 @@
Run kubectl -n voltha exec ${RG_CONTAINER} -- dhclient -nw
Run kubectl -n voltha exec ${RG_CONTAINER} -- dhclient -nw -r
Run kubectl -n voltha exec ${RG_CONTAINER} -- dhclient -nw
+
+Validate Subscriber Service Chain
+ [Arguments] ${serial_no} ${expected}=True
+ ${resp}= CORD Get ${VOLT_SUBSCRIBER}
+ ${jsondata}= To Json ${resp.content}
+ Log ${jsondata}
+ ${length}= Get Length ${jsondata['items']}
+ : FOR ${INDEX} IN RANGE 0 ${length}
+ \ ${value}= Get From List ${jsondata['items']} ${INDEX}
+ \ ${sl}= Get From Dictionary ${value} subscribed_links_ids
+ \ ${result} ${slinks}= Run Keyword And Ignore Error Get From List ${sl} 0
+ \ ${sn}= Get From Dictionary ${value} onu_device
+ \ Run Keyword If '${sn}' == '${serial_no}' Exit For Loop
+ Run Keyword If '${expected}' == 'True' Should Not Be Empty ${slinks} ELSE Should Be Empty ${sl}
+
+Validate Fabric CrossConnect SI
+ [Arguments] ${stag} ${expected}=${EMPTY}
+ ${resp}= CORD Get ${FABRIC_CROSSCONNECT_SERVICEINSTANCES}
+ ${jsondata}= To Json ${resp.content}
+ Log ${jsondata}
+ ${length}= Get Length ${jsondata['items']}
+ @{tags}= Create List
+ : FOR ${INDEX} IN RANGE 0 ${length}
+ \ ${value}= Get From List ${jsondata['items']} ${INDEX}
+ \ ${tag}= Get From Dictionary ${value} s_tag
+ \ Append To List ${tags} ${tag}
+ Run Keyword If '${expected}' != '${EMPTY}' List Should Contain Value ${tags} ${stag} ELSE List Should Not Contain Value ${tags} ${stag}
diff --git a/src/test/cord-api/Properties/RestApiProperties.py b/src/test/cord-api/Properties/RestApiProperties.py
index 74264b1..1046cbf 100644
--- a/src/test/cord-api/Properties/RestApiProperties.py
+++ b/src/test/cord-api/Properties/RestApiProperties.py
@@ -72,3 +72,4 @@
ATT_SERVICE = '/xosapi/v1/att-workflow-driver/attworkflowdriverservices'
ATT_WHITELIST = '/xosapi/v1/att-workflow-driver/attworkflowdriverwhitelistentries'
ATT_SERVICEINSTANCES = '/xosapi/v1/att-workflow-driver/attworkflowdriverserviceinstances'
+FABRIC_CROSSCONNECT_SERVICEINSTANCES='/xosapi/v1/fabric-crossconnect/fabriccrossconnectserviceinstances'
diff --git a/src/test/cord-api/Tests/WorkflowValidations/SIAB.robot b/src/test/cord-api/Tests/WorkflowValidations/SIAB.robot
index fc0f15e..ffd4968 100644
--- a/src/test/cord-api/Tests/WorkflowValidations/SIAB.robot
+++ b/src/test/cord-api/Tests/WorkflowValidations/SIAB.robot
@@ -15,7 +15,7 @@
*** Settings ***
Documentation Test various E2E conditions for seba-in-a-box
Suite Setup Setup
-Suite Teardown Delete All Sessions
+Suite Teardown Teardown
Test Setup Setup Test
Test Teardown Test Cleanup
Library Collections
@@ -48,6 +48,7 @@
[Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
... Configure whitelist with correct ONU location
... Validate successful authentication/DHCP/E2E ping
+ [Setup] None
[Tags] stable latest
Wait Until Keyword Succeeds 300s 15s Validate ONU States ACTIVE ENABLED ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING ${onu_device}
@@ -55,6 +56,8 @@
Validate Authentication True eth0 wpa_supplicant.conf ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Service Chain ${onu_device} 1
+ Wait Until Keyword Succeeds 60s 2s Validate Fabric CrossConnect SI ${s_tag} True
Validate DHCP and Ping True True eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
${subscriber_id}= Retrieve Subscriber ${c_tag}
CORD Put ${VOLT_SUBSCRIBER} {"status":"disabled"} ${subscriber_id}
@@ -79,13 +82,17 @@
Validate Authentication True eth0 wpa_supplicant.conf ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Service Chain ${onu_device} True
+ Wait Until Keyword Succeeds 60s 2s Validate Fabric CrossConnect SI ${s_tag} True
Validate DHCP and Ping True True eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Restart RG Pod
Remove Whitelist
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth ${onu_device}
Validate Authentication False eth0 wpa_supplicant.conf ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
- Validate DHCP and Ping False False eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Service Chain ${onu_device} False
+ Wait Until Keyword Succeeds 60s 2s Validate Fabric CrossConnect SI ${s_tag} False
+ Validate DHCP and Ping True False eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Restart RG Pod
Create Whitelist
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING ${onu_device}
@@ -93,6 +100,8 @@
Validate Authentication True eth0 wpa_supplicant.conf ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Service Chain ${onu_device} True
+ Wait Until Keyword Succeeds 60s 2s Validate Fabric CrossConnect SI ${s_tag} True
Validate DHCP and Ping True True eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
ONU in Correct Location -> ONU in Wrong Location -> ONU in Correct Location
@@ -110,11 +119,15 @@
Validate Authentication True eth0 wpa_supplicant.conf ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Service Chain ${onu_device} True
+ Wait Until Keyword Succeeds 60s 2s Validate Fabric CrossConnect SI ${s_tag} True
Validate DHCP and Ping True True eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Restart RG Pod
Update Whitelist with Wrong Location
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Service Chain ${onu_device} False
+ Wait Until Keyword Succeeds 60s 2s Validate Fabric CrossConnect SI ${s_tag} False
Validate Authentication False eth0 wpa_supplicant.conf ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Validate DHCP and Ping False False eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Restart RG Pod
@@ -124,6 +137,8 @@
Validate Authentication True eth0 wpa_supplicant.conf ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Service Chain ${onu_device} True
+ Wait Until Keyword Succeeds 60s 2s Validate Fabric CrossConnect SI ${s_tag} True
Validate DHCP and Ping True True eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
ONU in Correct Location -> Remove Subscriber -> Create Subscriber
@@ -141,6 +156,8 @@
Validate Authentication True eth0 wpa_supplicant.conf ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Service Chain ${onu_device} True
+ Wait Until Keyword Succeeds 60s 2s Validate Fabric CrossConnect SI ${s_tag} True
Validate DHCP and Ping True True eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Restart RG Pod
Remove Subscriber
@@ -152,6 +169,8 @@
Validate Authentication True eth0 wpa_supplicant.conf ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Service Chain ${onu_device} True
+ Wait Until Keyword Succeeds 60s 2s Validate Fabric CrossConnect SI ${s_tag} True
Validate DHCP and Ping True True eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
ONU in Correct Location (Skip Subscriber Provisioning) -> Provision Subscriber
@@ -173,6 +192,8 @@
Validate Authentication True eth0 wpa_supplicant.conf ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Service Chain ${onu_device} True
+ Wait Until Keyword Succeeds 60s 2s Validate Fabric CrossConnect SI ${s_tag} True
Validate DHCP and Ping True True eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
ONU in Correct Location (Skip Authentication)
@@ -183,6 +204,8 @@
Wait Until Keyword Succeeds 300s 15s Validate ONU States ACTIVE ENABLED ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Service Chain ${onu_device} False
+ Wait Until Keyword Succeeds 60s 2s Validate Fabric CrossConnect SI ${s_tag} False
Validate DHCP and Ping True False eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
ONU not in Whitelist
@@ -197,6 +220,8 @@
Validate Authentication False eth0 wpa_supplicant.conf ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Service Chain ${onu_device} False
+ Wait Until Keyword Succeeds 60s 2s Validate Fabric CrossConnect SI ${s_tag} False
Validate DHCP and Ping False False eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
ONU not in Whitelist (Skip Subscriber Provisioning) -> Add ONU to Whitelist -> Provision Subscriber
@@ -227,6 +252,8 @@
Validate Authentication True eth0 wpa_supplicant.conf ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Service Chain ${onu_device} True
+ Wait Until Keyword Succeeds 60s 2s Validate Fabric CrossConnect SI ${s_tag} True
Validate DHCP and Ping True True eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
ONU in Wrong Location
@@ -241,6 +268,8 @@
Validate Authentication False eth0 wpa_supplicant.conf ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Service Chain ${onu_device} False
+ Wait Until Keyword Succeeds 60s 2s Validate Fabric CrossConnect SI ${s_tag} False
Validate DHCP and Ping False False eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
ONU in Wrong Location (Skip Subscriber Provisioning) -> ONU in Correct Location -> Provision Subscriber
@@ -272,6 +301,8 @@
Validate Authentication True eth0 wpa_supplicant.conf ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED ${onu_device}
Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Service Chain ${onu_device} True
+ Wait Until Keyword Succeeds 60s 2s Validate Fabric CrossConnect SI ${s_tag} True
Validate DHCP and Ping True True eth0 ${s_tag} ${c_tag} ${dst_host_ip} ${kube_node_ip} ${local_user} ${local_pass} K8S ${RG_CONTAINER}
*** Keywords ***
@@ -315,22 +346,29 @@
${datetime}= Get Current Datetime On Kubernetes Node localhost ${local_user} ${local_pass}
Set Suite Variable ${datetime}
+Teardown
+ Setup Test
+ Delete All Sessions
+
Setup Test
${datetime}= Get Current Datetime On Kubernetes Node ${kube_node_ip} ${local_user} ${local_pass}
Set Suite Variable ${datetime}
+ Wait Until Keyword Succeeds 60s 2s Create Whitelist
+ Wait Until Keyword Succeeds 60s 2s Create Subscriber
+ Wait Until Keyword Succeeds 60s 2s Create VOLT
+ Wait Until Keyword Succeeds 120s 2s Validate ATT Workflow Driver SI ENABLED AWAITING ${onu_device}
+ Wait Until Keyword Succeeds 60s 15s Validate ONU States ACTIVE ENABLED ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth ${onu_device}
${RG_CONTAINER}= Run kubectl -n voltha get pod|grep "^rg-"|cut -d' ' -f1
Set Suite Variable ${RG_CONTAINER}
Test Cleanup
[Documentation] Restore back to initial state per each test
Log Kubernetes Containers Logs Since Time ${datetime} ${container_list}
+ Wait Until Keyword Succeeds 60s 2s Clean Up Objects ${VOLT_SUBSCRIBER}
+ Wait Until Keyword Succeeds 60s 2s Clean Up Objects ${VOLT_DEVICE}
+ Wait Until Keyword Succeeds 60s 2s Clean Up Objects ${ATT_WHITELIST}
Restart RG Pod
- ${status} ${whitelist_id}= Run Keyword And Ignore Error Retrieve Whitelist Entry ${onu_device}
- Run Keyword And Ignore Error CORD Put ${ATT_WHITELIST} {"pon_port_id": 1 } ${whitelist_id}
- Run Keyword And Ignore Error CORD Put ${ATT_SERVICEINSTANCES} {"authentication_state": "AWAITING"} ${att_si_id}
- Run Keyword And Ignore Error CORD Put ${ATT_SERVICEINSTANCES} {"onu_state": "ENABLED"} ${att_si_id}
- Run Keyword And Ignore Error Create Whitelist
- Run Keyword And Ignore Error Create Subscriber
Restart RG Pod
Run kubectl -n voltha delete pod ${RG_CONTAINER}
@@ -367,4 +405,3 @@
Update Whitelist with Correct Location
${whitelist_id}= Retrieve Whitelist Entry ${onu_device}
CORD Put ${ATT_WHITELIST} {"pon_port_id": ${onu_location} } ${whitelist_id}
-