Support running ATT workflow tests with k8s containers
Change-Id: I7c44daf9df6c79ebfde4f6816187a1f852e01a8f
diff --git a/src/test/cord-api/Framework/ATTWorkFlowDriver.robot b/src/test/cord-api/Framework/ATTWorkFlowDriver.robot
index a1d9e9b..d250590 100644
--- a/src/test/cord-api/Framework/ATTWorkFlowDriver.robot
+++ b/src/test/cord-api/Framework/ATTWorkFlowDriver.robot
@@ -70,3 +70,9 @@
[Documentation] Sends a DELETE to delete an att whitelist in XOS
${api_result}= restApi.ApiChameleonDelete ATT_WHITELIST ${id}
Should Be True ${api_result}
+
+Validate ATT Workflow Driver SI
+ [Arguments] ${expected_status} ${expected_auth_status} ${onu_device}
+ ${onu_state} ${authentication_status} Service Instance Status Check ${onu_device}
+ Should Be Equal ${onu_state} ${expected_status}
+ Should Be Equal ${authentication_status} ${expected_auth_status}
diff --git a/src/test/cord-api/Framework/DHCP.robot b/src/test/cord-api/Framework/DHCP.robot
index a8ddb7d..7c32565 100644
--- a/src/test/cord-api/Framework/DHCP.robot
+++ b/src/test/cord-api/Framework/DHCP.robot
@@ -20,20 +20,20 @@
*** Keywords ***
Send Dhclient Request
- [Arguments] ${iface} ${ip} ${user} ${pass}=${None} ${container_name}=${None}
+ [Arguments] ${iface} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None}
[Documentation] Executes a dhclient against a particular interface on the RG (src)
- ${result}= Login And Run Command On Remote System sudo dhclient -nw ${iface} ${ip} ${user} ${pass} ${container_name}
+ ${result}= Login And Run Command On Remote System dhclient -nw ${iface} ${ip} ${user} ${pass} ${container_type} ${container_name}
[Return] ${result}
Add Default Route to Dst Gateway
- [Arguments] ${src_gateway} ${dst_subnet} ${iface} ${ip} ${user} ${pass}=${None} ${container_name}=${None}
+ [Arguments] ${src_gateway} ${dst_subnet} ${iface} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None}
[Documentation] Adds an entry to the routing table on the RG (src)
- ${result}= Login And Run Command On Remote System sudo ip route add ${dst_subnet} via ${src_gateway} dev ${iface} ${ip} ${user} ${pass} ${container_name}
+ ${result}= Login And Run Command On Remote System ip route add ${dst_subnet} via ${src_gateway} dev ${iface} ${ip} ${user} ${pass} ${container_type} ${container_name}
[Return] ${result}
Check IPv4 Address on DHCP Client
- [Arguments] ${ip_should_exist} ${iface} ${ip} ${user} ${pass}=${None} ${container_name}=${None}
+ [Arguments] ${ip_should_exist} ${iface} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None}
[Documentation] Check if the sepcified interface has an IPv4 address assigned
- ${output}= Login And Run Command On Remote System ifconfig ${iface} ${ip} ${user} ${pass} ${container_name}
+ ${output}= Login And Run Command On Remote System ifconfig ${iface} ${ip} ${user} ${pass} ${container_type} ${container_name}
Run Keyword If '${ip_should_exist}' == 'True' Should Match Regexp ${output} \\b([0-9]{1,3}\\.){3}[0-9]{1,3}\\b
Run Keyword If '${ip_should_exist}' == 'False' Should Not Match Regexp ${output} \\b([0-9]{1,3}\\.){3}[0-9]{1,3}\\b
diff --git a/src/test/cord-api/Framework/Kubernetes.robot b/src/test/cord-api/Framework/Kubernetes.robot
index d284a77..a76fd4f 100644
--- a/src/test/cord-api/Framework/Kubernetes.robot
+++ b/src/test/cord-api/Framework/Kubernetes.robot
@@ -40,3 +40,14 @@
[Documentation] Verify the number of Kubernetes pods that are running in specified namespace is as expected
${rc} ${output}= Run And Return Rc And Output ${export_kubeconfig}; kubectl get pods -n ${namespace} | grep -i running | grep 1/1 | wc -l
Should Be Equal As Integers ${output} ${pod_num}
+
+Reinstall Voltha
+ Run ${export_kubeconfig}; helm delete --purge voltha
+ Wait Until Keyword Succeeds 60s 10s Helm Chart is Removed voltha
+ Wait Until Keyword Succeeds 120s 10s Kubernetes PODs in Namespace are Removed voltha
+ Run ${export_kubeconfig}; cd ${HELM_CHARTS_DIR}; helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com/
+ Run ${export_kubeconfig}; cd ${HELM_CHARTS_DIR}; helm dep up voltha
+ Run ${export_kubeconfig}; helm install -n voltha -f ${KUBERNETES_YAML} --set etcd-operator.customResources.createEtcdClusterCRD=false ${HELM_CHARTS_DIR}/voltha
+ Run ${export_kubeconfig}; helm upgrade -f ${KUBERNETES_YAML} --set etcd-operator.customResources.createEtcdClusterCRD=true voltha ${HELM_CHARTS_DIR}/voltha
+ Wait Until Keyword Succeeds 60s 10s Kubernetes PODs in Namespace are Running voltha ${VOLTHA_POD_NUM}
+ Sleep 10s
diff --git a/src/test/cord-api/Framework/ONU.robot b/src/test/cord-api/Framework/ONU.robot
index e00c9ea..15bcf8d 100644
--- a/src/test/cord-api/Framework/ONU.robot
+++ b/src/test/cord-api/Framework/ONU.robot
@@ -58,3 +58,9 @@
[Documentation] Sends a DELETE to delete an onu device in XOS
${api_result}= restApi.ApiChameleonDelete ONU_DEVICE ${id}
Should Be True ${api_result}
+
+Validate ONU States
+ [Arguments] ${expected_op_status} ${expected_admin_status} ${onu_device}
+ ${operational_status} ${admin_status} ONU Status Check ${onu_device}
+ Should Be Equal ${operational_status} ${expected_op_status}
+ Should Be Equal ${admin_status} ${expected_admin_status}
diff --git a/src/test/cord-api/Framework/Subscriber.robot b/src/test/cord-api/Framework/Subscriber.robot
index 78c8135..d74a263 100644
--- a/src/test/cord-api/Framework/Subscriber.robot
+++ b/src/test/cord-api/Framework/Subscriber.robot
@@ -18,6 +18,7 @@
Library SSHLibrary
Library restApi.py
Resource ../../Framework/utils/utils.robot
+Resource ../../Framework/DHCP.robot
*** Keywords ***
Subscriber Status Check
@@ -58,36 +59,62 @@
${api_result}= restApi.ApiChameleonDelete VOLT_SUBSCRIBER ${id}
Should Be True ${api_result}
+Validate Subscriber Status
+ [Arguments] ${exepected_status} ${onu_device}
+ ${status} Subscriber Status Check ${onu_device}
+ Should Be Equal ${status} ${exepected_status}
+
Send EAPOL Message
- [Arguments] ${iface} ${conf_file} ${ip} ${user} ${pass}=${None} ${container_name}=${None}
+ [Arguments] ${iface} ${conf_file} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None}
[Documentation] Executes a particular auth request on the RG via wpa_supplicant client. Requested packet should exist on src.
- Login And Run Command On Remote System sudo rm -f /tmp/wpa.log; sudo wpa_supplicant -B -i ${iface} -Dwired -c /etc/wpa_supplicant/${conf_file} -f /tmp/wpa.log ${ip} ${user} ${pass} ${container_name}
+ Login And Run Command On Remote System rm -f /tmp/wpa.log; wpa_supplicant -B -i ${iface} -Dwired -c /etc/wpa_supplicant/${conf_file} -f /tmp/wpa.log ${ip} ${user} ${pass} ${container_type} ${container_name}
+
+Validate Authentication
+ [Arguments] ${auth_pass} ${iface} ${conf_file} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None}
+ [Documentation] Executes a particular auth request on the RG and verifies if it succeeds. auth_pass determines if authentication should pass
+ Send EAPOL Message ${iface} ${conf_file} ${ip} ${user} ${pass} ${container_type} ${container_name}
+ Run Keyword If '${auth_pass}' == 'True' Wait Until Keyword Succeeds 30s 2s Check Remote File Contents True /tmp/wpa.log authentication completed successfully ${ip} ${user} ${pass} ${container_type} ${container_name}
+ Run Keyword If '${auth_pass}' == 'False' Sleep 10s
+ Run Keyword If '${auth_pass}' == 'False' Check Remote File Contents False /tmp/wpa.log authentication completed successfully ${ip} ${user} ${pass} ${container_type} ${container_name}
Start DHCP Server on Remote Host
- [Arguments] ${interface} ${ip} ${user} ${pass}=${None} ${container_name}=${None}
- ${result}= Login And Run Command On Remote System sudo dhcpd -cf /etc/dhcp/dhcpd.conf ${interface} ${ip} ${user} ${pass} ${container_name}
+ [Arguments] ${interface} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None}
+ ${result}= Login And Run Command On Remote System dhcpd -cf /etc/dhcp/dhcpd.conf ${interface} ${ip} ${user} ${pass} ${container_type} ${container_name}
Should Contain ${result} Listening on LPF/${interface}
Delete IP Addresses from Interface on Remote Host
- [Arguments] ${interface} ${ip} ${user} ${pass}=${None} ${container_name}=${None}
- Login And Run Command On Remote System sudo ip addr flush dev ${interface} ${ip} ${user} ${pass} ${container_name}
+ [Arguments] ${interface} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None}
+ Login And Run Command On Remote System ip addr flush dev ${interface} ${ip} ${user} ${pass} ${container_type} ${container_name}
Add Double Vlan Interface on Host
- [Arguments] ${interface} ${stag} ${ctag} ${ip} ${user} ${pass}=${None} ${container_name}=${None}
- Login And Run Command On Remote System sudo ip link add link ${interface} name ${interface}.${stag} type vlan id ${stag} ${ip} ${user} ${pass} ${container_name}
- Login And Run Command On Remote System sudo ip link set ${interface}.${stag} up ${ip} ${user} ${pass} ${container_name}
- Login And Run Command On Remote System sudo ip link add link ${interface}.${stag} name ${interface}.${stag}.${ctag} type vlan id ${ctag} ${ip} ${user} ${pass} ${container_name}
- Login And Run Command On Remote System sudo ip link set ${interface}.${stag}.${ctag} up ${ip} ${user} ${pass} ${container_name}
- Login And Run Command On Remote System ifconfig ${interface}.${stag}.${ctag} ${ip} ${user} ${pass} ${container_name}
+ [Arguments] ${interface} ${stag} ${ctag} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None}
+ Login And Run Command On Remote System ip link add link ${interface} name ${interface}.${stag} type vlan id ${stag} ${ip} ${user} ${pass} ${container_type} ${container_name}
+ Login And Run Command On Remote System ip link set ${interface}.${stag} up ${ip} ${user} ${pass} ${container_type} ${container_name}
+ Login And Run Command On Remote System ip link add link ${interface}.${stag} name ${interface}.${stag}.${ctag} type vlan id ${ctag} ${ip} ${user} ${pass} ${container_type} ${container_name}
+ Login And Run Command On Remote System ip link set ${interface}.${stag}.${ctag} up ${ip} ${user} ${pass} ${container_type} ${container_name}
+ Login And Run Command On Remote System ifconfig ${interface}.${stag}.${ctag} ${ip} ${user} ${pass} ${container_type} ${container_name}
Delete Interface on Remote Host
- [Arguments] ${interface} ${ip} ${user} ${pass}=${None} ${container_name}=${None}
- Login And Run Command On Remote System sudo ip link del ${interface} ${ip} ${user} ${pass} ${container_name}
+ [Arguments] ${interface} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None}
+ Login And Run Command On Remote System ip link del ${interface} ${ip} ${user} ${pass} ${container_type} ${container_name}
Add Ip Address on Interface on Host
- [Arguments] ${ip_address} ${interface} ${ip} ${user} ${pass}=${None} ${container_name}=${None}
- Login And Run Command On Remote System sudo ip addr add ${ip_address} dev ${interface} ${ip} ${user} ${pass} ${container_name}
+ [Arguments] ${ip_address} ${interface} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None}
+ Login And Run Command On Remote System ip addr add ${ip_address} dev ${interface} ${ip} ${user} ${pass} ${container_type} ${container_name}
Add Route to Remote Host
- [Arguments] ${subnet} ${gateway} ${interface} ${ip} ${user} ${pass}=${None} ${container_name}=${None}
- Login And Run Command On Remote System sudo ip route add ${subnet} via ${gateway} dev ${interface} ${ip} ${user} ${pass} ${container_name}
+ [Arguments] ${subnet} ${gateway} ${interface} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None}
+ Login And Run Command On Remote System ip route add ${subnet} via ${gateway} dev ${interface} ${ip} ${user} ${pass} ${container_type} ${container_name}
+
+Validate DHCP and Ping
+ [Arguments] ${dhcp_should_pass} ${ping_should_pass} ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass}=${None} ${src_container_type}=${None} ${src_container_name}=${None} ${dst_dp_iface}=${None} ${dst_ip}=${None} ${dst_user}=${None} ${dst_pass}=${None} ${dst_container_type}=${None} ${dst_container_name}=${None}
+ Run Keyword If '${dst_ip}' != '${None}' Run Keywords
+ ... Add Double Vlan Interface on Host ${dst_dp_iface} ${s_tag} ${c_tag} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name} AND
+ ... Add IP Address on Interface on Host ${dst_dp_ip}/24 ${dst_dp_iface}.${s_tag}.${c_tag} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name} AND
+ ... Start DHCP Server on Remote Host ${dst_dp_iface}.${s_tag}.${c_tag} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
+ Send Dhclient Request ${src_iface} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ Run Keyword If '${dhcp_should_pass}' == 'True' Wait Until Keyword Succeeds 60s 5s Check IPv4 Address on DHCP Client True ${src_iface} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ Run Keyword If '${dhcp_should_pass}' == 'False' Sleep 10s
+ Run Keyword If '${dhcp_should_pass}' == 'False' Check IPv4 Address on DHCP Client False ${src_iface} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ Run Keyword If '${ping_should_pass}' == 'True' Wait Until Keyword Succeeds 60s 5s Check Ping True ${dst_dp_ip} ${src_iface} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ ... ELSE Wait Until Keyword Succeeds 60s 5s Check Ping False ${dst_dp_ip} ${src_iface} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
diff --git a/src/test/cord-api/Framework/utils/utils.robot b/src/test/cord-api/Framework/utils/utils.robot
index e8a6a6b..25e8124 100644
--- a/src/test/cord-api/Framework/utils/utils.robot
+++ b/src/test/cord-api/Framework/utils/utils.robot
@@ -24,26 +24,38 @@
*** Keywords ***
Login And Run Command On Remote System
- [Arguments] ${cmd} ${ip} ${user} ${pass}=${None} ${container_name}=${None} ${prompt}=~$ ${prompt_timeout}=15s ${container_prompt}=~#
- [Documentation] SSH's into a remote host and executes a command and returns output. If container_name is specified, login to the container before executing the command
- ${conn_id} ${prompt}= Login To Remote System ${ip} ${user} ${pass} ${container_name} ${prompt} ${prompt_timeout} ${container_prompt}
- ${output}= Run Command On Remote System ${cmd} ${conn_id} ${user} ${prompt} ${pass}
+ [Arguments] ${cmd} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None} ${prompt}=~$ ${prompt_timeout}=15s ${container_prompt}=#
+ [Documentation] SSH's into a remote host (and logs into the container if container_type and container_name are specified), tries to switch to root user and executes a command and returns output
+ ${conn_id} Login To Remote System ${ip} ${user} ${pass} ${container_type} ${container_name} ${prompt} ${prompt_timeout} ${container_prompt}
+ ${output}= Run Command On Remote System ${cmd} ${conn_id} ${user} ${pass}
Logout From Remote System ${conn_id}
[Return] ${output}
Login To Remote System
- [Arguments] ${ip} ${user} ${pass}=${None} ${container_name}=${None} ${prompt}=~$ ${prompt_timeout}=15s ${container_prompt}=~#
- [Documentation] SSH's into a remote host and returns connection ID. If container_name is specified, login to the container before returning
+ [Arguments] ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None} ${prompt}=~$ ${prompt_timeout}=15s ${container_prompt}=#
+ [Documentation] SSH's into a remote host (and logs into the container if container_type and container_name are specified) and returns connection ID
${conn_id}= SSHLibrary.Open Connection ${ip} prompt=${prompt} timeout=${prompt_timeout}
Run Keyword If '${pass}' != '${None}' SSHLibrary.Login ${user} ${pass}
... ELSE SSHLibrary.Login With Public Key ${user} %{HOME}/.ssh/id_rsa
# Login to the lxc container
- Run Keyword If '${container_name}' != '${None}' Run Keywords
+ Run Keyword If '${container_type}' == 'LXC' Run Keywords
... SSHLibrary.Write lxc exec ${container_name} /bin/bash AND
... SSHLibrary.Read Until ${container_prompt} AND
... SSHLibrary.Set Client Configuration prompt=${container_prompt}
- ${prompt}= Set Variable If '${container_name}' != '${None}' ${container_prompt} ${prompt}
- [Return] ${conn_id} ${prompt}
+ # Login to the k8s container
+ Run Keyword If '${container_type}' == 'K8S' Run Keywords
+ ... SSHLibrary.Write kubectl -n $(kubectl get pods --all-namespaces | grep ${container_name} | awk '{print $1}') exec ${container_name} -it /bin/bash AND
+ ... SSHLibrary.Read Until ${container_prompt} AND
+ ... SSHLibrary.Set Client Configuration prompt=${container_prompt}
+ # Try to switch to root user
+ ${conn}= SSHLibrary.Get Connection ${conn_id}
+ Run Keyword And Ignore Error SSHLibrary.Write sudo -s
+ ${output}= SSHLibrary.Read Until Regexp \#|${conn.prompt}|password for ${user}:
+ Run Keyword If 'password for ${user}:' not in '''${output}''' Return From Keyword ${conn_id}
+ SSHLibrary.Set Client Configuration prompt=\#
+ SSHLibrary.Write ${pass}
+ SSHLibrary.Read Until Prompt
+ [Return] ${conn_id}
Logout From Remote System
[Arguments] ${conn_id}
@@ -52,11 +64,12 @@
SSHLibrary.Close Connection
Run Command On Remote System
- [Arguments] ${cmd} ${conn_id} ${user} ${prompt} ${pass}=${None}
+ [Arguments] ${cmd} ${conn_id} ${user} ${pass}=${None}
[Documentation] Executes a command on remote host and returns output
+ ${conn}= SSHLibrary.Get Connection ${conn_id}
SSHLibrary.Switch Connection ${conn_id}
SSHLibrary.Write ${cmd}
- ${output}= SSHLibrary.Read Until Regexp ${prompt}|password for ${user}:
+ ${output}= SSHLibrary.Read Until Regexp ${conn.prompt}|password for ${user}:
Run Keyword If 'password for ${user}:' not in '''${output}''' Return From Keyword ${output}
SSHLibrary.Write ${pass}
${output}= SSHlibrary.Read Until Prompt
@@ -217,19 +230,19 @@
[Return] ${id}
Kill Linux Process
- [Arguments] ${process} ${ip} ${user} ${pass}=${None} ${container_name}=${None}
- ${rc}= Login And Run Command On Remote System sudo kill $(ps aux | grep '${process}' | awk '{print $2}'); echo $? ${ip} ${user} ${pass} ${container_name}
+ [Arguments] ${process} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None}
+ ${rc}= Login And Run Command On Remote System kill $(ps aux | grep '${process}' | awk '{print $2}'); echo $? ${ip} ${user} ${pass} ${container_type} ${container_name}
Should Be Equal As Integers ${rc} 0
Check Remote File Contents
- [Arguments] ${file_should_exist} ${file} ${pattern} ${ip} ${user} ${pass}=${None} ${container_name}=${None} ${prompt}=~$
- ${output}= Login And Run Command On Remote System cat ${file} | grep '${pattern}' ${ip} ${user} ${pass} ${container_name} ${prompt}
+ [Arguments] ${file_should_exist} ${file} ${pattern} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None} ${prompt}=~$
+ ${output}= Login And Run Command On Remote System cat ${file} | grep '${pattern}' ${ip} ${user} ${pass} ${container_type} ${container_name} ${prompt}
Run Keyword If '${file_should_exist}' == 'True' Should Contain ${output} ${pattern}
... ELSE Should Not Contain ${output} ${pattern}
Check Ping
- [Arguments] ${ping_should_pass} ${dst_ip} ${iface} ${ip} ${user} ${pass}=${None} ${container_name}=${None}
- ${result}= Login And Run Command On Remote System ping -I ${iface} -c 3 ${dst_ip} ${ip} ${user} ${pass} ${container_name}
+ [Arguments] ${ping_should_pass} ${dst_ip} ${iface} ${ip} ${user} ${pass}=${None} ${container_type}=${None} ${container_name}=${None}
+ ${result}= Login And Run Command On Remote System ping -I ${iface} -c 3 ${dst_ip} ${ip} ${user} ${pass} ${container_type} ${container_name}
Check Ping Result ${ping_should_pass} ${result}
Check Remote System Reachability
diff --git a/src/test/cord-api/Tests/WorkflowValidations/ATT_Test001.robot b/src/test/cord-api/Tests/WorkflowValidations/ATT_Test001.robot
index e34646f..c4a572d 100644
--- a/src/test/cord-api/Tests/WorkflowValidations/ATT_Test001.robot
+++ b/src/test/cord-api/Tests/WorkflowValidations/ATT_Test001.robot
@@ -51,13 +51,13 @@
... Configure whitelist with correct ONU location
... Validate successful authentication/DHCP/E2E ping
[Setup] None
- Wait Until Keyword Succeeds 300s 15s Validate ONU States ACTIVE ENABLED
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate Authentication True wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled
- Validate DHCP and Ping True True
+ 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}
+ Validate Authentication True ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ 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}
+ Validate DHCP and Ping True True ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
ONU in Correct Location -> Remove ONU from Whitelist -> Add ONU to Whitelist
[Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
@@ -67,27 +67,27 @@
... Validate failed authentication/DHCP/E2E ping
... Add ONU to whitelist
... Validate successful authentication/DHCP/E2E ping
- Wait Until Keyword Succeeds 300s 15s Validate ONU States ACTIVE ENABLED
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate Authentication True wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled
- Validate DHCP and Ping True True
+ 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}
+ Validate Authentication True ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ 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}
+ Validate DHCP and Ping True True ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
Clean Up Linux
Remove Whitelist
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate Authentication False wpa_supplicant.conf
- Validate DHCP and Ping False False
+ 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 ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ Validate DHCP and Ping False False ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
Clean Up Linux
Create Whitelist
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate Authentication True wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled
- Validate DHCP and Ping True True
+ 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}
+ Validate Authentication True ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ 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}
+ Validate DHCP and Ping True True ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
ONU in Correct Location -> ONU in Wrong Location -> ONU in Correct Location
[Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
@@ -97,27 +97,27 @@
... Validate failed authentication/DHCP/E2E ping
... Update whitelist with correct ONU location
... Validate successful authentication/DHCP/E2E ping
- Wait Until Keyword Succeeds 300s 15s Validate ONU States ACTIVE ENABLED
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate Authentication True wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled
- Validate DHCP and Ping True True
+ 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}
+ Validate Authentication True ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ 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}
+ Validate DHCP and Ping True True ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
Clean Up Linux
Update Whitelist with Wrong Location
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate Authentication False wpa_supplicant.conf
- Validate DHCP and Ping False False
+ 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 ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ Validate DHCP and Ping False False ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
Clean Up Linux
Update Whitelist with Correct Location
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate Authentication True wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled
- Validate DHCP and Ping True True
+ 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}
+ Validate Authentication True ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ 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}
+ Validate DHCP and Ping True True ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
ONU in Correct Location -> Remove Subscriber -> Create Subscriber
[Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
@@ -127,55 +127,55 @@
... Validate failed authentication/DHCP/E2E ping
... Recreate subscriber model
... Validate successful authentication/DHCP/E2E ping
- Wait Until Keyword Succeeds 300s 15s Validate ONU States ACTIVE ENABLED
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate Authentication True wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled
- Validate DHCP and Ping True True
+ 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}
+ Validate Authentication True ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ 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}
+ Validate DHCP and Ping True True ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
Clean Up Linux
Remove Subscriber
- Validate Authentication False wpa_supplicant.conf
- Validate DHCP and Ping False False
+ Validate Authentication False ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ Validate DHCP and Ping False False ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
Clean Up Linux
Create Subscriber
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate Authentication True wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled
- Validate DHCP and Ping True True
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth ${onu_device}
+ Validate Authentication True ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ 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}
+ Validate DHCP and Ping True True ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
ONU in Correct Location (Skip Subscriber Provisioning) -> Provision Subscriber
[Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
... Configure whitelist with correct ONU location and skip provisioning subscriber
- ... Validate failed authentication/DHCP/E2E ping
+ ... Validate successful authentication (expected with the ONF pod setup) but failed DHCP/E2E ping
... Provision subscriber
... Validate successful authentication/DHCP/E2E ping
[Setup] None
Create Whitelist
Create VOLT
- Wait Until Keyword Succeeds 300s 15s Validate ONU States ACTIVE ENABLED
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING
- Validate Authentication False wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING
- Validate DHCP and Ping False False
+ 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}
+ Validate Authentication True ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING ${onu_device}
+ Validate DHCP and Ping False False ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
Clean Up Linux
Create Subscriber
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate Authentication True wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled
- Validate DHCP and Ping True True
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth ${onu_device}
+ Validate Authentication True ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ 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}
+ Validate DHCP and Ping True True ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
ONU in Correct Location (Skip Authentication)
[Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
... Configure whitelist with correct ONU location and skip RG authentication
... Validate failed authentication/DHCP/E2E ping
- Wait Until Keyword Succeeds 300s 15s Validate ONU States ACTIVE ENABLED
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate DHCP and Ping False False
+ 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}
+ Validate DHCP and Ping False False ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
ONU not in Whitelist
[Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
@@ -184,89 +184,88 @@
[Setup] None
Create Subscriber
Create VOLT
- Wait Until Keyword Succeeds 300s 15s Validate ONU States UNKNOWN DISABLED
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate Authentication False wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate DHCP and Ping False False
+ Wait Until Keyword Succeeds 300s 15s Validate ONU States UNKNOWN DISABLED ${onu_device}
+ 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 ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ 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 DHCP and Ping False False ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
ONU not in Whitelist (Skip Subscriber Provisioning) -> Add ONU to Whitelist -> Provision Subscriber
[Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
... Skip whitelist configuration for ONU and subscriber provisioning
- ... Validate failed authentication/DHCP/E2E ping
+ ... Validate successful authentication but failed DHCP/E2E ping
... Configure whitelist with correct ONU location
- ... Validate failed authentication/DHCP/E2E ping
+ ... Validate successful authentication (expected with the ONF pod setup) but failed DHCP/E2E ping
... Provision subscriber
... Validate successful authentication/DHCP/E2E ping
[Setup] None
Create VOLT
- Wait Until Keyword Succeeds 300s 15s Validate ONU States UNKNOWN DISABLED
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING
- Validate Authentication False wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING
- Validate DHCP and Ping False False
+ Wait Until Keyword Succeeds 300s 15s Validate ONU States UNKNOWN DISABLED ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING ${onu_device}
+ Validate Authentication False ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING ${onu_device}
+ Validate DHCP and Ping False False ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
Clean Up Linux
Create Whitelist
- Wait Until Keyword Succeeds 300s 15s Validate ONU States ACTIVE ENABLED
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING
- Validate Authentication False wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING
- Validate DHCP and Ping False False
+ 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}
+ Validate Authentication True ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING ${onu_device}
+ Validate DHCP and Ping False False ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
Clean Up Linux
Create Subscriber
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate Authentication True wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled
- Validate DHCP and Ping True True
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth ${onu_device}
+ Validate Authentication True ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ 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}
+ Validate DHCP and Ping True True ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
ONU in Wrong Location
[Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
... Configure whitelist with wrong ONU location
... Validate failed authentication/DHCP/E2E ping
Update Whitelist with Wrong Location
- Wait Until Keyword Succeeds 300s 15s Validate ONU States UNKNOWN DISABLED
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate Authentication False wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate DHCP and Ping False False
+ Wait Until Keyword Succeeds 300s 15s Validate ONU States UNKNOWN DISABLED ${onu_device}
+ 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 ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ 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 DHCP and Ping False False ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
-ONU with Wrong Location (Skip Subscriber Provisioning) -> ONU with Correct Location -> Provision Subscriber
+ONU in Wrong Location (Skip Subscriber Provisioning) -> ONU in Correct Location -> Provision Subscriber
[Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
... Configure whitelist with wrong ONU location and skip subscriber provisioning
... Validate failed authentication/DHCP/E2E ping
... Configure whitelist with correct ONU location
- ... Validate failed authentication/DHCP/E2E ping
+ ... Validate successful authentication (expected with the ONF pod setup) but failed DHCP/E2E ping
... Provision subscriber
... Validate successful authentication/DHCP/E2E ping
[Setup] None
- [Tags] Debug
Create VOLT
Create Whitelist
Update Whitelist with Wrong Location
- Wait Until Keyword Succeeds 300s 15s Validate ONU States UNKNOWN DISABLED
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING
- Validate Authentication False wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING
- Validate DHCP and Ping False False
+ Wait Until Keyword Succeeds 300s 15s Validate ONU States UNKNOWN DISABLED ${onu_device}
+ Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING ${onu_device}
+ Validate Authentication False ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI DISABLED AWAITING ${onu_device}
+ Validate DHCP and Ping False False ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
Clean Up Linux
Update Whitelist with Correct Location
- Wait Until Keyword Succeeds 300s 15s Validate ONU States ACTIVE ENABLED
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING
- Validate Authentication False wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING
- Validate DHCP and Ping False False
+ 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}
+ Validate Authentication True ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING ${onu_device}
+ Validate DHCP and Ping False False ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
Clean Up Linux
Create Subscriber
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
- Validate Authentication True wpa_supplicant.conf
- Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED
- Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled
- Validate DHCP and Ping True True
+ Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth ${onu_device}
+ Validate Authentication True ${src_iface} wpa_supplicant.conf ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ 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}
+ Validate DHCP and Ping True True ${src_iface} ${s_tag} ${c_tag} ${dst_dp_ip} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name} ${dst_dp_iface} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
*** Keywords ***
Setup Suite
@@ -297,11 +296,13 @@
${src_ip}= Evaluate ${hosts}.get("src").get("ip")
${src_user}= Evaluate ${hosts}.get("src").get("user")
${src_pass}= Evaluate ${hosts}.get("src").get("pass")
+ ${src_container_type}= Evaluate ${hosts}.get("src").get("container_type")
${src_container_name}= Evaluate ${hosts}.get("src").get("container_name")
${src_iface}= Evaluate ${hosts}.get("src").get("dp_iface_name")
${dst_ip}= Evaluate ${hosts}.get("dst").get("ip")
${dst_user} = Evaluate ${hosts}.get("dst").get("user")
${dst_pass}= Evaluate ${hosts}.get("dst").get("pass")
+ ${dst_container_type}= Evaluate ${hosts}.get("dst").get("container_type")
${dst_container_name}= Evaluate ${hosts}.get("dst").get("container_name")
${dst_dp_iface}= Evaluate ${hosts}.get("dst").get("dp_iface_name")
${dst_dp_ip}= Evaluate ${hosts}.get("dst").get("dp_iface_ip_qinq")
@@ -311,11 +312,13 @@
Set Suite Variable ${src_ip}
Set Suite Variable ${src_user}
Set Suite Variable ${src_pass}
+ Set Suite Variable ${src_container_type}
Set Suite Variable ${src_container_name}
Set Suite Variable ${src_iface}
Set Suite Variable ${dst_ip}
Set Suite Variable ${dst_user}
Set Suite Variable ${dst_pass}
+ Set Suite Variable ${dst_container_type}
Set Suite Variable ${dst_container_name}
Set Suite Variable ${dst_dp_iface}
Set Suite Variable ${dst_dp_ip}
@@ -335,18 +338,6 @@
Create Subscriber
Create VOLT
-Create Whitelist
- ${AttWhiteListDict}= utils.listToDict ${AttWhiteListList} 0
- CORD Post ${ATT_WHITELIST} ${AttWhiteListDict}
-
-Create Subscriber
- ${SubscriberDict}= utils.listToDict ${SubscriberList} 0
- Wait Until Keyword Succeeds 120s 15s CORD Post ${VOLT_SUBSCRIBER} ${SubscriberDict}
-
-Create VOLT
- ${VoltDeviceDict}= utils.listToDict ${VoltDeviceList} 0
- CORD Post ${VOLT_DEVICE} ${VoltDeviceDict}
-
Teardown Test
[Documentation] Delete xos objects, kills processes and cleans up interfaces on src+dst servers
Clean Up Linux
@@ -354,11 +345,11 @@
Clean Up Linux
[Documentation] Kill processes and clean up interfaces on src+dst servers
- Run Keyword And Ignore Error Kill Linux Process [w]pa_supplicant ${src_ip} ${src_user} ${src_pass} ${src_container_name}
- Run Keyword And Ignore Error Kill Linux Process [d]hclient ${src_ip} ${src_user} ${src_pass} ${src_container_name}
- Run Keyword If '${dst_ip}' != '${None}' Run Keyword And Ignore Error Kill Linux Process [d]hcpd ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_name}
- Delete IP Addresses from Interface on Remote Host ${src_iface} ${src_ip} ${src_user} ${src_pass} ${src_container_name}
- Run Keyword If '${dst_ip}' != '${None}' Delete Interface on Remote Host ${dst_dp_iface}.${s_tag} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_name}
+ Run Keyword And Ignore Error Kill Linux Process [w]pa_supplicant ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ Run Keyword And Ignore Error Kill Linux Process [d]hclient ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ Run Keyword If '${dst_ip}' != '${None}' Run Keyword And Ignore Error Kill Linux Process [d]hcpd ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
+ Delete IP Addresses from Interface on Remote Host ${src_iface} ${src_ip} ${src_user} ${src_pass} ${src_container_type} ${src_container_name}
+ Run Keyword If '${dst_ip}' != '${None}' Delete Interface on Remote Host ${dst_dp_iface}.${s_tag} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_type} ${dst_container_name}
Clean Up XOS
[Documentation] Clean up all XOS objects and reinstall voltha after OLT reboots
@@ -370,6 +361,10 @@
Wait Until Keyword Succeeds 120s 10s Openolt is Up ${olt_ip} ${olt_user} ${olt_pass}
Wait Until Keyword Succeeds 300s 10s Reinstall Voltha
+Create Whitelist
+ ${AttWhiteListDict}= utils.listToDict ${AttWhiteListList} 0
+ CORD Post ${ATT_WHITELIST} ${AttWhiteListDict}
+
Remove Whitelist
${whitelist_id}= Retrieve Whitelist Entry ${onu_device}
CORD Delete ${ATT_WHITELIST} ${whitelist_id}
@@ -382,51 +377,10 @@
${whitelist_id}= Retrieve Whitelist Entry ${onu_device}
CORD Put ${ATT_WHITELIST} {"pon_port_id": ${onu_location} } ${whitelist_id}
-Validate ONU States
- [Arguments] ${expected_op_status} ${expected_admin_status}
- ${operational_status} ${admin_status} ONU Status Check ${onu_device}
- Should Be Equal ${operational_status} ${expected_op_status}
- Should Be Equal ${admin_status} ${expected_admin_status}
+Create Subscriber
+ ${SubscriberDict}= utils.listToDict ${SubscriberList} 0
+ Wait Until Keyword Succeeds 120s 15s CORD Post ${VOLT_SUBSCRIBER} ${SubscriberDict}
-Validate ATT Workflow Driver SI
- [Arguments] ${expected_status} ${expected_auth_status}
- ${onu_state} ${authentication_status} Service Instance Status Check ${onu_device}
- Should Be Equal ${onu_state} ${expected_status}
- Should Be Equal ${authentication_status} ${expected_auth_status}
-
-Validate Subscriber Status
- [Arguments] ${exepected_status}
- ${status} Subscriber Status Check ${onu_device}
- Should Be Equal ${status} ${exepected_status}
-
-Validate Authentication
- [Arguments] ${auth_pass} ${conf_file}
- [Documentation] Executes a particular auth request on the RG and verifies if it succeeds. auth_pass determines if authentication should pass
- Send EAPOL Message ${src_iface} ${conf_file} ${src_ip} ${src_user} ${src_pass} ${src_container_name}
- Run Keyword If '${auth_pass}' == 'True' Wait Until Keyword Succeeds 30s 2s Check Remote File Contents True /tmp/wpa.log authentication completed successfully ${src_ip} ${src_user} ${src_pass} ${src_container_name}
- Run Keyword If '${auth_pass}' == 'False' Sleep 10s
- Run Keyword If '${auth_pass}' == 'False' Check Remote File Contents False /tmp/wpa.log authentication completed successfully ${src_ip} ${src_user} ${src_pass} ${src_container_name}
-
-Validate DHCP and Ping
- [Arguments] ${dhcp_should_pass} ${ping_should_pass}
- Run Keyword If '${dst_ip}' != '${None}' Run Keywords
- ... Add Double Vlan Interface on Host ${dst_dp_iface} ${s_tag} ${c_tag} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_name} AND
- ... Add IP Address on Interface on Host ${dst_dp_ip}/24 ${dst_dp_iface}.${s_tag}.${c_tag} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_name} AND
- ... Start DHCP Server on Remote Host ${dst_dp_iface}.${s_tag}.${c_tag} ${dst_ip} ${dst_user} ${dst_pass} ${dst_container_name}
- Send Dhclient Request ${src_iface} ${src_ip} ${src_user} ${src_pass} ${src_container_name}
- Run Keyword If '${dhcp_should_pass}' == 'True' Wait Until Keyword Succeeds 60s 5s Check IPv4 Address on DHCP Client True ${src_iface} ${src_ip} ${src_user} ${src_pass} ${src_container_name}
- Run Keyword If '${dhcp_should_pass}' == 'False' Sleep 10s
- Run Keyword If '${dhcp_should_pass}' == 'False' Check IPv4 Address on DHCP Client False ${src_iface} ${src_ip} ${src_user} ${src_pass} ${src_container_name}
- Run Keyword If '${ping_should_pass}' == 'True' Wait Until Keyword Succeeds 60s 5s Check Ping True ${dst_dp_ip} ${src_iface} ${src_ip} ${src_user} ${src_pass} ${src_container_name}
- ... ELSE Wait Until Keyword Succeeds 60s 5s Check Ping False ${dst_dp_ip} ${src_iface} ${src_ip} ${src_user} ${src_pass} ${src_container_name}
-
-Reinstall Voltha
- Run ${export_kubeconfig}; helm delete --purge voltha
- Wait Until Keyword Succeeds 60s 10s Helm Chart is Removed voltha
- Wait Until Keyword Succeeds 120s 10s Kubernetes PODs in Namespace are Removed voltha
- Run ${export_kubeconfig}; cd ${HELM_CHARTS_DIR}; helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com/
- Run ${export_kubeconfig}; cd ${HELM_CHARTS_DIR}; helm dep up voltha
- Run ${export_kubeconfig}; helm install -n voltha -f ${KUBERNETES_YAML} --set etcd-operator.customResources.createEtcdClusterCRD=false ${HELM_CHARTS_DIR}/voltha
- Run ${export_kubeconfig}; helm upgrade -f ${KUBERNETES_YAML} --set etcd-operator.customResources.createEtcdClusterCRD=true voltha ${HELM_CHARTS_DIR}/voltha
- Wait Until Keyword Succeeds 60s 10s Kubernetes PODs in Namespace are Running voltha ${VOLTHA_POD_NUM}
- Sleep 10s
+Create VOLT
+ ${VoltDeviceDict}= utils.listToDict ${VoltDeviceList} 0
+ CORD Post ${VOLT_DEVICE} ${VoltDeviceDict}