blob: 0abc16a3936c8cff8bb96a19ac2deeb03e758ce9 [file] [log] [blame]
TorstenThieme1619db22020-04-03 12:01:15 +00001*** Settings ***
2Documentation Test states of ONU Go adapter
3Suite Setup Setup Suite
4Suite Teardown Teardown Suite
5Test Setup Setup
6Test Teardown Teardown
7Library Collections
8Library String
9Library OperatingSystem
10Library XML
11Library RequestsLibrary
12Library ../../libraries/DependencyLibrary.py
13Resource ../../libraries/onos.robot
14Resource ../../libraries/voltctl.robot
15Resource ../../libraries/voltha.robot
16Resource ../../libraries/utils.robot
17Resource ../../libraries/k8s.robot
18Resource ../../variables/variables.robot
19
20*** Variables ***
21${POD_NAME} flex-ocp-cord
22${KUBERNETES_CONF} ${KUBERNETES_CONFIGS_DIR}/${POD_NAME}.conf
23${KUBERNETES_CONFIGS_DIR} ~/pod-configs/kubernetes-configs
24#${KUBERNETES_CONFIGS_DIR} ${KUBERNETES_CONFIGS_DIR}/${POD_NAME}.conf
25${KUBERNETES_YAML} ${KUBERNETES_CONFIGS_DIR}/${POD_NAME}.yml
26${HELM_CHARTS_DIR} ~/helm-charts
27${VOLTHA_POD_NUM} 8
28${NAMESPACE} voltha
29# For below variable value, using deployment name as using grep for
30# parsing radius pod name, we can also use full radius pod name
31${RESTART_POD_NAME} radius
TorstenThieme94e4ae42020-05-18 13:01:42 +000032${timeout} 180s
TorstenThieme1619db22020-04-03 12:01:15 +000033${of_id} 0
34${logical_id} 0
35${has_dataplane} True
36${external_libs} True
37${teardown_device} True
38${scripts} ../../scripts
39# Per-test logging on failure is turned off by default; set this variable to enable
40${container_log_dir} ${None}
TorstenThiemee0e5bba2020-08-05 11:20:13 +000041# state to test variable, can be passed via the command line too, valid values: 1-6
42# 1 -> activating-onu
43# 2 -> starting-openomci
44# 3 -> discovery-mibsync-complete
45# 4 -> initial-mib-downloaded
46# 5 -> tech-profile-config-download-success
47# 6 -> omci-flows-pushed
TorstenThieme87cd6202020-09-09 10:01:28 +000048# example: -v state2test:5
TorstenThieme1619db22020-04-03 12:01:15 +000049${state2test} 6
TorstenThiemee0e5bba2020-08-05 11:20:13 +000050# test mode variable, can be passed via the command line too, valid values: SingleState, Up2State, SingleStateTime
TorstenThieme87cd6202020-09-09 10:01:28 +000051# example: -v testmode:SingleStateTime
TorstenThieme1619db22020-04-03 12:01:15 +000052${testmode} SingleState
TorstenThiemee0e5bba2020-08-05 11:20:13 +000053# flag for execute Tech Profile check, can be passed via the command line too
TorstenThieme87cd6202020-09-09 10:01:28 +000054# example: -v profiletest:False
TorstenThiemee0e5bba2020-08-05 11:20:13 +000055${profiletest} True
TorstenThieme87cd6202020-09-09 10:01:28 +000056# used tech profile, can be passed via the command line too, valid values: default (=1T1GEM), 1T4GEM, 1T8GEM
57# example: -v techprofile:1T4GEM
TorstenThiemee0e5bba2020-08-05 11:20:13 +000058${techprofile} default
59# flag for execute port test, can be passed via the command line too
TorstenThieme87cd6202020-09-09 10:01:28 +000060# example: -v porttest:False
TorstenThieme1619db22020-04-03 12:01:15 +000061${porttest} True
TorstenThieme87cd6202020-09-09 10:01:28 +000062# flag for execute flow test, can be passed via the command line too
63# example: -v flowtest:False
64${flowtest} True
TorstenThiemee3841a02020-09-23 08:20:43 +000065# flag for execute disable/enable onu device test, can be passed via the command line too
66# example: -v disableenabletest:True
67${disableenabletest} False
TorstenThieme87cd6202020-09-09 10:01:28 +000068# flag for execute reconcile onu device test, can be passed via the command line too
69# example: -v reconciletest:True
70${reconciletest} False
TorstenThiemee0e5bba2020-08-05 11:20:13 +000071# flag debugmode is used, if true timeout calculation various, can be passed via the command line too
TorstenThieme87cd6202020-09-09 10:01:28 +000072# example: -v debugmode:True
TorstenThieme401af432020-06-11 15:53:53 +000073${debugmode} False
TorstenThiemee0e5bba2020-08-05 11:20:13 +000074# logging flag to enable Collect Logs, can be passed via the command line too
TorstenThieme87cd6202020-09-09 10:01:28 +000075# example: -v logging:True
TorstenThieme5e324e42020-07-27 09:36:16 +000076${logging} False
TorstenThiemee0e5bba2020-08-05 11:20:13 +000077# if True execution will be paused before clean up
TorstenThieme87cd6202020-09-09 10:01:28 +000078# example: -v pausebeforecleanup:True
TorstenThiemeb41007d2020-06-22 12:14:12 +000079${pausebeforecleanup} False
TorstenThiemee0e5bba2020-08-05 11:20:13 +000080${data_dir} ../data
81
TorstenThieme1619db22020-04-03 12:01:15 +000082
83*** Test Cases ***
84ONU State Test
85 [Documentation] Validates the ONU Go adapter states
TorstenThieme401af432020-06-11 15:53:53 +000086 [Tags] statetest onutest
TorstenThieme1619db22020-04-03 12:01:15 +000087 [Setup] Run Keywords Start Logging ONUStateTest
88 ... AND Setup Test
89 Run Keyword If ${has_dataplane} Clean Up Linux
90 Enable Device ${olt_device_id}
TorstenThieme94e4ae42020-05-18 13:01:42 +000091 ${timeStart} = Get Current Date
92 Set Global Variable ${timeStart}
TorstenThieme1619db22020-04-03 12:01:15 +000093 Run Keyword If "${testmode}"=="SingleState" Do ONU Single State Test
94 ... ELSE IF "${testmode}"=="Up2State" Do ONU Up To State Test
TorstenThieme94e4ae42020-05-18 13:01:42 +000095 ... ELSE IF "${testmode}"=="SingleStateTime" Do ONU Single State Test Time
TorstenThieme1619db22020-04-03 12:01:15 +000096 ... ELSE Fail The testmode (${testmode}) is not valid!
TorstenThieme5e324e42020-07-27 09:36:16 +000097 [Teardown] Run Keywords Run Keyword If ${logging} Collect Logs
TorstenThieme1619db22020-04-03 12:01:15 +000098 ... AND Stop Logging ONUStateTest
99
TorstenThiemee0e5bba2020-08-05 11:20:13 +0000100Check Loaded Tech Profile
101 [Documentation] Validates the loaded Tech Profile
102 ... Assuming that ONU State Test was executed where all the ONUs are reached the expected state!
103 ... Check will be executed only the reached ONU state is 5 (tech-profile-config-download-success) or higher
104 [Tags] onutest
105 [Setup] Start Logging ONUCheckTechProfile
106 Run Keyword If ${state2test}>=5 and ${profiletest} Do Check Tech Profile
107 [Teardown] Run Keywords Run Keyword If ${logging} Collect Logs
108 ... AND Stop Logging ONUCheckTechProfile
109
TorstenThieme401af432020-06-11 15:53:53 +0000110Onu Port Check
TorstenThieme87cd6202020-09-09 10:01:28 +0000111 [Documentation] Validates that all the UNI ports show up in ONOS
TorstenThieme00958682020-06-19 11:29:31 +0000112 ... Assuming that ONU State Test was executed where all the ONUs are reached the expected state!
TorstenThieme401af432020-06-11 15:53:53 +0000113 [Tags] onutest
114 [Setup] Start Logging ONUPortTest
115 Run Keyword If ${porttest} Do Onu Port Check
TorstenThieme5e324e42020-07-27 09:36:16 +0000116 [Teardown] Run Keywords Run Keyword If ${logging} Collect Logs
TorstenThieme401af432020-06-11 15:53:53 +0000117 ... AND Stop Logging ONUPortTest
118
TorstenThiemee3841a02020-09-23 08:20:43 +0000119Disable Enable Onu Device
120 [Documentation] Disables/enables ONU Device and check states
121 ... Assuming that ONU State Test was executed where all the ONUs are reached the expected state!
122 [Tags] onutest
123 [Setup] Start Logging DisableEnableONUDevice
124 Run Keyword If ${state2test}>=5 and ${disableenabletest} Do Disable Enable Onu Test
125 [Teardown] Run Keywords Run Keyword If ${logging} Collect Logs
126 ... AND Stop Logging DisableEnableONUDevice
127
TorstenThieme015d5c02020-09-11 09:53:34 +0000128Reconcile Onu Device
129 [Documentation] Reconciles ONU Device and check state
130 ... Assuming that ONU State Test was executed where all the ONUs are reached the expected state!
131 [Tags] onutest
132 [Setup] Start Logging ReconcileONUDevice
133 Run Keyword If ${state2test}>=5 and ${reconciletest} Do Reconcile Onu Device
134 [Teardown] Run Keywords Run Keyword If ${logging} Collect Logs
135 ... AND Stop Logging ReconcileONUDevice
136
TorstenThieme1619db22020-04-03 12:01:15 +0000137*** Keywords ***
138Setup Suite
139 [Documentation] Set up the test suite
TorstenThieme87cd6202020-09-09 10:01:28 +0000140 ${LogInfo}= Catenate
141 ... \r\nPassed arguments:
142 ... state2test:${state2test}, testmode:${testmode}, profiletest:${profiletest}, techprofile:${techprofile},
143 ... porttest:${porttest}, flowtest:${flowtest}, reconciletest:${reconciletest},
TorstenThiemee3841a02020-09-23 08:20:43 +0000144 ... disableenabletest:${disableenabletest},
TorstenThieme015d5c02020-09-11 09:53:34 +0000145 ... debugmode:${debugmode}, logging:${logging}, pausebeforecleanup:${pausebeforecleanup},
TorstenThieme87cd6202020-09-09 10:01:28 +0000146 Log ${LogInfo} console=yes
TorstenThieme1619db22020-04-03 12:01:15 +0000147 Common Test Suite Setup
148 Run Keyword If ${num_onus}>4 Calculate Timeout
TorstenThieme87cd6202020-09-09 10:01:28 +0000149 Run Keyword If "${techprofile}"=="1T1GEM" ${techprofile}= Set Variable default
150 Run Keyword If "${techprofile}"=="default" Log To Console \nTechProfile:default (1T1GEM)
TorstenThiemee0e5bba2020-08-05 11:20:13 +0000151 ... ELSE IF "${techprofile}"=="1T4GEM" Set Tech Profile 1T4GEM
152 ... ELSE IF "${techprofile}"=="1T8GEM" Set Tech Profile 1T8GEM
153 ... ELSE Fail The TechProfile (${techprofile}) is not valid!
154 ${onos_ssh_connection} Open ONOS SSH Connection ${ONOS_SSH_IP} ${ONOS_SSH_PORT}
155 Set Suite Variable ${onos_ssh_connection}
TorstenThieme1619db22020-04-03 12:01:15 +0000156
TorstenThiemeb41007d2020-06-22 12:14:12 +0000157Teardown Suite
158 [Documentation] Replaces the Suite Teardown in utils.robot.
159 ... Cleans up and checks all ONU ports disabled in ONOS.
160 ... Furthermore gives the possibility to pause the execution.
161 Run Keyword If ${pausebeforecleanup} Import Library Dialogs
162 Run Keyword If ${pausebeforecleanup} Pause Execution Press OK to continue with clean up!
TorstenThieme87cd6202020-09-09 10:01:28 +0000163 Run Keyword If ${pausebeforecleanup} Log Teardown will be continued... console=yes
TorstenThiemeb41007d2020-06-22 12:14:12 +0000164 Run Keyword If ${teardown_device} Delete All Devices and Verify
TorstenThiemee0e5bba2020-08-05 11:20:13 +0000165 # Wait for Ports in ONOS ${ONOS_SSH_IP} ${ONOS_SSH_PORT} 0 BBSM
166 Wait for Ports in ONOS ${onos_ssh_connection} 0 BBSM
167 Close ONOS SSH Connection ${onos_ssh_connection}
TorstenThieme87cd6202020-09-09 10:01:28 +0000168 Remove Tech Profile
TorstenThiemeb41007d2020-06-22 12:14:12 +0000169
TorstenThieme1619db22020-04-03 12:01:15 +0000170Setup Test
171 [Documentation] Pre-test Setup
172 #test for empty device list
173 Test Empty Device List
174 Run Keyword If ${has_dataplane} Wait Until Keyword Succeeds 120s 10s Openolt is Up
Suchitra Vemurib7253a52020-07-14 22:35:17 -0700175 ... ${olt_ssh_ip} ${olt_user} ${olt_pass}
TorstenThieme1619db22020-04-03 12:01:15 +0000176 Run Keyword If ${has_dataplane} Sleep 60s
177 #create/preprovision device
178 ${olt_device_id}= Create Device ${olt_ip} ${OLT_PORT}
179 Set Suite Variable ${olt_device_id}
180 #validate olt states
181 Wait Until Keyword Succeeds ${timeout} 5s Validate OLT Device PREPROVISIONED UNKNOWN UNKNOWN
182 ... ${olt_device_id}
183 Sleep 5s
184
185Calculate Timeout
186 [Documentation] Calculates the timeout regarding num-onus in case of more than 4 onus
187 ${timeout} Fetch From Left ${timeout} s
188 ${timeout}= evaluate ${timeout}+((${num_onus}-4)*30)
TorstenThieme401af432020-06-11 15:53:53 +0000189 ${timeout}= Set Variable If (not ${debugmode}) and (${timeout}>600) 600 ${timeout}
TorstenThieme1619db22020-04-03 12:01:15 +0000190 ${timeout}= Catenate SEPARATOR= ${timeout} s
191 Set Suite Variable ${timeout}
TorstenThieme1619db22020-04-03 12:01:15 +0000192
193Do ONU Up To State Test
194 [Documentation] This keyword performs Up2State Test
195 ... All states up to the passed have to be checked
196 FOR ${I} IN RANGE 0 ${num_onus}
197 ${src}= Set Variable ${hosts.src[${I}]}
198 ${dst}= Set Variable ${hosts.dst[${I}]}
199 Run Keyword If ${state2test}>=1
200 ... Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 50ms
201 ... Validate Device ENABLED ACTIVATING REACHABLE
202 ... ${src['onu']} onu=True onu_reason=activating-onu
203 Run Keyword If ${state2test}>=2
204 ... Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 50ms
205 ... Validate Device ENABLED ACTIVATING REACHABLE
206 ... ${src['onu']} onu=True onu_reason=starting-openomci
207 Run Keyword If ${state2test}>=3
208 ... Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 50ms
209 ... Validate Device ENABLED ACTIVATING REACHABLE
210 ... ${src['onu']} onu=True onu_reason=discovery-mibsync-complete
211 Run Keyword If ${state2test}>=4
212 ... Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 50ms
213 ... Validate Device ENABLED ACTIVE REACHABLE
214 ... ${src['onu']} onu=True onu_reason=initial-mib-downloaded
215 Run Keyword If ${state2test}>=5
216 ... Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 50ms
217 ... Validate Device ENABLED ACTIVE REACHABLE
218 ... ${src['onu']} onu=True onu_reason=tech-profile-config-download-success
219 Run Keyword If ${state2test}>=6
220 ... Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 50ms
221 ... Validate Device ENABLED ACTIVE REACHABLE
222 ... ${src['onu']} onu=True onu_reason=omci-flows-pushed
223 END
224
225Do ONU Single State Test
226 [Documentation] This keyword performs SingleState Test
227 ... Only the passed state has to be checked
228 FOR ${I} IN RANGE 0 ${num_onus}
229 ${src}= Set Variable ${hosts.src[${I}]}
230 ${dst}= Set Variable ${hosts.dst[${I}]}
TorstenThieme015d5c02020-09-11 09:53:34 +0000231 ${admin_state} ${oper_status} ${connect_status} ${onu_state}= Map State ${state2test}
232 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 50ms
233 ... Validate Device ${admin_state} ${oper_status} ${connect_status}
234 ... ${src['onu']} onu=True onu_reason=${onu_state}
TorstenThieme1619db22020-04-03 12:01:15 +0000235 END
236
TorstenThieme94e4ae42020-05-18 13:01:42 +0000237Do ONU Single State Test Time
238 [Documentation] This keyword performs SingleState Test with calculate running time
239 ... Only the passed state has to be checked and the duration each single onu adapter needed
240 ... will be calculated and printed out
241 ${ListfinishedONUs} Create List
242 Set Global Variable ${ListfinishedONUs}
243 Create File ONU_Startup_Time.txt This file contains the startup times of all ONUs.
244 ${list_onus} Create List
TorstenThieme401af432020-06-11 15:53:53 +0000245 Build ONU SN List ${list_onus}
TorstenThieme015d5c02020-09-11 09:53:34 +0000246 ${admin_state} ${oper_status} ${connect_status} ${onu_state}= Map State ${state2test}
247 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 50ms
TorstenThieme9949b172020-06-16 10:00:15 +0000248 ... Validate ONU Devices MIB State With Duration
TorstenThieme015d5c02020-09-11 09:53:34 +0000249 ... ${onu_state} ${list_onus} ${timeStart} print2console=True
TorstenThieme401af432020-06-11 15:53:53 +0000250 ... output_file=ONU_Startup_Time.txt
TorstenThieme94e4ae42020-05-18 13:01:42 +0000251
TorstenThieme1619db22020-04-03 12:01:15 +0000252Do Onu Port Check
TorstenThieme00958682020-06-19 11:29:31 +0000253 [Documentation] Check that all the UNI ports show up in ONOS
TorstenThiemee0e5bba2020-08-05 11:20:13 +0000254 Wait for Ports in ONOS ${onos_ssh_connection} ${num_onus} BBSM
TorstenThieme9949b172020-06-16 10:00:15 +0000255
TorstenThiemee0e5bba2020-08-05 11:20:13 +0000256Set Tech Profile
257 [Documentation] This keyword set the passed TechProfile for the test
258 [Arguments] ${TechProfile}
TorstenThieme87cd6202020-09-09 10:01:28 +0000259 Log To Console \nTechProfile:${TechProfile}
TorstenThiemee0e5bba2020-08-05 11:20:13 +0000260 ${namespace}= Set Variable default
Andrea Campanella60dde302020-09-09 18:42:56 +0200261 ${podname}= Set Variable etcd
TorstenThiemee0e5bba2020-08-05 11:20:13 +0000262 ${src}= Set Variable ${data_dir}/TechProfile-${TechProfile}.json
263 ${dest}= Set Variable /tmp/flexpod.json
264 ${command} Catenate
265 ... /bin/sh -c 'cat ${dest} | ETCDCTL_API=3 etcdctl put service/voltha/technology_profiles/XGS-PON/64'
266 Copy File To Pod ${namespace} ${podname} ${src} ${dest}
267 Exec Pod ${namespace} ${podname} ${command}
268 ${commandget} Catenate
269 ... /bin/sh -c 'ETCDCTL_API=3 etcdctl get --prefix service/voltha/technology_profiles/XGS-PON/64'
270 Exec Pod ${namespace} ${podname} ${commandget}
271
272Remove Tech Profile
273 [Documentation] This keyword removes TechProfile
TorstenThieme015d5c02020-09-11 09:53:34 +0000274 Log To Console \nTechProfile:${TechProfile}
TorstenThiemee0e5bba2020-08-05 11:20:13 +0000275 ${namespace}= Set Variable default
Andrea Campanella60dde302020-09-09 18:42:56 +0200276 ${podname}= Set Variable etcd
TorstenThiemee0e5bba2020-08-05 11:20:13 +0000277 ${command} Catenate
278 ... /bin/sh -c 'ETCDCTL_API=3 etcdctl del --prefix service/voltha/technology_profiles/XGS-PON/64'
279 Exec Pod ${namespace} ${podname} ${command}
280 ${commandget} Catenate
281 ... /bin/sh -c 'ETCDCTL_API=3 etcdctl get --prefix service/voltha/technology_profiles/XGS-PON/64'
282 Exec Pod ${namespace} ${podname} ${commandget}
283
284Do Check Tech Profile
285 [Documentation] This keyword checks the loaded TechProfile
286 ${namespace}= Set Variable default
Andrea Campanella60dde302020-09-09 18:42:56 +0200287 ${podname}= Set Variable etcd
TorstenThiemee0e5bba2020-08-05 11:20:13 +0000288 ${commandget} Catenate
289 ... /bin/sh -c 'ETCDCTL_API=3 etcdctl get --prefix service/voltha/technology_profiles/XGS-PON/64'
290 ${result}= Exec Pod ${namespace} ${podname} ${commandget}
291 ${num_gem_ports}= Set Variable 1
292 ${num_gem_ports}= Set Variable If
293 ... "${techprofile}"=="default" 1
294 ... "${techprofile}"=="1T4GEM" 4
295 ... "${techprofile}"=="1T8GEM" 8
296 @{resultList} Split String ${result} separator=,
297 ${num_of_count_matches}= Get Match Count ${resultList} "num_gem_ports": ${num_gem_ports}
298 ... whitespace_insensitive=True
299 ${num_of_expected_matches}= Run Keyword If "${techprofile}"=="default" Evaluate ${num_onus}
300 ... ELSE Evaluate ${num_onus}+1
301 Run Keyword If ${num_of_expected_matches}!=${num_of_count_matches} Log To Console
302 ... \nTechProfile (${TechProfile}) not loaded correctly:${num_of_count_matches} of ${num_of_expected_matches}
TorstenThieme015d5c02020-09-11 09:53:34 +0000303
304Do Disable Enable Onu Test
305 [Documentation] This keyword disables/enables all onus and checks the states.
306 FOR ${I} IN RANGE 0 ${num_onus}
307 ${src}= Set Variable ${hosts.src[${I}]}
308 ${onu_device_id}= Get Device ID From SN ${src['onu']}
309 #check for previous state is kept (normally omci-flows-pushed)
310 Do Current State Test ${state2test} ${src['onu']}
311 Disable Device ${onu_device_id}
312 Wait Until Keyword Succeeds 20s 2s Test Devices Disabled in VOLTHA Id=${onu_device_id}
313 #check state for omci-admin-lock
314 Do Current State Test omci-admin-lock ${src['onu']}
315 Enable Device ${onu_device_id}
316 #check state for onu-reenabled
317 Do Current State Test onu-reenabled ${src['onu']}
318 #check for previous state is reached again (normally omci-flows-pushed)
319 Do Current State Test ${state2test} ${src['onu']}
320 END
321
322Do Reconcile Onu Device
323 [Documentation] This keyword reconciles ONU device and check the state afterwards.
324 ... Following steps will be executed:
325 ... - restart openonu adaptor
326 ... - check openonu adaptor is ready again
327 ... - check previous state is kept
328 ... - ONU-Disable
329 ... - wait some seconds
330 ... - check for state omci-admin-lock
331 ... - ONU-Enable
332 ... - wait some seconds
333 ... - check for state onu-reenabled
334 ... - port check
335 # set open-onu app name
336 ${list_openonu_apps} Create List adapter-open-onu
337 ${namespace}= Set Variable voltha
338 ${adaptorname}= Set Variable open-onu
339 # restart openonu adapter
340 # Restart Pod ${namespace} ${adaptorname}
341 # use kill command instaed of libraries restart keyword (requested by Holger)
342 Kill Adaptor ${namespace} ${adaptorname}
343 Sleep 5s
344 Wait For Pods Ready ${namespace} ${list_openonu_apps}
345 Do Disable Enable Onu Test
346 Run Keyword If ${porttest} Do Onu Port Check
347
348Do Current State Test
349 [Documentation] This keyword checks the passed state of the given onu.
350 [Arguments] ${state} ${onu}
351 ${admin_state} ${oper_status} ${connect_status} ${onu_state}= Map State ${state}
352 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 50ms
353 ... Validate Device ${admin_state} ${oper_status} ${connect_status}
354 ... ${onu} onu=True onu_reason=${onu_state}
355
356Kill Adaptor
357 [Documentation] This keyword kills the passed adaptor.
358 [Arguments] ${namespace} ${name}
359 ${cmd} Catenate
360 ... kubectl exec -it -n voltha $(kubectl get pods -n ${namespace} | grep ${name} | awk 'NR==1{print $1}')
361 ... -- /bin/sh -c "kill 1"
362 ${rc} ${output}= Run and Return Rc and Output ${cmd}
363 Log ${output}
364
365Map State
366 [Documentation] This keyword converts the passed numeric value or name of a onu state to its state values.
367 [Arguments] ${state}
368 # create state lists with corresponding return values
369 # ADMIN-STATE OPER-STATUS CONNECT-STATUS ONU-STATE
370 ${state1} Create List ENABLED ACTIVATING REACHABLE activating-onu
371 ${state2} Create List ENABLED ACTIVATING REACHABLE starting-openomci
372 ${state3} Create List ENABLED ACTIVATING REACHABLE discovery-mibsync-complete
373 ${state4} Create List ENABLED ACTIVE REACHABLE initial-mib-downloaded
374 ${state5} Create List ENABLED ACTIVE REACHABLE tech-profile-config-download-success
375 ${state6} Create List ENABLED ACTIVE REACHABLE omci-flows-pushed
376 ${state7} Create List DISABLED UNKNOWN UNREACHABLE omci-admin-lock
377 ${state8} Create List ENABLED ACTIVE REACHABLE onu-reenabled
378 ${admin_state} ${oper_status} ${connect_status} ${onu_state}= Set Variable If
379 ... '${state}'=='1' or '${state}'=='activating-onu' ${state1}
380 ... '${state}'=='2' or '${state}'=='starting-openomci' ${state2}
381 ... '${state}'=='3' or '${state}'=='discovery-mibsync-complete' ${state3}
382 ... '${state}'=='4' or '${state}'=='initial-mib-downloaded' ${state4}
383 ... '${state}'=='5' or '${state}'=='tech-profile-config-download-success' ${state5}
384 ... '${state}'=='6' or '${state}'=='omci-flows-pushed' ${state6}
385 ... '${state}'=='7' or '${state}'=='omci-admin-lock' ${state7}
386 ... '${state}'=='8' or '${state}'=='onu-reenabled' ${state8}
387 [Return] ${admin_state} ${oper_status} ${connect_status} ${onu_state}