blob: 1c5b1ac3743e07dc2ed3b59426d6c539e5a6a92e [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
92 ${onos_ssh_connection} Open ONOS SSH Connection ${ONOS_SSH_IP} ${ONOS_SSH_PORT}
93 Set Suite Variable ${onos_ssh_connection}
94 # delete etcd MIB Template Data
95 Delete MIB Template Data
96
97Teardown Suite
98 [Documentation] Replaces the Suite Teardown in utils.robot.
99 ... Cleans up and checks all ONU ports disabled in ONOS.
100 ... Furthermore gives the possibility to pause the execution.
101 Run Keyword If ${pausebeforecleanup} Import Library Dialogs
102 Run Keyword If ${pausebeforecleanup} Pause Execution Press OK to continue with clean up!
103 Run Keyword If ${pausebeforecleanup} Log Teardown will be continued... console=yes
104 Run Keyword If ${teardown_device} Delete All Devices and Verify
TorstenThiemed4f48962020-12-08 12:17:19 +0000105 Wait for Ports in ONOS for all OLTs ${onos_ssh_connection} 0 BBSM
TorstenThieme840380b2020-10-02 09:31:56 +0000106 # delete etcd MIB Template Data (for repeating test)
107 Delete MIB Template Data
TorstenThieme440b7c02020-12-18 15:42:57 +0000108 Close All ONOS SSH Connections
TorstenThieme840380b2020-10-02 09:31:56 +0000109
110Perform ONU MIB Template Data Test
111 [Documentation] This keyword performs ONU MIB Template Data Test
TorstenThieme66c91a82020-10-19 13:37:53 +0000112 ${firstonu}= Set Variable 0
113 ${secondonu}= Set Variable 1
114 ${state2test}= Set Variable omci-flows-pushed
TorstenThieme840380b2020-10-02 09:31:56 +0000115 Set Global Variable ${state2test}
116 Run Keyword If ${has_dataplane} Clean Up Linux
117 # Start first Onu
TorstenThieme66c91a82020-10-19 13:37:53 +0000118 ${src}= Set Variable ${hosts.src[${0}]}
119 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 +0000120 ${bbsim_pod}= Get Pod Name By Label ${namespace} release bbsim0
121 Power On ONU ${namespace} ${bbsim_pod} ${src['onu']}
TorstenThieme840380b2020-10-02 09:31:56 +0000122 ${timeStart}= Get Current Date
123 ${firstonustartup}= Get ONU Startup Duration ${firstonu} ${timeStart}
124 # check MIB Template data stored in etcd
125 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 3s
126 ... Verify MIB Template Data Available
127 # Start second Onu
TorstenThieme66c91a82020-10-19 13:37:53 +0000128 ${src}= Set Variable ${hosts.src[${1}]}
129 Log ONU ${src['onu']}: startup without MIB upload cycle by using of template data of etcd. console=yes
TorstenThiemefe7099e2021-01-29 08:41:04 +0000130 ${bbsim_pod}= Get Pod Name By Label ${namespace} release bbsim0
131 Power On ONU ${namespace} ${bbsim_pod} ${src['onu']}
TorstenThieme840380b2020-10-02 09:31:56 +0000132 ${timeStart}= Get Current Date
133 ${secondonustartup}= Get ONU Startup Duration ${secondonu} ${timeStart}
134 # compare both durations, second onu should be at least 3 times faster
135 ${status} Evaluate ${firstonustartup}>=${secondonustartup}*3
136 Should Be True ${status}
137 ... Startup durations (${firstonustartup} and ${secondonustartup}) do not full fill the requirements of 1/10.
138
139Get ONU Startup Duration
140 [Documentation] This keyword delivers startup duration of onu
141 [Arguments] ${onu} ${starttime}
142 ${src}= Set Variable ${hosts.src[${onu}]}
TorstenThieme66c91a82020-10-19 13:37:53 +0000143 ${admin_state} ${oper_status} ${connect_status} ${onu_state_nb} ${onu_state}=
144 ... Map State ${state2test}
TorstenThieme840380b2020-10-02 09:31:56 +0000145 Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${timeout} 50ms
146 ... Validate Device ${admin_state} ${oper_status} ${connect_status}
147 ... ${src['onu']} onu=True onu_reason=${onu_state}
148 ${timeCurrent} = Get Current Date
149 ${timeTotalMs} = Subtract Date From Date ${timeCurrent} ${startTime} result_format=number
150 Log ONU ${src['onu']}: reached the state ${onu_state} after ${timeTotalMs} sec. console=yes
151 [Return] ${timeTotalMs}