blob: c236bfe44288e1ea311150a4aa09b15117164e60 [file] [log] [blame]
Suchitra Vemuri75746412018-08-03 15:04:05 -07001*** Settings ***
2Documentation Test suite for checking the subscriber status after discovery
Kailash Khalasicfe24e72018-08-17 12:47:29 -07003Suite Setup Setup
Suchitra Vemuri75746412018-08-03 15:04:05 -07004Test Template Subscriber Status Test
5Library Collections
6Library String
7Library OperatingSystem
8Library XML
9Library RequestsLibrary
10Library ../Framework/utils/utils.py
Kailash Khalasi62267102018-08-16 11:38:44 -070011Resource ../Framework/utils/utils.robot
Suchitra Vemuri75746412018-08-03 15:04:05 -070012Library ../Framework/restApi.py
13
14*** Variables ***
15${PATHFILE} ${CURDIR}/data/Subscriber_TopDown.json
16&{input_dict} mac_address=test ip_address=test2
17&{status} status=test
Kailash Khalasi55689032018-08-15 14:50:46 -070018${src_ip} X.X.X.X
19${src_gateway} X.X.X.X
20${src_user} user
21${src_pass} pass
22${dst_ip} X.X.X.X
Kailash Khalasicfe24e72018-08-17 12:47:29 -070023${dst_usr} user
24${dst_pass} pass
Kailash Khalasi55689032018-08-15 14:50:46 -070025${dst_gateway} X.X.X.X
26${dst_host_ip} X.X.X.X
Suchitra Vemuri75746412018-08-03 15:04:05 -070027
28*** Test Cases *** TYPE LISTINDEX
29Test Status Subscriber-1
30 STATUS 0
31Change Subscriber status
32 STATUSCHANGE 0
33Push MACandIP Subscriber-1
34 PUSH 0
Suchitra Vemuri75746412018-08-03 15:04:05 -070035
36*** Keywords ***
Kailash Khalasicfe24e72018-08-17 12:47:29 -070037Setup
38 [Documentation] Read input file and send arping requests from host/dst to their gateways
39 Read InputFile
40 Ping Gateway ${src_ip} ${src_user} ${src_pass} ${src_gateway}
41 Ping Gateway ${dst_ip} ${dst_user} ${dst_pass} ${dst_gateway}
42
Suchitra Vemuri75746412018-08-03 15:04:05 -070043Read InputFile
44 ${SubscriberList}= utils.jsonToList ${PATHFILE} SubscriberInfo
45 Set Suite Variable ${slist} ${SubscriberList}
46 Set Global Variable ${Subscriber_Id} ${EMPTY}
47 Set Global Variable ${status} ${EMPTY}
48
49Subscriber Status Test
50 [Arguments] ${type} ${listIndex}
51 Run Keyword If "${type}" == "PUSH" Push MAC and IP For Subscriber ${listIndex}
Kailash Khalasi55689032018-08-15 14:50:46 -070052 Run Keyword If "${type}" == "STATUS" Wait Until Keyword Succeeds 60s 5s Subscriber Status Check ${listIndex}
Suchitra Vemuri75746412018-08-03 15:04:05 -070053 Run Keyword If "${type}" == "STATUSCHANGE" Subscriber Status Change ${listIndex}
54
55Subscriber Status Check
56 [Arguments] ${listIndex}
57 Set Global Variable ${Subscriber_Id} ${EMPTY}
58 Log ${Subscriber_Id}
59 ${json_result}= restApi.ApiGet VOLT_SUBSCRIBER
60 Log ${json_result}
61 ${SubscriberList} = Get Variable Value ${slist}
62 ${SubscriberDict}= utils.listToDict ${SubscriberList} ${listIndex}
63 Log ${SubscriberDict}
64 ${onu_device}= utils.getFieldValueFromDict ${subscriberDict} onu_device
65 ${json_result_list}= Get From dictionary ${json_result} items
66 ${getJsonDict}= utils.getDictFromListOfDict ${json_result_list} onu_device ${onu_device}
67 ${status}= Get From Dictionary ${getJsonDict} status
68 ${Subscriber_Id}= Get From Dictionary ${getJsonDict} id
69 Set Global Variable ${Subscriber_Id}
Kailash Khalasi7aaf82f2018-08-16 16:43:24 -070070 Should Be Equal ${status} awaiting-auth
Kailash Khalasicfe24e72018-08-17 12:47:29 -070071 Wait Until Keyword Succeeds 60s 2s Test Ping ${ENABLE_STATUS} ${src_ip} ${src_user} ${src_pass} ${dst_host_ip}
Suchitra Vemuri75746412018-08-03 15:04:05 -070072 #Set Global Variable ${Subscriber_Id}
73
74Subscriber Status Change
75 [Arguments] ${listIndex}
76 ${status}= Create Dictionary status=enabled
77 ${api_result_status}= restApi.ApiChameleonPut VOLT_SUBSCRIBER ${status} ${Subscriber_Id}
78 Should Be True ${api_result_status}
Kailash Khalasicfe24e72018-08-17 12:47:29 -070079 Wait Until Keyword Succeeds 60s 2s Test Ping ${ENABLE_STATUS} ${src_ip} ${src_user} ${src_pass} ${dst_host_ip}
Suchitra Vemuri75746412018-08-03 15:04:05 -070080
81Push MAC and IP For Subscriber
82 [Arguments] ${listIndex}
83 ${SubscriberList} = Get Variable Value ${slist}
84 ${SubscriberDict}= utils.listToDict ${SubscriberList} ${listIndex}
85 ${mac_address}= utils.getFieldValueFromDict ${subscriberDict} mac_address
86 ${ip_address}= utils.getFieldValueFromDict ${subscriberDict} ip_address
87 ${input_dict}= Create Dictionary mac_address=${mac_address} ip_address=${ip_address}
88 ${api_result_status}= restApi.ApiChameleonPut VOLT_SUBSCRIBER ${input_dict} ${Subscriber_Id}
89 Should Be True ${api_result_status}
Kailash Khalasicfe24e72018-08-17 12:47:29 -070090 Wait Until Keyword Succeeds 60s 2s Test Ping ${MACIP_STATUS} ${src_ip} ${src_user} ${src_pass} ${dst_host_ip}
91
92Ping Gateway
93 [Documentation] SSH's into a host and sends an arping to its gateway for host discovery
94 [Arguments] ${ip} ${user} ${pass} ${gateway} ${prompt}=$ ${prompt_timeout}=60s
95 ${conn_id}= SSHLibrary.Open Connection ${ip} prompt=${prompt} timeout=${prompt_timeout}
96 SSHLibrary.Login ${user} ${pass}
97 ${result}= SSHLibrary.Execute Command sudo arping -c 3 ${gateway}
98 SSHLibrary.Close Connection