blob: 0d4e9858276f4aa1625705b2fe8cecce164eebcd [file] [log] [blame]
Hardik Windlassb9bdd502020-04-17 14:46:21 +05301# Copyright 2017 - present Open Networking Foundation
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14# FIXME Can we use the same test against BBSim and Hardware?
15
16*** Settings ***
17Documentation Test various end-to-end scenarios
18Suite Setup Setup Suite
19Test Setup Setup
20Test Teardown Teardown
21Suite Teardown Teardown Suite
22Library Collections
23Library String
24Library OperatingSystem
25Library XML
26Library RequestsLibrary
27Library ../../libraries/DependencyLibrary.py
28Resource ../../libraries/onos.robot
29Resource ../../libraries/voltctl.robot
30Resource ../../libraries/voltha.robot
31Resource ../../libraries/utils.robot
32Resource ../../libraries/k8s.robot
33Resource ../../variables/variables.robot
Andrea Campanella15619c72020-04-30 09:48:04 +020034Resource ../../libraries/power_switch.robot
Hardik Windlassb9bdd502020-04-17 14:46:21 +053035
36*** Variables ***
37${POD_NAME} flex-ocp-cord
38${KUBERNETES_CONF} ${KUBERNETES_CONFIGS_DIR}/${POD_NAME}.conf
39${KUBERNETES_CONFIGS_DIR} ~/pod-configs/kubernetes-configs
40#${KUBERNETES_CONFIGS_DIR} ${KUBERNETES_CONFIGS_DIR}/${POD_NAME}.conf
41${KUBERNETES_YAML} ${KUBERNETES_CONFIGS_DIR}/${POD_NAME}.yml
42${HELM_CHARTS_DIR} ~/helm-charts
43${VOLTHA_POD_NUM} 8
44${NAMESPACE} voltha
Hardik Windlassa9b38262021-10-27 08:14:22 +000045${INFRA_NAMESPACE} default
Hardik Windlassb9bdd502020-04-17 14:46:21 +053046# For below variable value, using deployment name as using grep for
47# parsing radius pod name, we can also use full radius pod name
48${RESTART_POD_NAME} radius
49${timeout} 60s
50${of_id} 0
51${logical_id} 0
52${has_dataplane} True
53${teardown_device} False
54${scripts} ../../scripts
55
56# Per-test logging on failure is turned off by default; set this variable to enable
57${container_log_dir} ${None}
58
Hardik Windlass43531332021-05-19 07:07:03 +000059# logging flag to enable Collect Logs, can be passed via the command line too
60# example: -v logging:False
61${logging} True
62
Hardik Windlass4ed54502021-05-14 07:34:15 +000063# Flag specific to Soak Jobs
64${SOAK_TEST} False
65
Hardik Windlassb9bdd502020-04-17 14:46:21 +053066*** Test Cases ***
67Verify ONU after Rebooting Physically for DT
68 [Documentation] Test the ONU functionality by physically turning on/off ONU.
69 ... Assuming that all the ONUs are DHCP/pingable (i.e. assuming sanityDt test was executed)
70 ... Test case runs only on the PODs that are configured with PowerSwitch that
71 ... controls the power off/on ONUs/OLT remotely (simulating a physical reboot)
72 [Tags] functionalDt PowerSwitchOnuRebootDt VOL-2819 PowerSwitch
Hardik Windlass9df139e2020-04-24 14:54:54 +053073 [Setup] Start Logging RebootOnu_PowerSwitch_Dt
Hardik Windlass43531332021-05-19 07:07:03 +000074 [Teardown] Run Keywords Run Keyword If ${logging} Collect Logs
Hardik Windlassb9bdd502020-04-17 14:46:21 +053075 ... AND Stop Logging RebootOnu_PowerSwitch_Dt
Suchitra Vemuria6879aa2020-11-03 11:03:11 -080076 ... AND Delete All Devices and Verify
Hardik Windlassb9bdd502020-04-17 14:46:21 +053077 # Add OLT device
78 Setup
79 # Performing Sanity Test to make sure subscribers are all DHCP and pingable
80 Run Keyword If ${has_dataplane} Clean Up Linux
81 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test DT
82 Power Switch Connection Suite ${web_power_switch.ip} ${web_power_switch.user} ${web_power_switch.password}
Hardik Windlass2eb47182020-05-19 20:24:12 +053083 Run Keyword If ${has_dataplane} Clean Up Linux
Suchitra Vemuria6879aa2020-11-03 11:03:11 -080084 FOR ${I} IN RANGE 0 ${num_all_onus}
Hardik Windlassb9bdd502020-04-17 14:46:21 +053085 ${src}= Set Variable ${hosts.src[${I}]}
86 ${dst}= Set Variable ${hosts.dst[${I}]}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -080087 ${of_id}= Get ofID From OLT List ${src['olt']}
Hardik Windlass0560f802020-05-06 23:06:53 +053088 ${onu_device_id}= Get Device ID From SN ${src['onu']}
Hardik Windlassb9bdd502020-04-17 14:46:21 +053089 ${onu_port}= Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
90 ... Get ONU Port in ONOS ${src['onu']} ${of_id}
Hardik Windlass7c801e62020-05-04 19:33:21 +053091 # Disable Power Switch
Hardik Windlassb9bdd502020-04-17 14:46:21 +053092 Disable Switch Outlet ${src['power_switch_port']}
93 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure
94 ... Wait Until Keyword Succeeds 60s 2s
95 ... Check Ping False ${dst['dp_iface_ip_qinq']} ${src['dp_iface_name']}
96 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
Hardik Windlass7c801e62020-05-04 19:33:21 +053097 # Remove Subscriber Access (To replicate DT workflow)
TorstenThieme4e2168e2021-06-22 14:01:47 +000098 Wait Until Keyword Succeeds ${timeout} 2s Execute ONOS CLI Command use single connection ${ONOS_SSH_IP}
Hardik Windlass7c801e62020-05-04 19:33:21 +053099 ... ${ONOS_SSH_PORT} volt-remove-subscriber-access ${of_id} ${onu_port}
100 # Delete ONU Device (To replicate DT workflow)
101 Delete Device ${onu_device_id}
102 Sleep 5s
103 # Enable Power Switch
Hardik Windlassb9bdd502020-04-17 14:46:21 +0530104 Enable Switch Outlet ${src['power_switch_port']}
Hardik Windlass40ccffb2020-05-11 14:12:07 +0530105 # Waiting extra time for the ONU to come up
106 Sleep 60s
Hardik Windlassb9bdd502020-04-17 14:46:21 +0530107 # Check ONU port is Enabled in ONOS
108 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 120s 2s
Hardik Windlass39015672021-07-05 05:48:08 +0000109 ... Verify UNI Port Is Enabled ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${src['onu']}
Hardik Windlass7c801e62020-05-04 19:33:21 +0530110 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2
TorstenThieme4e2168e2021-06-22 14:01:47 +0000111 ... Execute ONOS CLI Command use single connection ${ONOS_SSH_IP} ${ONOS_SSH_PORT}
Hardik Windlass7c801e62020-05-04 19:33:21 +0530112 ... volt-add-subscriber-access ${of_id} ${onu_port}
Hardik Windlassb9bdd502020-04-17 14:46:21 +0530113 # Verify ONU state in voltha
Suchitra Vemuricdc32d82020-07-17 12:24:46 -0700114 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 360s 5s Validate Device
Hardik Windlassb9bdd502020-04-17 14:46:21 +0530115 ... ENABLED ACTIVE REACHABLE
Hardik Windlass7c801e62020-05-04 19:33:21 +0530116 ... ${src['onu']} onu=True onu_reason=omci-flows-pushed
Hardik Windlassb9bdd502020-04-17 14:46:21 +0530117 # Verify subscriber access flows are added for the ONU port
118 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
119 ... Verify Subscriber Access Flows Added For ONU DT ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${of_id}
120 ... ${onu_port} ${nni_port} ${src['s_tag']}
Hardik Windlass2eb47182020-05-19 20:24:12 +0530121 #Run Keyword If ${has_dataplane} Clean Up Linux
Hardik Windlass7c801e62020-05-04 19:33:21 +0530122 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Validate DHCP and Ping True
123 ... True ${src['dp_iface_name']} ${src['s_tag']} ${src['c_tag']} ${dst['dp_iface_ip_qinq']}
Hardik Windlassb9bdd502020-04-17 14:46:21 +0530124 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
Hardik Windlass7c801e62020-05-04 19:33:21 +0530125 ... ${dst['dp_iface_name']} ${dst['ip']} ${dst['user']} ${dst['pass']} ${dst['container_type']}
126 ... ${dst['container_name']}
Hardik Windlassb9bdd502020-04-17 14:46:21 +0530127 END
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800128 # Verify flows for all OLTs
129 Run Keyword Wait Until Keyword Succeeds ${timeout} 5s Validate All OLT Flows
Hardik Windlassb9bdd502020-04-17 14:46:21 +0530130
131Verify OLT after Rebooting Physically for DT
132 [Documentation] Test the physical reboot of the OLT
133 ... Assuming that all the ONUs are DHCP/pingable (i.e. assuming sanityDt test was executed)
134 ... Test performs a physical reboot, performs "reboot" from the OLT CLI
135 [Tags] functionalDt PhysicalOltRebootDt VOL-2817
Hardik Windlass9df139e2020-04-24 14:54:54 +0530136 [Setup] Start Logging RebootOlt_Physical_Dt
Hardik Windlass43531332021-05-19 07:07:03 +0000137 [Teardown] Run Keywords Run Keyword If ${logging} Collect Logs
Hardik Windlassb9bdd502020-04-17 14:46:21 +0530138 ... AND Stop Logging RebootOlt_Physical_Dt
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800139 ... AND Delete All Devices and Verify
Hardik Windlassb9bdd502020-04-17 14:46:21 +0530140 # Add OLT device
141 Setup
142 # Performing Sanity Test to make sure subscribers are all DHCP and pingable
143 Run Keyword If ${has_dataplane} Clean Up Linux
144 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test DT
145 # Reboot the OLT from the OLT CLI
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800146 FOR ${I} IN RANGE 0 ${olt_count}
147 ${olt_user}= Get From Dictionary ${list_olts}[${I}] user
148 ${olt_pass}= Get From Dictionary ${list_olts}[${I}] pass
149 ${olt_ssh_ip}= Get From Dictionary ${list_olts}[${I}] sship
150 ${olt_serial_number}= Get From Dictionary ${list_olts}[${I}] sn
151 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
152 Run Keyword If ${has_dataplane} Login And Run Command On Remote System
Andrea Campanella5ef88142021-02-02 14:34:50 +0100153 ... reboot ${olt_ssh_ip} ${olt_user} ${olt_pass} prompt=#
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800154 END
155 FOR ${I} IN RANGE 0 ${num_all_onus}
Hardik Windlassb9bdd502020-04-17 14:46:21 +0530156 ${src}= Set Variable ${hosts.src[${I}]}
157 ${dst}= Set Variable ${hosts.dst[${I}]}
158 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure
159 ... Wait Until Keyword Succeeds 60s 2s
160 ... Check Ping False ${dst['dp_iface_ip_qinq']} ${src['dp_iface_name']}
161 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
162 END
163 # Wait for the OLT to come back up
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800164 FOR ${I} IN RANGE 0 ${olt_count}
165 ${olt_serial_number}= Get From Dictionary ${olt_ids}[${I}] sn
166 ${olt_user}= Get From Dictionary ${list_olts}[${I}] user
167 ${olt_pass}= Get From Dictionary ${list_olts}[${I}] pass
168 ${olt_ssh_ip}= Get From Dictionary ${list_olts}[${I}] sship
169 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
170 Run Keyword If ${has_dataplane} Wait Until Keyword Succeeds 120s 10s
171 ... Check Remote System Reachability True ${olt_ssh_ip}
172 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 360s 5s
173 ... Validate OLT Device ENABLED ACTIVE
174 ... REACHABLE ${olt_serial_number}
175 END
Hardik Windlassb9bdd502020-04-17 14:46:21 +0530176 # Waiting extra time for the ONUs to come up
177 Sleep 60s
Hardik Windlassb9bdd502020-04-17 14:46:21 +0530178 Run Keyword If ${has_dataplane} Clean Up Linux
179 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test DT
180
TorstenThiemeed3332f2021-02-02 10:30:48 +0000181Verify restart openonu-adapter container after subscriber provisioning for DT
182 [Documentation] Restart openonu-adapter container after VOLTHA is operational.
183 ... Prerequisite : ONUs are authenticated and pingable.
Hardik Windlass43531332021-05-19 07:07:03 +0000184 [Tags] functionalDt Restart-OpenOnu-Dt soak
TorstenThiemeed3332f2021-02-02 10:30:48 +0000185 [Setup] Start Logging Restart-OpenOnu-Dt
Hardik Windlass43531332021-05-19 07:07:03 +0000186 [Teardown] Run Keywords Run Keyword If ${logging} Collect Logs
TorstenThiemeed3332f2021-02-02 10:30:48 +0000187 ... AND Stop Logging Restart-OpenOnu-Dt
TorstenThiemeed3332f2021-02-02 10:30:48 +0000188 # Add OLT device
Hardik Windlass3280f2d2021-05-20 07:38:31 +0000189 Run Keyword If '${SOAK_TEST}'=='False' Setup
TorstenThiemeed3332f2021-02-02 10:30:48 +0000190 # Performing Sanity Test to make sure subscribers are all DHCP and pingable
191 Run Keyword If ${has_dataplane} Clean Up Linux
192 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test DT
193 ${podStatusOutput}= Run kubectl get pods -n ${NAMESPACE}
194 Log ${podStatusOutput}
195 ${countBeforeRestart}= Run kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
196 ${podName} Set Variable adapter-open-onu
197 Wait Until Keyword Succeeds ${timeout} 15s Delete K8s Pods By Label ${NAMESPACE} app ${podName}
TorstenThiemeed3332f2021-02-02 10:30:48 +0000198 Wait Until Keyword Succeeds ${timeout} 2s Validate Pods Status By Label ${NAMESPACE}
199 ... app ${podName} Running
200 # Wait for 1 min after openonu adapter is restarted
201 Sleep 60s
202 Run Keyword If ${has_dataplane} Clean Up Linux
203 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test DT
TorstenThiemeed3332f2021-02-02 10:30:48 +0000204 ${podStatusOutput}= Run kubectl get pods -n ${NAMESPACE}
205 Log ${podStatusOutput}
206 ${countAfterRestart}= Run kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
207 Should Be Equal As Strings ${countAfterRestart} ${countBeforeRestart}
208 Log to console Pod ${podName} restarted and sanity checks passed successfully
Hardik Windlass3280f2d2021-05-20 07:38:31 +0000209 Run Keyword If '${SOAK_TEST}'=='False' Delete All Devices and Verify
TorstenThiemeed3332f2021-02-02 10:30:48 +0000210
Hardik Windlass9df139e2020-04-24 14:54:54 +0530211Verify restart openolt-adapter container after subscriber provisioning for DT
212 [Documentation] Restart openolt-adapter container after VOLTHA is operational.
213 ... Prerequisite : ONUs are authenticated and pingable.
Hardik Windlass43531332021-05-19 07:07:03 +0000214 [Tags] functionalDt Restart-OpenOlt-Dt soak
Hardik Windlass9df139e2020-04-24 14:54:54 +0530215 [Setup] Start Logging Restart-OpenOlt-Dt
Hardik Windlass43531332021-05-19 07:07:03 +0000216 [Teardown] Run Keywords Run Keyword If ${logging} Collect Logs
Hardik Windlass9df139e2020-04-24 14:54:54 +0530217 ... AND Stop Logging Restart-OpenOlt-Dt
218 # Add OLT device
Hardik Windlass3280f2d2021-05-20 07:38:31 +0000219 Run Keyword If '${SOAK_TEST}'=='False' setup
Hardik Windlass9df139e2020-04-24 14:54:54 +0530220 # Performing Sanity Test to make sure subscribers are all DHCP and pingable
221 Run Keyword If ${has_dataplane} Clean Up Linux
222 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test DT
Hardik Windlass9df139e2020-04-24 14:54:54 +0530223 ${podStatusOutput}= Run kubectl get pods -n ${NAMESPACE}
224 Log ${podStatusOutput}
225 ${countBforRestart}= Run kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
Andrea Campanella3dcce272021-01-15 16:04:47 +0100226 ${podName} Set Variable ${OLT_ADAPTER_APP_LABEL}
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530227 Wait Until Keyword Succeeds ${timeout} 15s Delete K8s Pods By Label ${NAMESPACE} app ${podName}
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530228 Wait Until Keyword Succeeds ${timeout} 2s Validate Pods Status By Label ${NAMESPACE}
229 ... app ${podName} Running
TorstenThiemeed3332f2021-02-02 10:30:48 +0000230 # Wait for 1 min after openolt adapter is restarted
Hardik Windlass9df139e2020-04-24 14:54:54 +0530231 Sleep 60s
232 Run Keyword If ${has_dataplane} Clean Up Linux
233 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test DT
Hardik Windlass9df139e2020-04-24 14:54:54 +0530234 ${podStatusOutput}= Run kubectl get pods -n ${NAMESPACE}
235 Log ${podStatusOutput}
236 ${countAfterRestart}= Run kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
237 Should Be Equal As Strings ${countAfterRestart} ${countBforRestart}
238 Log to console Pod ${podName} restarted and sanity checks passed successfully
239
240Verify openolt adapter restart before subscriber provisioning for DT
241 [Documentation] Deploys an device instance and waits for it to authenticate. After
242 ... authentication is successful the rw-core deployment is scaled to 0 instances to
243 ... simulate a POD crash. The test then scales the rw-core back to a single instance
244 ... and configures ONOS for access. The test succeeds if the device is able to
245 ... complete the DHCP sequence.
Hardik Windlass4ed54502021-05-14 07:34:15 +0000246 [Tags] functionalDt olt-adapter-restart-Dt soak
Hardik Windlass9df139e2020-04-24 14:54:54 +0530247 [Setup] Start Logging OltAdapterRestart-Dt
248 #... AND Clear All Devices Then Create New Device
Hardik Windlass43531332021-05-19 07:07:03 +0000249 [Teardown] Run Keywords Run Keyword If ${logging} Collect Logs
Hardik Windlass9df139e2020-04-24 14:54:54 +0530250 ... AND Stop Logging OltAdapterRestart-Dt
251 # Add OLT and perform sanity test
252 #setup
253 Run Keyword If ${has_dataplane} Clean Up Linux
254 #Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test
255 Set Global Variable ${of_id}
256
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800257 FOR ${I} IN RANGE 0 ${num_all_onus}
Hardik Windlass9df139e2020-04-24 14:54:54 +0530258 ${src}= Set Variable ${hosts.src[${I}]}
259 ${dst}= Set Variable ${hosts.dst[${I}]}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800260 ${of_id}= Get ofID From OLT List ${src['olt']}
Hardik Windlass9df139e2020-04-24 14:54:54 +0530261 ${onu_device_id}= Get Device ID From SN ${src['onu']}
262 ${onu_port}= Wait Until Keyword Succeeds ${timeout} 2s Get ONU Port in ONOS ${src['onu']}
263 ... ${of_id}
264 # Bring up the device and verify it authenticates
Suchitra Vemuricdc32d82020-07-17 12:24:46 -0700265 Wait Until Keyword Succeeds 360s 5s Validate Device ENABLED ACTIVE REACHABLE
Hardik Windlass8b446492021-06-10 06:25:23 +0000266 ... ${onu_device_id} onu=True onu_reason=omci-flows-pushed by_dev_id=True
Hardik Windlass9df139e2020-04-24 14:54:54 +0530267 END
268 # Scale down the open OLT adapter deployment to 0 PODs and once confirmed, scale it back to 1
Andrea Campanella3dcce272021-01-15 16:04:47 +0100269 Scale K8s Deployment by Pod Label ${NAMESPACE} app ${OLT_ADAPTER_APP_LABEL} 0
270 Wait Until Keyword Succeeds ${timeout} 2s Pods Do Not Exist By Label ${NAMESPACE} app
271 ... ${OLT_ADAPTER_APP_LABEL}
Hardik Windlass9df139e2020-04-24 14:54:54 +0530272 # Scale up the open OLT adapter deployment and make sure both it and the ofagent deployment are back
Andrea Campanella3dcce272021-01-15 16:04:47 +0100273 Scale K8s Deployment by Pod Label ${NAMESPACE} app ${OLT_ADAPTER_APP_LABEL} 1
Hardik Windlass9df139e2020-04-24 14:54:54 +0530274 Wait Until Keyword Succeeds ${timeout} 2s
Andrea Campanella3dcce272021-01-15 16:04:47 +0100275 ... Check Expected Available Deployment Replicas By Pod Label ${NAMESPACE} app ${OLT_ADAPTER_APP_LABEL} 1
Hardik Windlass9df139e2020-04-24 14:54:54 +0530276
277 # Ensure the device is available in ONOS, this represents system connectivity being restored
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800278 FOR ${I} IN RANGE 0 ${olt_count}
279 ${olt_serial_number}= Get From Dictionary ${olt_ids}[${I}] sn
280 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
281 ${of_id}= Wait Until Keyword Succeeds ${timeout} 15s Validate OLT Device in ONOS
282 ... ${olt_serial_number}
283 Wait Until Keyword Succeeds ${timeout} 2s Device Is Available In ONOS
284 ... http://karaf:karaf@${ONOS_REST_IP}:${ONOS_REST_PORT} ${of_id}
285 END
Hardik Windlass9df139e2020-04-24 14:54:54 +0530286
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800287 FOR ${I} IN RANGE 0 ${num_all_onus}
288 ${src}= Set Variable ${hosts.src[${I}]}
289 ${dst}= Set Variable ${hosts.dst[${I}]}
290 ${of_id}= Get ofID From OLT List ${src['olt']}
291 ${onu_port}= Wait Until Keyword Succeeds ${timeout} 2s Get ONU Port in ONOS ${src['onu']}
292 ... ${of_id}
Hardik Windlass9df139e2020-04-24 14:54:54 +0530293 # Add subscriber access and verify that DHCP completes to ensure system is still functioning properly
TorstenThieme4e2168e2021-06-22 14:01:47 +0000294 Wait Until Keyword Succeeds ${timeout} 2s Execute ONOS CLI Command use single connection ${ONOS_SSH_IP}
Hardik Windlass9df139e2020-04-24 14:54:54 +0530295 ... ${ONOS_SSH_PORT} volt-add-subscriber-access ${of_id} ${onu_port}
296 # Verify subscriber access flows are added for the ONU port
297 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
298 ... Verify Subscriber Access Flows Added For ONU DT ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${of_id}
299 ... ${onu_port} ${nni_port} ${src['s_tag']}
300 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Validate DHCP and Ping True
301 ... True ${src['dp_iface_name']} ${src['s_tag']} ${src['c_tag']} ${dst['dp_iface_ip_qinq']}
302 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
303 ... ${dst['dp_iface_name']} ${dst['ip']} ${dst['user']} ${dst['pass']} ${dst['container_type']}
304 ... ${dst['container_name']}
305 END
306
307Verify restart ofagent container after subscriber is provisioned for DT
308 [Documentation] Restart ofagent container after VOLTHA is operational.
309 ... Prerequisite : ONUs are authenticated and pingable.
Hardik Windlass4ed54502021-05-14 07:34:15 +0000310 [Tags] functionalDt ofagentRestart-Dt soak
Hardik Windlass9df139e2020-04-24 14:54:54 +0530311 [Setup] Start Logging ofagentRestart-Dt
Hardik Windlass43531332021-05-19 07:07:03 +0000312 [Teardown] Run Keywords Run Keyword If ${logging} Collect Logs
Hardik Windlass9df139e2020-04-24 14:54:54 +0530313 ... AND Stop Logging ofagentRestart-Dt
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530314 ... AND Scale K8s Deployment ${NAMESPACE} voltha-voltha-ofagent 1
Hardik Windlass9df139e2020-04-24 14:54:54 +0530315 # set timeout value
316 ${waitforRestart} Set Variable 120s
317 ${podStatusOutput}= Run kubectl get pods -n ${NAMESPACE}
318 Log ${podStatusOutput}
319 ${countBforRestart}= Run kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
320 ${podName} Set Variable ofagent
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530321 Wait Until Keyword Succeeds ${timeout} 15s Delete K8s Pods By Label ${NAMESPACE} app ${podName}
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530322 Wait Until Keyword Succeeds ${timeout} 2s Validate Pods Status By Label ${NAMESPACE}
323 ... app ${podName} Running
Hardik Windlass5e214b22021-02-26 10:37:14 +0000324 Wait Until Keyword Succeeds ${timeout} 3s Pods Are Ready By Label ${NAMESPACE} app ${podName}
Hardik Windlass9df139e2020-04-24 14:54:54 +0530325 # Performing Sanity Test to make sure subscribers are all DHCP and pingable
326 Run Keyword If ${has_dataplane} Clean Up Linux
327 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test DT
328 ${podStatusOutput}= Run kubectl get pods -n ${NAMESPACE}
329 Log ${podStatusOutput}
330 ${countAfterRestart}= Run kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
331 Should Be Equal As Strings ${countAfterRestart} ${countBforRestart}
332 # Scale Down the Of-Agent Deployment
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530333 Scale K8s Deployment ${NAMESPACE} voltha-voltha-ofagent 0
Hardik Windlass9df139e2020-04-24 14:54:54 +0530334 Sleep 30s
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800335 FOR ${I} IN RANGE 0 ${num_all_onus}
Hardik Windlass9df139e2020-04-24 14:54:54 +0530336 ${src}= Set Variable ${hosts.src[${I}]}
337 ${dst}= Set Variable ${hosts.dst[${I}]}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800338 ${of_id}= Get ofID From OLT List ${src['olt']}
Hardik Windlass9df139e2020-04-24 14:54:54 +0530339 ${onu_device_id}= Get Device ID From SN ${src['onu']}
340 ${onu_port}= Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
341 ... Get ONU Port in ONOS ${src['onu']} ${of_id}
342 # Verify ONU state in voltha
Suchitra Vemuricdc32d82020-07-17 12:24:46 -0700343 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 360s 5s Validate Device
Hardik Windlass9df139e2020-04-24 14:54:54 +0530344 ... ENABLED ACTIVE REACHABLE
345 ... ${src['onu']} onu=True onu_reason=omci-flows-pushed
346 # Check ONU port is Disabled in ONOS
347 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 120s 2s
Hardik Windlass39015672021-07-05 05:48:08 +0000348 ... Verify UNI Port Is Disabled ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${src['onu']}
Hardik Windlass9df139e2020-04-24 14:54:54 +0530349 # Verify subscriber access flows are added for the ONU port
350 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
351 ... Verify Subscriber Access Flows Added For ONU DT ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${of_id}
352 ... ${onu_port} ${nni_port} ${src['s_tag']}
353 # Verify Ping
354 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Check Ping True
355 ... ${dst['dp_iface_ip_qinq']} ${src['dp_iface_name']} ${src['ip']}
356 ... ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
Hardik Windlass9df139e2020-04-24 14:54:54 +0530357 END
358 # Scale Up the Of-Agent Deployment
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530359 Scale K8s Deployment ${NAMESPACE} voltha-voltha-ofagent 1
Hardik Windlass9df139e2020-04-24 14:54:54 +0530360 Wait Until Keyword Succeeds ${waitforRestart} 2s Validate Pod Status ofagent ${NAMESPACE}
361 ... Running
362 # Performing Sanity Test to make sure subscribers are all DHCP and pingable
363 Run Keyword If ${has_dataplane} Clean Up Linux
364 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test DT
365 Log to console Pod ${podName} restarted and sanity checks passed successfully
366
367Sanity E2E Test for OLT/ONU on POD With Core Fail and Restart for DT
368 [Documentation] Deploys an device instance and waits for it to authenticate. After
369 ... authentication is successful the rw-core deployment is scaled to 0 instances to
370 ... simulate a POD crash. The test then scales the rw-core back to a single instance
371 ... and configures ONOS for access. The test succeeds if the device is able to
372 ... complete the DHCP sequence.
Hardik Windlass43531332021-05-19 07:07:03 +0000373 [Tags] functionalDt rwcore-restart-Dt
Hardik Windlass9df139e2020-04-24 14:54:54 +0530374 [Setup] Run Keywords Start Logging RwCoreFailAndRestart-Dt
375 ... AND Clear All Devices Then Create New Device
Hardik Windlass43531332021-05-19 07:07:03 +0000376 [Teardown] Run Keywords Run Keyword If ${logging} Collect Logs
Hardik Windlass9df139e2020-04-24 14:54:54 +0530377 ... AND Stop Logging RwCoreFailAndRestart-Dt
378 #... AND Delete Device and Verify
Hardik Windlass9df139e2020-04-24 14:54:54 +0530379 Run Keyword If ${has_dataplane} Clean Up Linux
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800380 FOR ${I} IN RANGE 0 ${olt_count}
381 ${olt_serial_number}= Get From Dictionary ${olt_ids}[${I}] sn
382 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
383 ${of_id}= Wait Until Keyword Succeeds ${timeout} 15s Validate OLT Device in ONOS
384 ... ${olt_serial_number}
385 ${nni_port}= Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
386 ... Get NNI Port in ONOS ${of_id}
387 # Set Global Variable ${nni_port}
388 END
389 FOR ${I} IN RANGE 0 ${num_all_onus}
Hardik Windlass9df139e2020-04-24 14:54:54 +0530390 ${src}= Set Variable ${hosts.src[${I}]}
391 ${dst}= Set Variable ${hosts.dst[${I}]}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800392 ${of_id}= Get ofID From OLT List ${src['olt']}
Hardik Windlass9df139e2020-04-24 14:54:54 +0530393 ${onu_device_id}= Get Device ID From SN ${src['onu']}
394 ${onu_port}= Wait Until Keyword Succeeds ${timeout} 2s Get ONU Port in ONOS ${src['onu']}
395 ... ${of_id}
396 # Bring up the device and verify it authenticates
Suchitra Vemuricdc32d82020-07-17 12:24:46 -0700397 Wait Until Keyword Succeeds 360s 5s Validate Device ENABLED ACTIVE REACHABLE
Hardik Windlass8b446492021-06-10 06:25:23 +0000398 ... ${onu_device_id} onu=True onu_reason=initial-mib-downloaded by_dev_id=True
Hardik Windlass9df139e2020-04-24 14:54:54 +0530399 END
400
401 # Scale down the rw-core deployment to 0 PODs and once confirmed, scale it back to 1
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530402 Scale K8s Deployment voltha voltha-voltha-rw-core 0
403 Wait Until Keyword Succeeds ${timeout} 2s Pod Does Not Exist voltha voltha-voltha-rw-core
Hardik Windlass9df139e2020-04-24 14:54:54 +0530404 # Ensure the ofagent POD goes "not-ready" as expected
405 Wait Until keyword Succeeds ${timeout} 2s
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530406 ... Check Expected Available Deployment Replicas voltha voltha-voltha-ofagent 0
Hardik Windlass9df139e2020-04-24 14:54:54 +0530407 # Scale up the core deployment and make sure both it and the ofagent deployment are back
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530408 Scale K8s Deployment voltha voltha-voltha-rw-core 1
Hardik Windlass9df139e2020-04-24 14:54:54 +0530409 Wait Until Keyword Succeeds ${timeout} 2s
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530410 ... Check Expected Available Deployment Replicas voltha voltha-voltha-rw-core 1
Hardik Windlass9df139e2020-04-24 14:54:54 +0530411 Wait Until Keyword Succeeds ${timeout} 2s
Hardik Windlass79b40ff2020-06-11 22:55:47 +0530412 ... Check Expected Available Deployment Replicas voltha voltha-voltha-ofagent 1
Hardik Windlass9df139e2020-04-24 14:54:54 +0530413 # For some reason scaling down and up the POD behind a service causes the port forward to stop working,
414 # so restart the port forwarding for the API service
David Bainbridge07321ff2020-06-12 13:55:42 -0700415 Restart VOLTHA Port Forward voltha-api
Hardik Windlass9df139e2020-04-24 14:54:54 +0530416 # Ensure that the ofagent pod is up and ready and the device is available in ONOS, this
417 # represents system connectivity being restored
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800418 FOR ${I} IN RANGE 0 ${olt_count}
419 ${olt_serial_number}= Get From Dictionary ${olt_ids}[${I}] sn
420 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
421 ${of_id}= Wait Until Keyword Succeeds ${timeout} 15s Validate OLT Device in ONOS
422 ... ${olt_serial_number}
Girish Gowdrae4de3b32021-03-23 22:20:00 -0700423 Wait Until Keyword Succeeds 120s 2s Device Is Available In ONOS
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800424 ... http://karaf:karaf@${ONOS_REST_IP}:${ONOS_REST_PORT} ${of_id}
425 END
Hardik Windlass9df139e2020-04-24 14:54:54 +0530426
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800427 FOR ${I} IN RANGE 0 ${num_all_onus}
Andy Bavier52094622020-05-12 15:54:24 -0700428 ${src}= Set Variable ${hosts.src[${I}]}
429 ${dst}= Set Variable ${hosts.dst[${I}]}
Suchitra Vemuria6879aa2020-11-03 11:03:11 -0800430 ${of_id}= Get ofID From OLT List ${src['olt']}
Andy Bavier52094622020-05-12 15:54:24 -0700431 ${onu_port}= Wait Until Keyword Succeeds ${timeout} 2s Get ONU Port in ONOS ${src['onu']}
432 ... ${of_id}
Hardik Windlass9df139e2020-04-24 14:54:54 +0530433 # Add subscriber access and verify that DHCP completes to ensure system is still functioning properly
TorstenThieme4e2168e2021-06-22 14:01:47 +0000434 Wait Until Keyword Succeeds ${timeout} 2s Execute ONOS CLI Command use single connection ${ONOS_SSH_IP}
Hardik Windlass9df139e2020-04-24 14:54:54 +0530435 ... ${ONOS_SSH_PORT} volt-add-subscriber-access ${of_id} ${onu_port}
436 # Verify subscriber access flows are added for the ONU port
437 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
438 ... Verify Subscriber Access Flows Added For ONU DT ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${of_id}
439 ... ${onu_port} ${nni_port} ${src['s_tag']}
440 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Validate DHCP and Ping True
441 ... True ${src['dp_iface_name']} ${src['s_tag']} ${src['c_tag']} ${dst['dp_iface_ip_qinq']}
442 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
443 ... ${dst['dp_iface_name']} ${dst['ip']} ${dst['user']} ${dst['pass']} ${dst['container_type']}
444 ... ${dst['container_name']}
445 END
446
Hemadf003682020-04-28 21:22:22 +0530447Verify OLT Soft Reboot for DT
448 [Documentation] Test soft reboot of the OLT using voltctl command
Hardik Windlass20a503d2021-06-21 11:58:08 +0000449 [Tags] VOL-2818 OLTSoftRebootDt functionalDt
Hemadf003682020-04-28 21:22:22 +0530450 [Setup] Start Logging OLTSoftRebootDt
Hardik Windlass20a503d2021-06-21 11:58:08 +0000451 [Teardown] Run Keywords Run Keyword If ${logging} Collect Logs
Hemadf003682020-04-28 21:22:22 +0530452 ... AND Stop Logging OLTSoftRebootDt
Hardik Windlass20a503d2021-06-21 11:58:08 +0000453 FOR ${I} IN RANGE 0 ${olt_count}
454 ${olt_serial_number}= Get From Dictionary ${olt_ids}[${I}] sn
455 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
456 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 360s 5s
457 ... Validate OLT Device ENABLED ACTIVE
458 ... REACHABLE ${olt_serial_number}
459 # Reboot the OLT using "voltctl device reboot" command
460 Reboot Device ${olt_device_id}
461 # Wait for the OLT to actually go down
462 Wait Until Keyword Succeeds 360s 5s Validate OLT Device ENABLED UNKNOWN UNREACHABLE
463 ... ${olt_serial_number}
464 END
Hemadf003682020-04-28 21:22:22 +0530465 #Verify that ping fails
Hardik Windlass20a503d2021-06-21 11:58:08 +0000466 FOR ${I} IN RANGE 0 ${num_all_onus}
Hemadf003682020-04-28 21:22:22 +0530467 ${src}= Set Variable ${hosts.src[${I}]}
468 ${dst}= Set Variable ${hosts.dst[${I}]}
469 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure
470 ... Wait Until Keyword Succeeds 60s 2s
471 ... Check Ping False ${dst['dp_iface_ip_qinq']} ${src['dp_iface_name']}
472 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
473 END
Hardik Windlass20a503d2021-06-21 11:58:08 +0000474 # Check OLT states
475 FOR ${I} IN RANGE 0 ${olt_count}
476 ${olt_serial_number}= Get From Dictionary ${list_olts}[${I}] sn
477 ${olt_ssh_ip}= Get From Dictionary ${list_olts}[${I}] sship
478 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
479 # Wait for the OLT to come back up
480 Run Keyword If ${has_dataplane} Wait Until Keyword Succeeds 120s 10s
481 ... Check Remote System Reachability True ${olt_ssh_ip}
482 # Check OLT states
483 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 360s 5s
484 ... Validate OLT Device ENABLED ACTIVE
485 ... REACHABLE ${olt_serial_number}
486 END
Hemadf003682020-04-28 21:22:22 +0530487 # Waiting extra time for the ONUs to come up
488 Sleep 60s
Hardik Windlass20a503d2021-06-21 11:58:08 +0000489 #Check after reboot that ONUs are active, DHCP/pingable
Hemadf003682020-04-28 21:22:22 +0530490 Run Keyword If ${has_dataplane} Clean Up Linux
491 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test DT
492
Hema8c1a0322020-05-26 16:02:32 +0530493Verify ONU Soft Reboot for DT
494 [Documentation] Test soft reboot of the ONU using voltctl command
495 [Tags] VOL-2820 ONUSoftRebootDt notready
496 [Setup] Start Logging ONUSoftRebootDt
497 #... AND Setup
498 [Teardown] Run Keywords Collect Logs
499 ... AND Stop Logging ONUSoftRebootDt
500 #... AND Delete Device and Verify
Hema8c1a0322020-05-26 16:02:32 +0530501 #Reboot the ONU and verify that ping fails
502 FOR ${I} IN RANGE 0 ${num_onus}
503 ${src}= Set Variable ${hosts.src[${I}]}
504 ${dst}= Set Variable ${hosts.dst[${I}]}
505 ${onu_device_id}= Get Device ID From SN ${src['onu']}
506 ${onu_port}= Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2s
507 ... Get ONU Port in ONOS ${src['onu']} ${of_id}
508 Reboot Device ${onu_device_id}
509 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure
510 ... Wait Until Keyword Succeeds 60s 2s
511 ... Check Ping False ${dst['dp_iface_ip_qinq']} ${src['dp_iface_name']}
512 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
513 Verify ping is succesful except for given device ${num_onus} ${onu_device_id}
514 # Remove Subscriber Access (To replicate DT workflow)
TorstenThieme4e2168e2021-06-22 14:01:47 +0000515 Wait Until Keyword Succeeds ${timeout} 2s Execute ONOS CLI Command use single connection ${ONOS_SSH_IP}
Hema8c1a0322020-05-26 16:02:32 +0530516 ... ${ONOS_SSH_PORT} volt-remove-subscriber-access ${of_id} ${onu_port}
517 # Delete ONU Device (To replicate DT workflow)
518 Delete Device ${onu_device_id}
519 Sleep 40s
520 # Check ONU port is Enabled in ONOS
521 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 120s 2s
Hardik Windlass39015672021-07-05 05:48:08 +0000522 ... Verify UNI Port Is Enabled ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${src['onu']}
Hema8c1a0322020-05-26 16:02:32 +0530523 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 2
TorstenThieme4e2168e2021-06-22 14:01:47 +0000524 ... Execute ONOS CLI Command use single connection ${ONOS_SSH_IP} ${ONOS_SSH_PORT}
Hema8c1a0322020-05-26 16:02:32 +0530525 ... volt-add-subscriber-access ${of_id} ${onu_port}
526 # Verify ONU state in voltha
Suchitra Vemuricdc32d82020-07-17 12:24:46 -0700527 Run Keyword And Continue On Failure Wait Until Keyword Succeeds 360s 5s Validate Device
Hema8c1a0322020-05-26 16:02:32 +0530528 ... ENABLED ACTIVE REACHABLE
529 ... ${src['onu']} onu=True onu_reason=omci-flows-pushed
530 # Verify subscriber access flows are added for the ONU port
531 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
532 ... Verify Subscriber Access Flows Added For ONU DT ${ONOS_SSH_IP} ${ONOS_SSH_PORT} ${of_id}
533 ... ${onu_port} ${nni_port} ${src['s_tag']}
534 #Run Keyword If ${has_dataplane} Clean Up Linux
535 Run Keyword If ${has_dataplane} Run Keyword And Continue On Failure Validate DHCP and Ping True
536 ... True ${src['dp_iface_name']} ${src['s_tag']} ${src['c_tag']} ${dst['dp_iface_ip_qinq']}
537 ... ${src['ip']} ${src['user']} ${src['pass']} ${src['container_type']} ${src['container_name']}
538 ... ${dst['dp_iface_name']} ${dst['ip']} ${dst['user']} ${dst['pass']} ${dst['container_type']}
539 ... ${dst['container_name']}
Hema8c1a0322020-05-26 16:02:32 +0530540 END
541 # Verify ONOS Flows
542 # Number of Access Flows on ONOS equals 4 * the Number of Active ONUs (2 for each downstream and upstream)
543 ${onos_flows_count}= Evaluate 4 * ${num_onus}
544 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 5s
545 ... Verify Subscriber Access Flows Added Count DT ${ONOS_SSH_IP} ${ONOS_SSH_PORT}
546 ... ${of_id} ${onos_flows_count}
547 # Verify VOLTHA Flows
548 # Number of per OLT Flows equals Twice the Number of Active ONUs (each for downstream and upstream) + 1 for LLDP
549 ${olt_flows}= Evaluate 2 * ${num_onus} + 1
550 # Number of per ONU Flows equals 2 (one each for downstream and upstream)
551 ${onu_flows}= Set Variable 2
552 Run Keyword Wait Until Keyword Succeeds ${timeout} 5s Validate OLT Flows ${olt_flows}
553 ${List_ONU_Serial} Create List
554 Set Suite Variable ${List_ONU_Serial}
555 Build ONU SN List ${List_ONU_Serial}
556 Log ${List_ONU_Serial}
557 Run Keyword Wait Until Keyword Succeeds ${timeout} 5s Validate ONU Flows
558 ... ${List_ONU_Serial} ${onu_flows}
Hemadf003682020-04-28 21:22:22 +0530559
Hardik Windlassb9bdd502020-04-17 14:46:21 +0530560*** Keywords ***
561Setup Suite
562 [Documentation] Set up the test suite
563 Common Test Suite Setup
Andrea Campanella15619c72020-04-30 09:48:04 +0200564 #power_switch.robot needs it to support different vendor's power switch
565 ${switch_type}= Get Variable Value ${web_power_switch.type}
566 Run Keyword If "${switch_type}"!="" Set Global Variable ${powerswitch_type} ${switch_type}
Hardik Windlass4ed54502021-05-14 07:34:15 +0000567 # Run Pre-test Setup for Soak Job
568 # Note: As soak requirement, it expects that the devices under test are already created and enabled
569 Run Keyword If '${SOAK_TEST}'=='True' Setup Soak
570
Hardik Windlassb9bdd502020-04-17 14:46:21 +0530571
572Clear All Devices Then Create New Device
573 [Documentation] Remove any devices from VOLTHA and ONOS
574 # Remove all devices from voltha and nos
575 Delete All Devices and Verify
576 # Execute normal test Setup Keyword
577 Setup
578