blob: 9add4424b01ca9602ad401c1fa9e8fdec35dfdee [file] [log] [blame]
Gilles Depatiec68b3ad2018-08-21 16:29:03 -04001# 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
15*** Settings ***
16Library Process
Kailashf8ff51a2018-11-13 13:49:53 -080017Library OperatingSystem
Gilles Depatiec68b3ad2018-08-21 16:29:03 -040018Library ../common/auto_test.py
19Library ../common/volthaMngr.py
Gilles Depatie84cb1e72018-10-26 12:41:33 -040020Library ../common/preprovisioning.py
Gilles Depatie1be639b2018-12-06 10:51:08 -050021Library ../common/discovery.py
Gilles Depatiea85fe812019-01-23 15:55:53 -050022Library ../common/authentication.py
Gilles Depatie84cb1e72018-10-26 12:41:33 -040023Library volthaMngr.VolthaMngr
Kailash32ce8e52018-11-13 13:03:36 -080024Library preprovisioning.Preprovisioning
Gilles Depatie1be639b2018-12-06 10:51:08 -050025Library discovery.Discovery
Gilles Depatiea85fe812019-01-23 15:55:53 -050026Library authentication.Authentication
Gilles Depatie9651e462018-11-21 15:58:33 -050027
Gilles Depatie1be639b2018-12-06 10:51:08 -050028Suite Setup Start Voltha
29Suite Teardown Stop Voltha
Gilles Depatiec68b3ad2018-08-21 16:29:03 -040030
Gilles Depatiec68b3ad2018-08-21 16:29:03 -040031*** Variables ***
32${LOG_DIR} /tmp/voltha_test_results
33${ROOT_DIR} ${EMPTY}
34${VOLTHA_DIR} ${EMPTY}
Gilles Depatiec68b3ad2018-08-21 16:29:03 -040035${ONOS_SSH_PORT} 8101
Gilles Depatie84cb1e72018-10-26 12:41:33 -040036${OLT_IP_ADDR} olt.voltha.svc
Gilles Depatiec68b3ad2018-08-21 16:29:03 -040037${OLT_PORT_ID} 50060
Kailasha4d45742019-02-11 14:46:43 -080038${LOGICAL_TYPE} olt.voltha.svc
Gilles Depatie9651e462018-11-21 15:58:33 -050039${OLT_TYPE} ponsim_olt
40${ONU_TYPE} ponsim_onu
Gilles Depatiec68b3ad2018-08-21 16:29:03 -040041
42*** Test Cases ***
Gilles Depatie1be639b2018-12-06 10:51:08 -050043Olt Pre Provisioning
44 [Documentation] Olt Pre Provisioning
Gilles Depatie84cb1e72018-10-26 12:41:33 -040045 ... This test preprovisions a ponsim-OLT with given IP address and TCP port
46 ... and then enables both it and a number of ponsim-ONUs with predefined IP/port
47 ... information. It then verifies that all the physical and logical devices are ACTIVE
48 ... and REACHEABLE
Gilles Depatie0bf31352019-02-04 13:48:41 -050049 P Set Log Dirs ${LOG_DIR}
50 P Configure ${OLT_IP_ADDR} ${OLT_PORT_ID} ${OLT_TYPE} ${ONU_TYPE}
Gilles Depatiec68b3ad2018-08-21 16:29:03 -040051 Preprovision Olt
Gilles Depatie9651e462018-11-21 15:58:33 -050052 Wait Until Keyword Succeeds 60s 2s Query Devices Before Enabling
53 Status Should Be Success After Preprovision Command
54 Check Olt Fields Before Enabling
Gilles Depatiec68b3ad2018-08-21 16:29:03 -040055 Enable
Gilles Depatie9651e462018-11-21 15:58:33 -050056 Wait Until Keyword Succeeds 60s 2s Query Devices After Enabling
57 Status Should Be Success After Enable Command
58 Check Olt Fields After Enabling
59 Check Onu Fields After Enabling
Gilles Depatie1be639b2018-12-06 10:51:08 -050060
61Olt Onu Discovery
62 [Documentation] Olt Onu Discovery
63 ... This test covers both Onu Discovery and yet to be developped Olt Discovery
64 ... It aims to verify the integrity of all port fields under each discrete device.
65 ... It also insures that the peers fields contains device Id entries for the corresponding
66 ... Olt or Onu device. Functionality to support multiple ONU accomodated
67 ... The extent of the flow validation is limited to checking whether number of Flows is > 0
Gilles Depatie0bf31352019-02-04 13:48:41 -050068 D Set Log Dirs ${LOG_DIR}
69 D Configure ${LOGICAL_TYPE} ${OLT_TYPE} ${ONU_TYPE}
Gilles Depatie1be639b2018-12-06 10:51:08 -050070 Olt Discovery
71 Onu Discovery
Kailasha4d45742019-02-11 14:46:43 -080072 Logical Device
Gilles Depatie82dd2022019-02-19 14:31:33 -050073 Logical Device Ports Should Exist
74 Logical Device Should Have At Least One Flow
Gilles Depatie1be639b2018-12-06 10:51:08 -050075 Olt Ports Should Be Enabled and Active
76 Onu Ports Should Be Enabled and Active
77 Olt Should Have At Least One Flow
78 Onu Should Have At Least One Flow
79
Gilles Depatiea85fe812019-01-23 15:55:53 -050080Radius Authentication
81 [Documentation] Radius Authentication
82 ... This test attempts to perform a Radius Authentication from the RG
83 ... It uses the wpa_supplicant app to authenticate using EAPOL.
84 ... We then verify the generated log file confirming all the authentication steps
Gilles Depatie0bf31352019-02-04 13:48:41 -050085 A Set Log Dirs ${ROOT_DIR} ${VOLTHA_DIR} ${LOG_DIR}
Gilles Depatiea85fe812019-01-23 15:55:53 -050086 Discover RG Pod Name
87 Discover Freeradius Pod Name
88 Discover Freeradius Ip Addr
89 Set Current Freeradius Ip In AAA Json
90 Alter AAA Application Configuration In Onos Using AAA Json
Gilles Depatie0bf31352019-02-04 13:48:41 -050091 Execute Authentication On RG
Gilles Depatiea85fe812019-01-23 15:55:53 -050092 Verify Authentication Should Have Started
93 Verify Authentication Should Have Completed
94 Verify Authentication Should Have Disconnected
95 Verify Authentication Should Have Terminated
96
Gilles Depatiec68b3ad2018-08-21 16:29:03 -040097*** Keywords ***
98Start Voltha
99 [Documentation] Start Voltha infrastructure to run test(s). This includes starting all
Gilles Depatie84cb1e72018-10-26 12:41:33 -0400100 ... Kubernetes Pods and start collection of logs. PonsimV2 has now been
101 ... containerized and does not need to be managed separately
Gilles Depatie0bf31352019-02-04 13:48:41 -0500102 ${ROOT_DIR} ${VOLTHA_DIR} ${LOG_DIR} Dir Init ${LOG_DIR}
Gilles Depatiea85fe812019-01-23 15:55:53 -0500103 Set Suite Variable ${ROOT_DIR}
104 Set Suite Variable ${VOLTHA_DIR}
105 Set Suite Variable ${LOG_DIR}
Gilles Depatie0bf31352019-02-04 13:48:41 -0500106 V Set Log Dirs ${ROOT_DIR} ${VOLTHA_DIR} ${LOG_DIR}
Gilles Depatiec68b3ad2018-08-21 16:29:03 -0400107 Stop Voltha
Gilles Depatie84cb1e72018-10-26 12:41:33 -0400108 Start All Pods
Kailash2da848e2018-11-13 10:58:53 -0800109 Sleep 60
Kailash32ce8e52018-11-13 13:03:36 -0800110 ${pod_status} Run kubectl get pods --all-namespaces
Gilles Depatie0bf31352019-02-04 13:48:41 -0500111 Log To Console \n ${pod_status}
112 Alter Onos Net Cfg
Gilles Depatiec68b3ad2018-08-21 16:29:03 -0400113
Gilles Depatiec68b3ad2018-08-21 16:29:03 -0400114Stop Voltha
Gilles Depatie0bf31352019-02-04 13:48:41 -0500115 [Documentation] Stop Voltha infrastructure. This includes clearing all installation milestones
Kailash32ce8e52018-11-13 13:03:36 -0800116 ... files and stopping all Kubernetes pods
Kailash8ae83ac2019-02-11 12:23:52 -0800117 Collect Pod Logs
Gilles Depatie84cb1e72018-10-26 12:41:33 -0400118 Stop All Pods
Kailash32ce8e52018-11-13 13:03:36 -0800119 Reset Kube Adm