blob: 3b86bbcb456d09c248e4db79a763be95162e9e80 [file] [log] [blame]
TorstenThiemed4f48962020-12-08 12:17:19 +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
TorstenThieme840380b2020-10-02 09:31:56 +000015*** Settings ***
16Documentation Test Template handling of ONU Go adapter with BBSIM controlledActivation: only-onu only!
17... Values.yaml must contain 'onu: 2' and 'controlledActivation: only-onu' under BBSIM!
18... Run robot with bbsim-kind-2x2.yaml
19Suite Setup Setup Suite
20Suite Teardown Teardown Suite
21Test Setup Setup
22Test Teardown Teardown
23Library Collections
24Library String
25Library OperatingSystem
26Library XML
27Library RequestsLibrary
28Library ../../libraries/DependencyLibrary.py
29Resource ../../libraries/onos.robot
30Resource ../../libraries/voltctl.robot
31Resource ../../libraries/voltha.robot
32Resource ../../libraries/utils.robot
33Resource ../../libraries/k8s.robot
TorstenThieme440b7c02020-12-18 15:42:57 +000034Resource ../../libraries/onu_utilities.robot
TorstenThiemefe7099e2021-01-29 08:41:04 +000035Resource ../../libraries/bbsim.robot
TorstenThieme840380b2020-10-02 09:31:56 +000036Resource ../../variables/variables.robot
37
38*** Variables ***
TorstenThieme440b7c02020-12-18 15:42:57 +000039${namespace} voltha
TorstenThiemed4f48962020-12-08 12:17:19 +000040${timeout} 60s
TorstenThieme840380b2020-10-02 09:31:56 +000041${of_id} 0
42${logical_id} 0
43${has_dataplane} True
44${external_libs} True
45${teardown_device} True
46${scripts} ../../scripts
47# Per-test logging on failure is turned off by default; set this variable to enable
48${container_log_dir} ${None}
49
50# flag debugmode is used, if true timeout calculation various, can be passed via the command line too
51# example: -v debugmode:True
52${debugmode} False
53# logging flag to enable Collect Logs, can be passed via the command line too
54# example: -v logging:True
55${logging} False
56# if True execution will be paused before clean up
57# example: -v pausebeforecleanup:True
58${pausebeforecleanup} False
59${data_dir} ../data
60
61
62*** Test Cases ***
63ONU MIB Template Data Test
64 [Documentation] Validates ONU Go adapter storage of MIB Template Data in etcd and checks the usage
65 ... - setup one ONU
66 ... - request MIB-Upload-Data by ONU via OMCI
67 ... - storage MIB-Upload-Data in etcd
68 ... - store setup duration of ONU
TorstenThiemed4f48962020-12-08 12:17:19 +000069 ... - check Template-Data in etcd stored (service/%{NAME}/omci_mibs/go_templates/)
TorstenThieme840380b2020-10-02 09:31:56 +000070 ... - setup second ONU
71 ... - collect setup durationof second ONU
72 ... - compare both duration
73 ... - duration of second ONU should be at least 10 times faster than the first one
74 ... - MIB-Upload-Data should not requested via OMCI by second ONU
75 ... - MIB-Upload-Data should read from etcd
TorstenThieme66c91a82020-10-19 13:37:53 +000076 [Tags] functionalOnuGo MibTemplateOnuGo
TorstenThieme840380b2020-10-02 09:31:56 +000077 [Setup] Run Keywords Start Logging ONUMibTemplateTest
78 ... AND Setup
79 Perform ONU MIB Template Data Test
80 [Teardown] Run Keywords Run Keyword If ${logging} Collect Logs
81 ... AND Stop Logging ONUMibTemplateTest
82
83
84*** Keywords ***
85Setup Suite
86 [Documentation] Set up the test suite
87 ${LogInfo}= Catenate
88 ... \r\nPassed arguments:
89 ... debugmode:${debugmode}, logging:${logging}, pausebeforecleanup:${pausebeforecleanup},
90 Log ${LogInfo} console=yes
91 Common Test Suite Setup
TorstenThieme840380b2020-10-02 09:31:56 +000092 # delete etcd MIB Template Data
93 Delete MIB Template Data
94
95Teardown Suite
96 [Documentation] Replaces the Suite Teardown in utils.robot.
97 ... Cleans up and checks all ONU ports disabled in ONOS.
98 ... Furthermore gives the possibility to pause the execution.
99 Run Keyword If ${pausebeforecleanup} Import Library Dialogs
100 Run Keyword If ${pausebeforecleanup} Pause Execution Press OK to continue with clean up!
101 Run Keyword If ${pausebeforecleanup} Log Teardown will be continued... console=yes
102 Run Keyword If ${teardown_device} Delete All Devices and Verify
TorstenThieme731a7592021-07-01 14:26:54 +0000103 Wait for Ports in ONOS for all OLTs ${ONOS_SSH_IP} ${ONOS_SSH_PORT} 0 BBSM
TorstenThieme840380b2020-10-02 09:31:56 +0000104 # delete etcd MIB Template Data (for repeating test)
105 Delete MIB Template Data
TorstenThieme440b7c02020-12-18 15:42:57 +0000106 Close All ONOS SSH Connections
TorstenThieme840380b2020-10-02 09:31:56 +0000107
108Perform ONU MIB Template Data Test
109 [Documentation] This keyword performs ONU MIB Template Data Test
TorstenThieme66c91a82020-10-19 13:37:53 +0000110 ${firstonu}= Set Variable 0
111 ${secondonu}= Set Variable 1
112 ${state2test}= Set Variable omci-flows-pushed
TorstenThieme840380b2020-10-02 09:31:56 +0000113 Set Global Variable ${state2test}
114 Run Keyword If ${has_dataplane} Clean Up Linux
115 # Start first Onu
TorstenThieme66c91a82020-10-19 13:37:53 +0000116 ${src}= Set Variable ${hosts.src[${0}]}
117 Log \r\nONU ${src['onu']}: startup with MIB upload cycle and storage of template data to etcd. console=yes
TorstenThiemefe7099e2021-01-29 08:41:04 +0000118 ${bbsim_pod}= Get Pod Name By Label ${namespace} release bbsim0
119 Power On ONU ${namespace} ${bbsim_pod} ${src['onu']}
TorstenThieme840380b2020-10-02 09:31:56 +0000120 ${timeStart}= Get Current Date
121 ${firstonustartup}= Get ONU Startup Duration ${firstonu} ${timeStart}
122 # check MIB Template data stored in etcd
123 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 3s
124 ... Verify MIB Template Data Available
125 # Start second Onu
TorstenThieme66c91a82020-10-19 13:37:53 +0000126 ${src}= Set Variable ${hosts.src[${1}]}
127 Log ONU ${src['onu']}: startup without MIB upload cycle by using of template data of etcd. console=yes
TorstenThiemefe7099e2021-01-29 08:41:04 +0000128 ${bbsim_pod}= Get Pod Name By Label ${namespace} release bbsim0
129 Power On ONU ${namespace} ${bbsim_pod} ${src['onu']}
TorstenThieme840380b2020-10-02 09:31:56 +0000130 ${timeStart}= Get Current Date
131 ${secondonustartup}= Get ONU Startup Duration ${secondonu} ${timeStart}
132 # compare both durations, second onu should be at least 3 times faster
133 ${status} Evaluate ${firstonustartup}>=${secondonustartup}*3
134 Should Be True ${status}
135 ... Startup durations (${firstonustartup} and ${secondonustartup}) do not full fill the requirements of 1/10.
136
137Get ONU Startup Duration
138 [Documentation] This keyword delivers startup duration of onu
139 [Arguments] ${onu} ${starttime}
140 ${src}= Set Variable ${hosts.src[${onu}]}
TorstenThieme66c91a82020-10-19 13:37:53 +0000141 ${admin_state} ${oper_status} ${connect_status} ${onu_state_nb} ${onu_state}=
142 ... Map State ${state2test}
TorstenThieme840380b2020-10-02 09:31:56 +0000143 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 50ms
144 ... Validate Device ${admin_state} ${oper_status} ${connect_status}
145 ... ${src['onu']} onu=True onu_reason=${onu_state}
146 ${timeCurrent} = Get Current Date
147 ${timeTotalMs} = Subtract Date From Date ${timeCurrent} ${startTime} result_format=number
148 Log ONU ${src['onu']}: reached the state ${onu_state} after ${timeTotalMs} sec. console=yes
149 [Return] ${timeTotalMs}