blob: ea23a1f1f6ad4607e7ca61a5bc928e0b4e3534ee [file] [log] [blame]
Kailash Khalasic930eac2018-09-05 12:18:23 -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
15*** Settings ***
Suchitra Vemuri6357e692018-09-07 11:11:47 -070016Documentation Library of functions related to RG (source host)
Kailash Khalasic930eac2018-09-05 12:18:23 -070017Library OperatingSystem
18Library SSHLibrary
Suchitra Vemurief989602018-09-10 13:45:26 -070019Library restApi.py
Kailash Khalasic930eac2018-09-05 12:18:23 -070020
21*** Keywords ***
22Send EAPOL Message
23 [Arguments] ${ip} ${user} ${pass} ${iface} ${conf_file} ${prompt}=$ ${prompt_timeout}=60s
24 [Documentation] SSH's into the RG (src) and executes a particular auth request via wpa_supplicant client. Requested packet should exist on src.
25 ${conn_id}= SSHLibrary.Open Connection ${ip} prompt=${prompt} timeout=${prompt_timeout}
Kailash Khalasie030eee2018-09-10 09:19:46 -070026 SSHLibrary.Login ${user} ${pass}
Kailash Khalasi449388f2018-09-06 16:52:22 -070027 SSHLibrary.Write sudo wpa_supplicant -B -i ${iface} -Dwired -c /etc/wpa_supplicant/${conf_file}
Kailash Khalasic930eac2018-09-05 12:18:23 -070028 Read Until [sudo] password for ${user}:
29 SSHLibrary.Write ${pass}
30 ${result}= Read Until ${prompt}
31 SSHLibrary.Close Connection
Kailash Khalasie030eee2018-09-10 09:19:46 -070032 Should Contain ${result} Successfully initialized wpa_supplicant
Suchitra Vemuri6357e692018-09-07 11:11:47 -070033 [Return] ${result}
34
35Subscriber Status Check
36 [Arguments] ${onu_device}
37 [Documentation] Returns Status from Subscribers List for a particular ONU device
38 ${json_result}= restApi.ApiGet VOLT_SUBSCRIBER
39 Log ${json_result}
40 ${json_result_list}= Get From dictionary ${json_result} items
Suchitra Vemurief989602018-09-10 13:45:26 -070041 ${getJsonDict}= utils.getDictFromListOfDict ${json_result_list} onu_device ${onu_device}
Suchitra Vemuri32fc2f22018-09-10 12:06:01 -070042 ${status}= Get From Dictionary ${getJsonDict} status
Suchitra Vemuri6357e692018-09-07 11:11:47 -070043 [Return] ${status}
Kailash Khalasi30a6a392018-09-10 14:32:39 -070044
45Create Subscriber
46 [Arguments] ${subscriber_list} ${list_index}
47 [Documentation] Sends a POST to create a subscriber in XOS
48 ${slist} = Get Variable Value ${subscriber_list}
49 ${subscriber_dictionary}= utils.listToDict ${slist} ${list_index}
50 ${api_result}= restApi.ApiPost VOLT_SUBSCRIBER ${subscriber_dictionary}
51 Should Be True ${api_result}
52 ${Subscriber_id}= Get From Dictionary ${api_result} id
53 Set Global Variable ${Subscriber_id}
54 [Return] ${Subscriber_id}
55
56Retrieve Subscriber
57 [Arguments] ${ctag}
58 [Documentation] Returns the subscriber id based on the subscriber's C-Tag
59 ${json_result}= restApi.ApiGet VOLT_SUBSCRIBER
60 Log ${json_result}
61 ${json_result_list}= Get From dictionary ${json_result} items
62 ${getJsonDict}= utils.getDictFromListOfDict ${json_result_list} c_tag ${ctag}
63 ${id}= Get From Dictionary ${getJsonDict} id
64 [Return] ${id}
65
66Delete Subscriber
67 [Arguments] ${ctag}
68 [Documentation] Deletes a given subscriber based on its c_tag
69 ${id}= Retrieve Subscriber ${ctag}
70 ${api_result}= restApi.ApiChameleonDelete VOLT_SUBSCRIBER ${id}
71 Should Be True ${api_result}
Kailash Khalasi052cbb12018-09-13 16:50:13 -070072
73Delete IP Addresses from Interface on Remote Host
74 [Arguments] ${ip} ${user} ${pass} ${interface} ${prompt}=$ ${prompt_timeout}=60s
75 [Documentation] Deletes all ip addresses assigned to a particular interface on a remote host
76 ${conn_id}= SSHLibrary.Open Connection ${ip} prompt=${prompt} timeout=${prompt_timeout}
77 SSHLibrary.Login ${user} ${pass}
78 SSHLibrary.Write sudo ip addr flush dev ${interface}; echo $?
79 Read Until [sudo] password for ${user}:
80 SSHLibrary.Write ${pass}
81 ${result}= Read Until ${prompt}
82 SSHLibrary.Close Connection
83 Should Contain ${rc} 0