blob: c3916319e6483070dd5868439abf57c37c5a4e84 [file] [log] [blame]
TorstenThieme440b7c02020-12-18 15:42:57 +00001# Copyright 2020 - 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
15*** Settings ***
TorstenThiemec3c23232021-01-13 13:06:31 +000016Documentation Test different Reconcile scenarios of ONU Go adapter with all three workflows ATT, DT and TT.
TorstenThieme440b7c02020-12-18 15:42:57 +000017... Test suite is dedicated for only one ONU! Run robot with bbsim-kind.yaml only!
18... Not for DT/TT workflow!
19... Hint: default timeout in BBSim to mimic OLT reboot is 60 seconds!
20... This behaviour of BBSim can be modified by 'oltRebootDelay: 60' in BBSim section of helm chart or
21... used values.yaml during 'voltha up'.
22Suite Setup Setup Suite
23Suite Teardown Teardown Suite
24Test Setup Setup
25Test Teardown Teardown
26Library Collections
27Library String
28Library OperatingSystem
29Library XML
30Library RequestsLibrary
31Library ../../libraries/DependencyLibrary.py
32Resource ../../libraries/onos.robot
33Resource ../../libraries/voltctl.robot
34Resource ../../libraries/voltha.robot
35Resource ../../libraries/utils.robot
36Resource ../../libraries/k8s.robot
37Resource ../../libraries/onu_utilities.robot
38Resource ../../variables/variables.robot
39
40*** Variables ***
Hardik Windlass4288c6a2021-09-28 07:22:06 +000041${NAMESPACE} voltha
42${INFRA_NAMESPACE} default
TorstenThieme440b7c02020-12-18 15:42:57 +000043${timeout} 60s
44${of_id} 0
45${logical_id} 0
46${has_dataplane} True
47${external_libs} True
48${teardown_device} True
49${scripts} ../../scripts
50# Per-test logging on failure is turned off by default; set this variable to enable
51${container_log_dir} ${None}
52# flag for first test, needed due default timeout in BBSim to mimic OLT reboot of 60 seconds
53${firsttest} True
TorstenThiemec3c23232021-01-13 13:06:31 +000054# determines the environment workflow: DT, TT or ATT (default)
55# example: -v workflow:DT
56${workflow} ATT
TorstenThieme47983692021-06-17 10:43:35 +000057# KV Store Prefix
58# example: -v kvstoreprefix:voltha_voltha
59${kvstoreprefix} voltha_voltha
TorstenThieme440b7c02020-12-18 15:42:57 +000060# flag debugmode is used, if true timeout calculation various, can be passed via the command line too
61# example: -v debugmode:True
62${debugmode} False
63# logging flag to enable Collect Logs, can be passed via the command line too
64# example: -v logging:True
65${logging} False
66# if True execution will be paused before clean up, only use in case of manual testing, do not use in ci pipeline!
67# example: -v pausebeforecleanup:True
68${pausebeforecleanup} False
69# if True some outputs to console are done during running tests e.g. long duration flow test
70# example: -v print2console:True
71${print2console} False
72# if True (hard) kill will be used to restart onu adapter, else (soft) restart mechanism of k8s will be used
73# example: -v usekill2restart:True
74${usekill2restart} False
TorstenThieme45071602021-03-16 12:14:37 +000075# if True etcd check will be executed in test case teardown, if False etcd check will be executed in suite teardown
76# example: -v etcdcheckintestteardown:False
77${etcdcheckintestteardown} True
TorstenThieme440b7c02020-12-18 15:42:57 +000078${data_dir} ../data
TorstenThieme70bc5262021-01-19 12:12:55 +000079${suppressaddsubscriber} True
TorstenThieme440b7c02020-12-18 15:42:57 +000080
Hardik Windlassb1bda362021-11-24 11:54:36 +000081# flag to choose the subscriber provisioning command type in ONOS
82# TT often provision a single services for a subscriber (eg: hsia, voip, ...) one after the other.
83# if set to True, command used is "volt-add-subscriber-unitag"
84# if set to False, comand used is "volt-add-subscriber-access"
85${unitag_sub} False
TorstenThieme440b7c02020-12-18 15:42:57 +000086
87*** Test Cases ***
88Reconcile In Starting-OpenOmci
89 [Documentation] Validates the Reconcile in Starting-OpenOmci
90 ... Reconcile test during starting-openomci in AT&T-workflow:
91 ... - create and enable one BBSIM-ONU (no MIB-template should be available in KV-store)
TorstenThiemec3c23232021-01-13 13:06:31 +000092 ... - wait for device reason starting-openomci
TorstenThieme440b7c02020-12-18 15:42:57 +000093 ... - kill the open-onu-adapter-go
TorstenThiemec3c23232021-01-13 13:06:31 +000094 ... - wait for open-onu-adapter-go to restart
95 ... - perform sanity test include add subscriber
TorstenThieme440b7c02020-12-18 15:42:57 +000096 ... - delete ONU and MIB-template in KV-store
97 [Tags] functionalOnuGo ReconcileStartingOpenOmciOnuGo
98 [Setup] Run Keywords Start Logging ReconcileStartingOpenOmciOnuGo
99 ... AND Setup Test
100 Run Keyword If ${has_dataplane} Clean Up Linux
TorstenThiemee9017be2021-03-05 16:59:31 +0000101 Do Reconcile In Determined State starting-openomci
TorstenThieme3494ceb2021-07-19 09:47:24 +0000102 [Teardown] Run Keywords Run Keyword If ${logging} Get Logical Id of OLT
103 ... AND Run Keyword If ${logging} Collect Logs
TorstenThieme440b7c02020-12-18 15:42:57 +0000104 ... AND Teardown Test
105 ... AND Stop Logging ReconcileStartingOpenOmciOnuGo
106
107Reconcile In Initial-Mib-Downloaded
108 [Documentation] Validates the Reconcile in initial-mib-downloaded
109 ... Reconcile test during initial-mib-downloaded in AT&T-workflow:
110 ... - create and enable one BBSIM-ONU (no MIB-template should be available in KV-store)
TorstenThiemec3c23232021-01-13 13:06:31 +0000111 ... - wait for device reason initial-mib-downloaded
TorstenThieme440b7c02020-12-18 15:42:57 +0000112 ... - kill the open-onu-adapter-go
TorstenThiemec3c23232021-01-13 13:06:31 +0000113 ... - wait for open-onu-adapter-go to restart
114 ... - perform sanity test include add subscriber
TorstenThieme440b7c02020-12-18 15:42:57 +0000115 ... - delete ONU and MIB-template in KV-store
116 [Tags] functionalOnuGo ReconcileInitialMibDownloadedOnuGo
117 [Setup] Run Keywords Start Logging ReconcileInitialMibDownloadedOnuGo
118 ... AND Setup Test
119 Run Keyword If ${has_dataplane} Clean Up Linux
TorstenThiemee9017be2021-03-05 16:59:31 +0000120 Do Reconcile In Determined State initial-mib-downloaded
TorstenThieme3494ceb2021-07-19 09:47:24 +0000121 [Teardown] Run Keywords Run Keyword If ${logging} Get Logical Id of OLT
122 ... AND Run Keyword If ${logging} Collect Logs
TorstenThieme440b7c02020-12-18 15:42:57 +0000123 ... AND Teardown Test
124 ... AND Stop Logging ReconcileInitialMibDownloadedOnuGo
125
126Reconcile In Omci-Flows-Pushed
127 [Documentation] Validates the Reconcile in omci-flows-pushed
128 ... Former testcase: Reconcile Onu Device in Testsuite Voltha_ONUStateTest.robot
129 ... Reconcile test during omci-flows-pushed in AT&T-workflow:
130 ... - create and enable one BBSIM-ONU (no MIB-template should be available in KV-store)
TorstenThiemec3c23232021-01-13 13:06:31 +0000131 ... - perform sanity test include add subscriber
TorstenThieme440b7c02020-12-18 15:42:57 +0000132 ... - kill the open-onu-adapter-go
TorstenThiemec3c23232021-01-13 13:06:31 +0000133 ... - wait for open-onu-adapter-go to restart
134 ... - perform sanity test suppress add subscriber
TorstenThieme440b7c02020-12-18 15:42:57 +0000135 ... - disable onu device
TorstenThiemec3c23232021-01-13 13:06:31 +0000136 ... - wait for device corresponding onu reason e.g. tech-profile-config-delete-success
137 ... - check UNI-ports disabled in ONOS
TorstenThieme440b7c02020-12-18 15:42:57 +0000138 ... - enable onu device
TorstenThiemec3c23232021-01-13 13:06:31 +0000139 ... - perform sanity test suppress add subscriber
TorstenThieme440b7c02020-12-18 15:42:57 +0000140 ... - delete ONU and MIB-template in KV-store
141 [Tags] functionalOnuGo ReconcileOmciFlowsPushedOnuGo
142 [Setup] Run Keywords Start Logging ReconcileOmciFlowsPushedOnuGo
143 ... AND Setup Test
144 Run Keyword If ${has_dataplane} Clean Up Linux
TorstenThiemee9017be2021-03-05 16:59:31 +0000145 Do Reconcile In Omci-Flows-Pushed
TorstenThieme3494ceb2021-07-19 09:47:24 +0000146 [Teardown] Run Keywords Run Keyword If ${logging} Get Logical Id of OLT
147 ... AND Run Keyword If ${logging} Collect Logs
TorstenThieme440b7c02020-12-18 15:42:57 +0000148 ... AND Teardown Test
149 ... AND Stop Logging ReconcileOmciFlowsPushedOnuGo
150
151Reconcile For Disabled Onu Device
152 [Documentation] Validates the Reconcile for disabled Onu device
153 ... Reconcile test for disabled Onu device in AT&T-workflow:
154 ... - create and enable one BBSIM-ONU (no MIB-template should be available in KV-store)
TorstenThiemec3c23232021-01-13 13:06:31 +0000155 ... - perform sanity test include add subscriber
TorstenThieme440b7c02020-12-18 15:42:57 +0000156 ... - disable onu device
TorstenThiemec3c23232021-01-13 13:06:31 +0000157 ... - wait for device corresponding onu reason e.g. tech-profile-config-delete-success
158 ... - check UNI-ports disabled in ONOS
159 ... - kill the open-onu-adapter-go
160 ... - wait for open-onu-adapter-go to restart
161 ... - check device reason is still the same before restart
TorstenThieme440b7c02020-12-18 15:42:57 +0000162 ... - enable onu device
TorstenThiemec3c23232021-01-13 13:06:31 +0000163 ... - perform sanity test suppress add subscriber
TorstenThieme440b7c02020-12-18 15:42:57 +0000164 ... - delete ONU and MIB-template in KV-store
165 [Tags] functionalOnuGo ReconcileDisabledOnuDeviceOnuGo
166 [Setup] Run Keywords Start Logging ReconcileDisabledOnuDeviceOnuGo
167 ... AND Setup Test
168 Run Keyword If ${has_dataplane} Clean Up Linux
TorstenThiemee9017be2021-03-05 16:59:31 +0000169 Do Reconcile For Disabled Onu Device
TorstenThieme3494ceb2021-07-19 09:47:24 +0000170 [Teardown] Run Keywords Run Keyword If ${logging} Get Logical Id of OLT
171 ... AND Run Keyword If ${logging} Collect Logs
TorstenThieme440b7c02020-12-18 15:42:57 +0000172 ... AND Teardown Test
173 ... AND Stop Logging ReconcileDisabledOnuDeviceOnuGo
174
TorstenThieme712b2962021-11-17 14:16:15 +0000175Olt Deletion After Adapter Restart
176 [Documentation] Validates the OLT deletion after adapter restart
177 ... - prefered environment is two ONUs are active on each of two OLTs, but test works also with single ONU/OLT
178 ... - restart the ONU adapter preferred via "kubectl delete pod"
179 ... - delete one OLT immediately after the restart has been initiated
180 ... - wait until the restart of the ONU adapter and the reconcile processing are finished
181 ... - check whether the ONUs on the remaining OLT have been properly reconciled (if avaialable)
182 ... - check whether the ONUs at the deleted OLT have disappeared from the device list
183 ... - KV store data of these ONUs are deleted under:
184 ... - <kvStorePrefix>/openonu/<deviceId>
185 ... - <kvStorePrefix>/openonu/pm-data/<deviceId>
186 ... - check for not deleted device(s) reason is still the same before restart (if available)
187 ... - delete ONU and MIB-template in KV-store
188 ... Check [VOL-4443] for more details
189 [Tags] functionalOnuGo OltDeletionAfterAdapterRestartOnuGo
190 [Setup] Run Keywords Start Logging OltDeletionAfterAdapterRestartOnuGo
191 ... AND Setup Test
192 Run Keyword If ${has_dataplane} Clean Up Linux
193 Do Olt Deletion After Adapter Restart
194 [Teardown] Run Keywords Run Keyword If ${logging} Get Logical Id of OLT
195 ... AND Run Keyword If ${logging} Collect Logs
196 ... AND Teardown Test
197 ... AND Stop Logging OltDeletionAfterAdapterRestartOnuGo
198
TorstenThieme440b7c02020-12-18 15:42:57 +0000199*** Keywords ***
200Setup Suite
201 [Documentation] Set up the test suite
Andrea Campanella82add372021-11-05 12:01:15 +0100202 Start Logging Setup or Teardown Setup-${SUITE NAME}
TorstenThieme440b7c02020-12-18 15:42:57 +0000203 ${LogInfo}= Catenate
204 ... \r\nPassed arguments:
205 ... debugmode:${debugmode}, logging:${logging}, pausebeforecleanup:${pausebeforecleanup},
TorstenThieme47983692021-06-17 10:43:35 +0000206 ... print2console:${print2console}, usekill2restart:${usekill2restart}, workflow:${workflow},
207 ... kvstoreprefix:${kvstoreprefix}
TorstenThieme440b7c02020-12-18 15:42:57 +0000208 Log ${LogInfo} console=yes
209 Common Test Suite Setup
TorstenThieme440b7c02020-12-18 15:42:57 +0000210 # delete etcd MIB Template Data
Hardik Windlass4288c6a2021-09-28 07:22:06 +0000211 Delete MIB Template Data ${INFRA_NAMESPACE}
TorstenThieme45071602021-03-16 12:14:37 +0000212 # delete etcd onu data
Hardik Windlass4288c6a2021-09-28 07:22:06 +0000213 Delete ONU Go Adapter ETCD Data namespace=${INFRA_NAMESPACE} validate=True
Andrea Campanella82add372021-11-05 12:01:15 +0100214 Run Keyword If ${logging} Collect Logs
215 Stop Logging Setup or Teardown Setup-${SUITE NAME}
TorstenThieme440b7c02020-12-18 15:42:57 +0000216
TorstenThieme70bc5262021-01-19 12:12:55 +0000217
TorstenThieme440b7c02020-12-18 15:42:57 +0000218Teardown Suite
219 [Documentation] Replaces the Suite Teardown in utils.robot.
220 ... Cleans up and checks all ONU ports disabled in ONOS.
221 ... Furthermore gives the possibility to pause the execution.
Andrea Campanella82add372021-11-05 12:01:15 +0100222 Start Logging Setup or Teardown Teardown-${SUITE NAME}
TorstenThieme440b7c02020-12-18 15:42:57 +0000223 Run Keyword If ${pausebeforecleanup} Import Library Dialogs
224 Run Keyword If ${pausebeforecleanup} Pause Execution Press OK to continue with clean up!
225 Run Keyword If ${pausebeforecleanup} Log Teardown will be continued... console=yes
226 Run Keyword If ${teardown_device} Delete All Devices and Verify
Hardik Windlass4288c6a2021-09-28 07:22:06 +0000227 Run Keyword If ${usekill2restart} Restart Pod By Label ${NAMESPACE} app adapter-open-onu
TorstenThieme45071602021-03-16 12:14:37 +0000228 Run Keyword Unless ${etcdcheckintestteardown} Wait Until Keyword Succeeds ${timeout} 1s
Hardik Windlass4288c6a2021-09-28 07:22:06 +0000229 ... Validate Onu Data In Etcd ${INFRA_NAMESPACE} 0 ${kvstoreprefix} without_pm_data=False
TorstenThieme731a7592021-07-01 14:26:54 +0000230 Wait for Ports in ONOS for all OLTs ${ONOS_SSH_IP} ${ONOS_SSH_PORT} 0 BBSM ${timeout}
Andrea Campanella82add372021-11-05 12:01:15 +0100231 Run Keyword If ${logging} Collect Logs
232 Stop Logging Setup or Teardown Teardown-${SUITE NAME}
TorstenThieme440b7c02020-12-18 15:42:57 +0000233 Close All ONOS SSH Connections
234
235Setup Test
236 [Documentation] Pre-test Setup
237 #test for empty device list
238 Test Empty Device List
239 Run Keyword If ${has_dataplane} Wait Until Keyword Succeeds 120s 10s Openolt is Up
240 ... ${olt_ssh_ip} ${olt_user} ${olt_pass}
241 Run Keyword If ${has_dataplane} Sleep 60s
242 #restart open-onu pod to reset crash loop back off mechansim of kubenetes
TorstenThieme37165402021-09-03 11:39:40 +0000243 Run Keyword If "${firsttest}"=="False" and "${usekill2restart}"=="True"
Hardik Windlass4288c6a2021-09-28 07:22:06 +0000244 ... Restart Pod By Label ${NAMESPACE} app adapter-open-onu
TorstenThieme440b7c02020-12-18 15:42:57 +0000245 Run Keyword If "${firsttest}"=="False" Sleep 35s
246 ${firsttest} Set Variable False
247 Set Suite Variable ${firsttest}
248 # Create a list of olt ids (logical and device_id)
249 ${olt_ids} Create List
250 FOR ${I} IN RANGE 0 ${num_olts}
251 #create/preprovision device
Andrea Campanella3dcce272021-01-15 16:04:47 +0100252 ${olt_device_id}= Run Keyword If "${list_olts}[${I}][type]" == "${None}"
TorstenThieme44136642021-02-12 13:41:17 +0000253 ... Create Device ${list_olts}[${I}][ip] ${list_olts}[${I}][oltport]
254 ... ELSE Create Device ${list_olts}[${I}][ip] ${list_olts}[${I}][oltport] ${list_olts}[${I}][type]
TorstenThieme440b7c02020-12-18 15:42:57 +0000255 ${olt_serial_number}= Set Variable ${list_olts}[${I}][sn]
256 #validate olt states
257 Wait Until Keyword Succeeds ${timeout} 5s
Hardik Windlass8b446492021-06-10 06:25:23 +0000258 ... Validate OLT Device PREPROVISIONED UNKNOWN UNKNOWN ${olt_device_id} by_dev_id=True
TorstenThieme440b7c02020-12-18 15:42:57 +0000259 Sleep 5s
260 ${logical_id}= Get Logical Device ID From SN ${olt_serial_number}
261 ${olt} Create Dictionary device_id ${olt_device_id} logical_id ${logical_id}
262 ... of_id ${of_id} sn ${olt_serial_number}
263 Append To List ${olt_ids} ${olt}
264 END
265 Set Global Variable ${olt_ids}
266
267Teardown Test
268 [Documentation] Post-test Teardown
TorstenThieme45071602021-03-16 12:14:37 +0000269 Run Keyword If ${pausebeforecleanup} Import Library Dialogs
270 Run Keyword If ${pausebeforecleanup} Pause Execution Press OK to continue with clean up!
271 Run Keyword If ${pausebeforecleanup} Log Teardown will be continued... console=yes
TorstenThiemee9017be2021-03-05 16:59:31 +0000272 Run Keyword If ${teardown_device} Delete All Devices and Verify
TorstenThieme440b7c02020-12-18 15:42:57 +0000273 # delete etcd MIB Template Data
Matteo Scandolo6b524122021-10-22 14:34:29 -0700274 Delete MIB Template Data ${INFRA_NAMESPACE}
TorstenThiemeb355eb62021-03-09 14:04:55 +0000275 # check etcd data are empty
TorstenThieme45071602021-03-16 12:14:37 +0000276 Run Keyword If ${etcdcheckintestteardown} Wait Until Keyword Succeeds ${timeout} 1s
Hardik Windlass4288c6a2021-09-28 07:22:06 +0000277 ... Validate Onu Data In Etcd ${INFRA_NAMESPACE} 0 ${kvstoreprefix} without_pm_data=False
TorstenThieme440b7c02020-12-18 15:42:57 +0000278 Sleep 5s
279
280Do Reconcile In Determined State
281 [Documentation] This keyword reconciles ONU device when passed reason is reached and
282 ... check the state afterwards.
283 ... Following steps will be executed:
284 ... - enable OLT device
285 ... - wait for passed openonu reason
286 ... - restart openonu adaptor
TorstenThiemec3c23232021-01-13 13:06:31 +0000287 ... - perform sanity test include add subscriber
TorstenThieme440b7c02020-12-18 15:42:57 +0000288 [Arguments] ${expected_onu_reason}
TorstenThiemec3c23232021-01-13 13:06:31 +0000289 ${admin_state} ${oper_status} ${connect_status} ${onu_state_nb} ${onu_state}= Map State
290 ... ${expected_onu_reason}
291 Should Be True ${onu_state_nb}<=5
292 ... Wrong expected onu reason ${expected_onu_reason}, must be lower than 'omci-flows-pushed'!
TorstenThieme440b7c02020-12-18 15:42:57 +0000293 FOR ${I} IN RANGE 0 ${num_olts}
294 #get olt serial number
295 ${olt_serial_number}= Set Variable ${list_olts}[${I}][sn]
296 #validate olt states
297 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
298 Enable Device ${olt_device_id}
299 END
300 Current State Test All Onus ${expected_onu_reason}
TorstenThieme96fe9ee2021-10-21 10:24:08 +0000301 Reconcile Onu Adapter ${NAMESPACE} ${usekill2restart} ACTIVE
TorstenThiemec3c23232021-01-13 13:06:31 +0000302 Run Keyword If "${workflow}"=="DT" Perform Sanity Test DT
TorstenThieme136ebf72021-02-26 14:27:07 +0000303 ... ELSE IF "${workflow}"=="TT" Perform Sanity Tests TT
TorstenThiemec3c23232021-01-13 13:06:31 +0000304 ... ELSE Perform Sanity Test
TorstenThieme440b7c02020-12-18 15:42:57 +0000305
306Do Reconcile For Disabled Onu Device
307 [Documentation] This keyword reconciles ONU device for a disabled onu device and
308 ... check the state afterwards.
309 ... Following steps will be executed:
310 ... - enable OLT device
TorstenThiemec3c23232021-01-13 13:06:31 +0000311 ... - perform sanity test include add subscriber
TorstenThieme440b7c02020-12-18 15:42:57 +0000312 ... - disable onu device
TorstenThiemec3c23232021-01-13 13:06:31 +0000313 ... - wait for corresponding openonu reason
TorstenThieme440b7c02020-12-18 15:42:57 +0000314 ... - check UNI-ports disabled in ONOS
315 ... - restart openonu adaptor
316 ... - check openonu adaptor is ready again
TorstenThiemec3c23232021-01-13 13:06:31 +0000317 ... - check device reason is still before restart
TorstenThieme440b7c02020-12-18 15:42:57 +0000318 ... - enable onu device
TorstenThiemec3c23232021-01-13 13:06:31 +0000319 ... - perform sanity test suppress add subscriber
TorstenThieme440b7c02020-12-18 15:42:57 +0000320 FOR ${I} IN RANGE 0 ${num_olts}
321 #get olt serial number
322 ${olt_serial_number}= Set Variable ${list_olts}[${I}][sn]
323 #validate olt states
324 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
325 Enable Device ${olt_device_id}
326 END
TorstenThiemec3c23232021-01-13 13:06:31 +0000327 Run Keyword If "${workflow}"=="DT" Perform Sanity Test DT
TorstenThieme136ebf72021-02-26 14:27:07 +0000328 ... ELSE IF "${workflow}"=="TT" Perform Sanity Tests TT
TorstenThiemec3c23232021-01-13 13:06:31 +0000329 ... ELSE Perform Sanity Test
TorstenThieme440b7c02020-12-18 15:42:57 +0000330 Disable Onu Device
TorstenThieme0ec95eb2021-11-23 14:56:26 +0000331 Current State Test All Onus tech-profile-config-delete-success
TorstenThieme96fe9ee2021-10-21 10:24:08 +0000332 Reconcile Onu Adapter ${NAMESPACE} ${usekill2restart} UNKNOWN
TorstenThieme0ec95eb2021-11-23 14:56:26 +0000333 Current State Test All Onus tech-profile-config-delete-success
TorstenThieme731a7592021-07-01 14:26:54 +0000334 Wait for all ONU Ports in ONOS Disabled ${ONOS_SSH_IP} ${ONOS_SSH_PORT}
TorstenThieme440b7c02020-12-18 15:42:57 +0000335 Enable Onu Device
TorstenThieme70bc5262021-01-19 12:12:55 +0000336 Run Keyword If "${workflow}"=="DT" Perform Sanity Test DT ${suppressaddsubscriber}
TorstenThieme136ebf72021-02-26 14:27:07 +0000337 ... ELSE IF "${workflow}"=="TT" Perform Sanity Tests TT ${suppressaddsubscriber}
TorstenThieme70bc5262021-01-19 12:12:55 +0000338 ... ELSE Perform Sanity Test ${suppressaddsubscriber}
TorstenThieme440b7c02020-12-18 15:42:57 +0000339
340Do Reconcile In Omci-Flows-Pushed
341 [Documentation] This keyword reconciles ONU device in omci-flows-pushed and check the state afterwards.
342 ... Reconcile test during omci-flows-pushed in AT&T-workflow:
343 ... - create and enable one BBSIM-ONU (no MIB-template should be available in KV-store)
TorstenThiemec3c23232021-01-13 13:06:31 +0000344 ... - perform sanity test include add subscriber
TorstenThieme440b7c02020-12-18 15:42:57 +0000345 ... - kill the open-onu-adapter-go
TorstenThiemec3c23232021-01-13 13:06:31 +0000346 ... - wait for open-onu-adapter-go to restart
347 ... - perform sanity test suppress add subscriber
TorstenThieme440b7c02020-12-18 15:42:57 +0000348 ... - disable onu device
TorstenThiemec3c23232021-01-13 13:06:31 +0000349 ... - wait for corresponding device reason
350 ... - check UNI-ports disabled in ONOS
TorstenThieme440b7c02020-12-18 15:42:57 +0000351 ... - enable onu device
TorstenThiemec3c23232021-01-13 13:06:31 +0000352 ... - perform sanity test supress add subscriber
TorstenThieme440b7c02020-12-18 15:42:57 +0000353 FOR ${I} IN RANGE 0 ${num_olts}
354 #get olt serial number
355 ${olt_serial_number}= Set Variable ${list_olts}[${I}][sn]
356 #validate olt states
357 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
358 Enable Device ${olt_device_id}
359 END
TorstenThiemec3c23232021-01-13 13:06:31 +0000360 Run Keyword If "${workflow}"=="DT" Perform Sanity Test DT
TorstenThieme136ebf72021-02-26 14:27:07 +0000361 ... ELSE IF "${workflow}"=="TT" Perform Sanity Tests TT
TorstenThiemec3c23232021-01-13 13:06:31 +0000362 ... ELSE Perform Sanity Test
TorstenThieme96fe9ee2021-10-21 10:24:08 +0000363 Reconcile Onu Adapter ${NAMESPACE} ${usekill2restart} ACTIVE
TorstenThieme70bc5262021-01-19 12:12:55 +0000364 Run Keyword If "${workflow}"=="DT" Perform Sanity Test DT ${suppressaddsubscriber}
TorstenThieme136ebf72021-02-26 14:27:07 +0000365 ... ELSE IF "${workflow}"=="TT" Perform Sanity Tests TT ${suppressaddsubscriber}
TorstenThieme70bc5262021-01-19 12:12:55 +0000366 ... ELSE Perform Sanity Test ${suppressaddsubscriber}
TorstenThieme440b7c02020-12-18 15:42:57 +0000367 Disable Onu Device
TorstenThieme0ec95eb2021-11-23 14:56:26 +0000368 Current State Test All Onus tech-profile-config-delete-success
TorstenThieme731a7592021-07-01 14:26:54 +0000369 Wait for all ONU Ports in ONOS Disabled ${ONOS_SSH_IP} ${ONOS_SSH_PORT}
TorstenThieme440b7c02020-12-18 15:42:57 +0000370 Enable Onu Device
TorstenThieme70bc5262021-01-19 12:12:55 +0000371 Run Keyword If "${workflow}"=="DT" Perform Sanity Test DT ${suppressaddsubscriber}
TorstenThieme136ebf72021-02-26 14:27:07 +0000372 ... ELSE IF "${workflow}"=="TT" Perform Sanity Tests TT ${suppressaddsubscriber}
TorstenThieme70bc5262021-01-19 12:12:55 +0000373 ... ELSE Perform Sanity Test ${suppressaddsubscriber}
TorstenThieme712b2962021-11-17 14:16:15 +0000374
375
376Do Olt Deletion After Adapter Restart
377 [Documentation] This keyword deletes OLT after adapter restart and checks deleted device(s) and data
378 ... - prefered environment is two ONUs are active on each of two OLTs, but test works also with single ONU/OLT
379 ... - restart the ONU adapter preferred via "kubectl delete pod"
380 ... - delete one OLT immediately after the restart has been initiated
381 ... - wait until the restart of the ONU adapter and the reconcile processing are finished
382 ... - check whether the ONUs on the remaining OLT have been properly reconciled (if avaialable)
383 ... - check whether the ONUs at the deleted OLT have disappeared from the device list
384 ... - KV store data of these ONUs are deleted under:
385 ... - <kvStorePrefix>/openonu/<deviceId>
386 ... - <kvStorePrefix>/openonu/pm-data/<deviceId>
387 ... - check for not deleted device(s) reason is still the same before restart (if available)
388 ... - delete ONU and MIB-template in KV-store
389 ... Check [VOL-4443] for more details
390 FOR ${I} IN RANGE 0 ${num_olts}
391 #get olt serial number
392 ${olt_serial_number}= Set Variable ${list_olts}[${I}][sn]
393 #validate olt states
394 ${olt_device_id}= Get OLTDeviceID From OLT List ${olt_serial_number}
395 Enable Device ${olt_device_id}
396 END
397 # bring all onus to activ -> OMCI-Flows-Pushed
398 Run Keyword If "${workflow}"=="DT" Perform Sanity Test DT
399 ... ELSE IF "${workflow}"=="TT" Perform Sanity Tests TT
400 ... ELSE Perform Sanity Test
401 # OLT#1 will be deleted, get its SN
402 ${olt_to_be_deleted}= Set Variable ${olts[0]['serial']}
403 ${olt_to_be_deleted_device_id}= Get OLTDeviceID From OLT List ${olt_to_be_deleted}
404 # collect all ONU device ids belonging to OLT to be deleted
405 ${onu_device_id_list_should_be_deleted} Create List
406 Build ONU Device Id List ${onu_device_id_list_should_be_deleted} ${olt_to_be_deleted}
407 Log ${onu_device_id_list_should_be_deleted}
408 Reconcile Onu Adapter ${NAMESPACE} ${usekill2restart} ACTIVE ${olt_to_be_deleted}
409 # validate OLT and all corresponding ONUs are removed
410 Validate all ONUS for OLT Removed ${num_all_onus} ${hosts} ${olt_to_be_deleted} ${timeout}
411 Validate Device Removed ${olt_to_be_deleted}
412 # validate for alle removed ONUs KV store date deleted
413 FOR ${onu_device_id} IN @{onu_device_id_list_should_be_deleted}
414 Log ${onu_device_id}
415 Wait Until Keyword Succeeds ${timeout} 1s Validate Onu Data In Etcd Removed ${INFRA_NAMESPACE}
416 ... ${onu_device_id} ${kvstoreprefix} without_pm_data=False
417 END
418 FOR ${I} IN RANGE 0 ${num_all_onus}
419 ${src}= Set Variable ${hosts.src[${I}]}
420 Continue For Loop If "${olt_to_be_deleted}"=="${src['olt']}"
421 Current State Test omci-flows-pushed ${src['onu']}
422 END