blob: 28bcb92841481da4f1fc48c60054ebe2825babe7 [file] [log] [blame]
Kailash Khalasi6dab16e2018-09-17 20:24:08 -07001# 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
Suchitra Vemuriff825322018-09-07 14:00:04 -070015*** Settings ***
Suchitra Vemuri32fc2f22018-09-10 12:06:01 -070016Documentation Test successful ping from end-end
Kailash Khalasif3e0a9f2018-09-18 13:43:42 -070017Suite Setup Setup
Kailash Khalasi6dab16e2018-09-17 20:24:08 -070018Suite Teardown Teardown
Kailash Khalasif3e0a9f2018-09-18 13:43:42 -070019Test Setup Create Models
20Test Teardown Clean Test Environment
Suchitra Vemuriff825322018-09-07 14:00:04 -070021Library Collections
22Library String
23Library OperatingSystem
24Library XML
25Library RequestsLibrary
Suchitra Vemuri32fc2f22018-09-10 12:06:01 -070026Library ../../Framework/utils/utils.py
Kailash Khalasi6dab16e2018-09-17 20:24:08 -070027Resource ../../Framework/utils/utils.robot
Suchitra Vemuri32fc2f22018-09-10 12:06:01 -070028Library ../../Framework/restApi.py
Kailash Khalasi6dab16e2018-09-17 20:24:08 -070029Resource ../../Framework/Subscriber.robot
30Resource ../../Framework/ATTWorkFlowDriver.robot
31Resource ../../Framework/ONU.robot
32Resource ../../Framework/DHCP.robot
33Variables ../../Properties/RestApiProperties.py
Suchitra Vemuriff825322018-09-07 14:00:04 -070034
35*** Variables ***
Kailash Khalasi30a6a392018-09-10 14:32:39 -070036${WHITELIST_PATHFILE} ${CURDIR}/data/ATTWhiteList.json
37${SUBSCRIBER_PATHFILE} ${CURDIR}/data/ATTSubscriber.json
Kailash Khalasif3e0a9f2018-09-18 13:43:42 -070038${VOLT_DEVICE_PATHFILE} ${CURDIR}/../data/RealOLTDevice.json
Kailash Khalasi6dab16e2018-09-17 20:24:08 -070039${src_ip} X.X.X.X
40${src_gateway} X.X.X.X
41${src_user} user
42${src_pass} pass
43${src_iface} eth0
44${dst_ip} X.X.X.X
45${dst_dp_iface} eth0
46${dst_dp_ip} X.X.X.X
47${dst_user} user
48${dst_pass} pass
49${dst_gateway} X.X.X.X
Suchitra Vemuriff825322018-09-07 14:00:04 -070050
Kailash Khalasia0810ce2018-09-10 13:03:27 -070051*** Test Cases ***
Kailash Khalasif3e0a9f2018-09-18 13:43:42 -070052ONU in Correct Location + Successful Auth Request
53 [Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
54 ... Discovery of ONU Device after whitelist has been configured
55 ... Sending of a successful 802.1x auth request
56 ... Configuration of the destination servers interface and start dhcpd
57 ... Configuration of source server interface and execute dhclient on interface
58 ... Validate successful pings from src to dst
59 [Setup] None
Kailash Khalasia0810ce2018-09-10 13:03:27 -070060 Wait Until Keyword Succeeds 60s 2s Validate ONU States ACTIVE ENABLED
You Wangfa6d8cf2018-09-18 16:54:30 -070061 Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED AWAITING
62 Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status awaiting-auth
Kailash Khalasia0810ce2018-09-10 13:03:27 -070063 Send EAPOL Message ${src_ip} ${src_user} ${src_pass} ${src_iface} wpa_supplicant.conf
You Wangfa6d8cf2018-09-18 16:54:30 -070064 Wait Until Keyword Succeeds 60s 2s Validate ATT Workflow Driver SI ENABLED APPROVED
65 Wait Until Keyword Succeeds 60s 2s Validate Subscriber Status enabled
Kailash Khalasi6dab16e2018-09-17 20:24:08 -070066 Add Double Vlan Interface on Host ${dst_ip} ${dst_user} ${dst_pass} ${dst_dp_iface} ${s_tag} ${c_tag}
67 Add IP Address on Interface on Host ${dst_ip} ${dst_user} ${dst_pass} ${dst_dp_ip}/24 ${dst_dp_iface}.${stag}.${c_tag}
68 Add Route to Remote Host ${dst_ip} ${dst_user} ${dst_pass} ${dst_dp_ip} ${src_gateway} ${dst_dp_iface}.${stag}.${c_tag}
Kailash Khalasi6dab16e2018-09-17 20:24:08 -070069 Start DHCP Server on Remote Host ${dst_ip} ${dst_user} ${dst_pass} ${dst_dp_iface}.${stag}.${ctag}
Kailash Khalasia0810ce2018-09-10 13:03:27 -070070 Send Dhclient Request ${src_ip} ${src_user} ${src_pass} ${src_iface}
Kailash Khalasi422d1ab2018-09-18 09:54:26 -070071 Wait Until Keyword Succeeds 60s 5s Test Ping PASS ${src_ip} ${src_user} ${src_pass} ${dst_dp_ip} ${src_iface}
Suchitra Vemuriff825322018-09-07 14:00:04 -070072
73*** Keywords ***
Kailash Khalasif3e0a9f2018-09-18 13:43:42 -070074Setup
75 ${auth} = Create List ${XOS_USER} ${XOS_PASSWD}
76 ${HEADERS} Create Dictionary Content-Type=application/json
77 Create Session ${server_ip} http://${server_ip}:${server_port} auth=${AUTH} headers=${HEADERS}
78 ${att_workflow_service_id}= Get Service Owner Id ${ATT_SERVICE}
79 ${volt_service_id}= Get Service Owner Id ${VOLT_SERVICE}
Kailash Khalasi30a6a392018-09-10 14:32:39 -070080 ${AttWhiteListList}= utils.jsonToList ${WHITELIST_PATHFILE} AttWhiteListInfo
81 Set Suite Variable ${alist} ${AttWhiteListList}
82 ${AttWhiteListList} = Get Variable Value ${alist}
Suchitra Vemuriff825322018-09-07 14:00:04 -070083 ${AttWhiteListDict}= utils.listToDict ${AttWhiteListList} 0
Kailash Khalasif3e0a9f2018-09-18 13:43:42 -070084 ${AttWhiteListDict}= utils.setFieldValueInDict ${AttWhiteListDict} owner_id ${att_workflow_service_id}
Suchitra Vemuriff825322018-09-07 14:00:04 -070085 ${onu_device}= Get From Dictionary ${AttWhiteListDict} serial_number
86 Log ${onu_device}
Suchitra Vemuriff825322018-09-07 14:00:04 -070087 Set Global Variable ${onu_device}
Kailash Khalasi30a6a392018-09-10 14:32:39 -070088 ${SubscriberList}= utils.jsonToList ${SUBSCRIBER_PATHFILE} SubscriberInfo
89 Set Global Variable ${slist} ${SubscriberList}
Kailash Khalasi6dab16e2018-09-17 20:24:08 -070090 ${SubscriberList} = Get Variable Value ${slist}
91 ${SubscriberDict}= utils.listToDict ${SubscriberList} 0
92 ${s_tag}= utils.getFieldValueFromDict ${SubscriberDict} s_tag
93 ${c_tag}= utils.getFieldValueFromDict ${SubscriberDict} c_tag
Kailash Khalasif3e0a9f2018-09-18 13:43:42 -070094 ${VoltDeviceList}= utils.jsonToList ${VOLT_DEVICE_PATHFILE} VOLTDeviceInfo
95 Set Global Variable ${vlist} ${VoltDeviceList}
Kailash Khalasi6dab16e2018-09-17 20:24:08 -070096 Set Suite Variable ${s_tag}
97 Set Suite Variable ${c_tag}
Suchitra Vemuriff825322018-09-07 14:00:04 -070098
Suchitra Vemuri32fc2f22018-09-10 12:06:01 -070099Teardown
Kailash Khalasif3e0a9f2018-09-18 13:43:42 -0700100 [Documentation] Performs any additional cleanup required
101 Log Suite Teardown cleanup
102 Delete All Sessions
103
104Create Models
105 [Documentation] Re-create Subscriber, whitelist, and olt-device models to test
106 Log Re-creating objects
107 #create attwhitelist
108 ${AttWhiteListList} = Get Variable Value ${alist}
109 ${AttWhiteListDict}= utils.listToDict ${AttWhiteListList} 0
110 CORD Post ${ATT_WHITELIST} ${AttWhiteListDict}
111 #create subscriber
112 ${SubscriberList} = Get Variable Value ${slist}
113 ${SubscriberDict}= utils.listToDict ${SubscriberList} 0
114 Wait Until Keyword Succeeds 120s 15s CORD Post ${VOLT_SUBSCRIBER} ${SubscriberDict}
115 #create olt device
116 ${VoltDeviceList} = Get Variable Value ${vlist}
117 ${VoltDeviceDict}= utils.listToDict ${VoltDeviceList} 0
118 CORD Post ${VOLT_DEVICE} ${VoltDeviceDict}
119
120Clean Test Environment
121 [Documentation] Delete xos objects, kills processes and cleans up interfaces on src+dst servers
Kailash Khalasi052cbb12018-09-13 16:50:13 -0700122 Run Keyword And Ignore Error Kill Linux Process ${src_ip} ${src_user} ${src_pass} [w]pa_supplicant
123 Run Keyword And Ignore Error Kill Linux Process ${src_ip} ${src_user} ${src_pass} [d]hclient
Kailash Khalasi6dab16e2018-09-17 20:24:08 -0700124 Run Keyword And Ignore Error Kill Linux Process ${dst_ip} ${dst_user} ${dst_pass} [d]hcpd
Kailash Khalasi052cbb12018-09-13 16:50:13 -0700125 Delete IP Addresses from Interface on Remote Host ${src_ip} ${src_user} ${src_pass} ${src_iface}
Kailash Khalasi6dab16e2018-09-17 20:24:08 -0700126 Delete Interface on Remote Host ${dst_ip} ${dst_user} ${dst_pass} ${dst_dp_iface}.${stag}
Kailash Khalasiadc4b4d2018-09-19 10:23:55 -0700127 Wait Until Keyword Succeeds 60s 2s Clean Up Objects ${VOLT_SUBSCRIBER}
128 Wait Until Keyword Succeeds 60s 2s Clean Up Objects ${VOLT_DEVICE}
129 Wait Until Keyword Succeeds 60s 2s Clean Up Objects ${ATT_WHITELIST}
Kailash Khalasia0810ce2018-09-10 13:03:27 -0700130
131Validate ONU States
132 [Arguments] ${expected_op_status} ${expected_admin_status}
133 ${operational_status} ${admin_status} ONU Status Check ${onu_device}
134 Should Be Equal ${operational_status} ${expected_op_status}
135 Should Be Equal ${admin_status} ${expected_admin_status}
136
137Validate ATT Workflow Driver SI
138 [Arguments] ${expected_status} ${expected_auth_status}
You Wangfa6d8cf2018-09-18 16:54:30 -0700139 ${onu_state} ${authentication_status} Service Instance Status Check ${onu_device}
140 Should Be Equal ${onu_state} ${expected_status}
Kailash Khalasia0810ce2018-09-10 13:03:27 -0700141 Should Be Equal ${authentication_status} ${expected_auth_status}
142
143Validate Subscriber Status
144 [Arguments] ${exepected_status}
145 ${status} Subscriber Status Check ${onu_device}
You Wangfa6d8cf2018-09-18 16:54:30 -0700146 Should Be Equal ${status} ${exepected_status}