blob: 383fbc7b21326733622beab278d7cb7237511e54 [file] [log] [blame]
DR695Hccff30b2017-02-17 18:44:24 -05001*** Settings ***
2Documentation Testing openstack.
3Library OperatingSystem
4Library SSHLibrary
5Library RequestsLibrary
6Library JSONUtils
7Library OpenstackLibrary
8Library HEATUtils
9Library Collections
10Resource ../../resources/openstack/keystone_interface.robot
11Resource ../../resources/openstack/nova_interface.robot
12Resource ../../resources/openstack/heat_interface.robot
13Resource ../../resources/ssh/files.robot
14Resource ../../resources/ssh/processes.robot
15Resource ../appc_interface.robot
16Resource packet_generator_interface.robot
17Resource validate_common.robot
18
19
20*** Variables ***
21${ASSETS} ${EXECDIR}/robot/assets/
22
23*** Keywords ***
24Validate Firewall Stack
25 [Documentation] Identifies the firewall servers in the VFW Stack in the GLOBAL_OPENSTACK_SERVICE_REGION
jf98603b22a2d2017-03-01 19:43:28 -050026 [Arguments] ${STACK_NAME}
DR695Hccff30b2017-02-17 18:44:24 -050027 Run Openstack Auth Request auth
28 ${stack_info}= Wait for Stack to Be Deployed auth ${STACK_NAME}
29 ${stack_id}= Get From Dictionary ${stack_info} id
jf98603b22a2d2017-03-01 19:43:28 -050030 ${server_list}= Get Openstack Servers auth
DR695Hccff30b2017-02-17 18:44:24 -050031
32 ${vpg_unprotected_ip}= Get From Dictionary ${stack_info} vpg_private_ip_0
33 ${vsn_protected_ip}= Get From Dictionary ${stack_info} vsn_private_ip_0
34 ${vpg_name_0}= Get From Dictionary ${stack_info} vpg_name_0
jf98603b22a2d2017-03-01 19:43:28 -050035 ${vfw_public_ip}= Get Server Ip ${server_list} ${stack_info} vfw_name_0 network_name=public
36 ${vpg_public_ip}= Get Server Ip ${server_list} ${stack_info} vpg_name_0 network_name=public
37 ${vsn_public_ip}= Get Server Ip ${server_list} ${stack_info} vsn_name_0 network_name=public
38
DR695Hccff30b2017-02-17 18:44:24 -050039 Wait For Server ${vfw_public_ip}
40 Wait For Server ${vpg_public_ip}
41 Wait For Server ${vsn_public_ip}
42 Log Accessed all servers
jf98603b22a2d2017-03-01 19:43:28 -050043 Wait For Firewall ${vfw_public_ip}
44 Wait For Packet Generator ${vpg_public_ip}
45 Wait For Packet Sink ${vsn_public_ip}
DR695Hccff30b2017-02-17 18:44:24 -050046 Log All server processes up
jf9860b85b1642017-03-02 11:24:11 -050047 ${vpg_oam_ip}= Get From Dictionary ${stack_info} vpg_private_ip_1
48 ${appc}= Create Mount Point In APPC ${vpg_name_0} ${vpg_oam_ip}
DR695Hccff30b2017-02-17 18:44:24 -050049
50 # Following hack was implemented because the stack doesn't always come up clean
51 # It was found that rebooting the servers at this point did not improve the
jf98603b22a2d2017-03-01 19:43:28 -050052 # chances of the packets flowing to the SNK
DR695Hccff30b2017-02-17 18:44:24 -050053 #${status} ${data}= Run Keyword And Ignore Error Wait For Packets ${vpg_public_ip} ${vpg_unprotected_ip} ${vsn_protected_ip} ${vsn_public_ip}
54 #Return From Keyword if '${status}' == 'PASS'
55 #Close All Connections
jf98603b22a2d2017-03-01 19:43:28 -050056 #Find And Reboot The Server ${stack_info} ${server_list} vfw_name_0
57 #Find And Reboot The Server ${stack_info} ${server_list} vpg_name_0
DR695Hccff30b2017-02-17 18:44:24 -050058 #Find And Reboot The Server ${stack_info} ${server_list} vsn_name_0
jf98603b22a2d2017-03-01 19:43:28 -050059 ## Gives some time for servers to shutdown
60 #Sleep 10s
DR695Hccff30b2017-02-17 18:44:24 -050061 #Wait For Server ${vfw_public_ip}
62 #Wait For Server ${vpg_public_ip}
63 #Wait For Server ${vsn_public_ip}
64
65 Wait For Packets ${vpg_public_ip} ${vpg_unprotected_ip} ${vsn_protected_ip} ${vsn_public_ip}
jf98603b22a2d2017-03-01 19:43:28 -050066
DR695Hccff30b2017-02-17 18:44:24 -050067Wait For Packets
68 [Documentation] Final vfw validation that packets are flowing from the pgn VM to the snk VM
jf98603b22a2d2017-03-01 19:43:28 -050069 [Arguments] ${vpg_public_ip} ${vpg_unprotected_ip} ${vsn_protected_ip} ${vsn_public_ip}
DR695Hccff30b2017-02-17 18:44:24 -050070 ${resp}= Enable Stream ${vpg_public_ip}
71 Should Be Equal As Strings ${resp.status_code} 200
jf98603b22a2d2017-03-01 19:43:28 -050072 ${syslog_message}= Catenate UDP: short packet: From ${vpg_unprotected_ip}:.* to ${vsn_protected_ip}:.*
DR695Hccff30b2017-02-17 18:44:24 -050073 Tail File on Host Until ${vsn_public_ip} UDP: /var/log/syslog ${syslog_message} timeout=120s
jf98603b22a2d2017-03-01 19:43:28 -050074 Disable All Streams ${vpg_public_ip}
DR695Hccff30b2017-02-17 18:44:24 -050075
76
77Wait For Firewall
78 [Documentation] Wait for the defined firewall processes to come up
jf98603b22a2d2017-03-01 19:43:28 -050079 [Arguments] ${ip}
80 Wait for Process on Host ./vpp_measurement_reporter ${ip}
81 Wait for Process on Host vpp -c /etc/vpp/startup.conf ${ip}
DR695Hccff30b2017-02-17 18:44:24 -050082
83Wait For Packet Generator
84 [Documentation] Wait for the defined packet generator processes to come up
jf98603b22a2d2017-03-01 19:43:28 -050085 [Arguments] ${ip}
86 Wait for Process on Host vpp -c /etc/vpp/startup.conf ${ip}
DR695Hccff30b2017-02-17 18:44:24 -050087 Wait Until Keyword Succeeds 180s 5s Tail File on Host Until ${ip} Honeycomb /var/log/honeycomb/honeycomb.log - Honeycomb initialized options=-c +0 timeout=120s
jf98603b22a2d2017-03-01 19:43:28 -050088 Run Keyword And Ignore Error Wait for Process on Host run_traffic_fw_demo.sh ${ip} timeout=60s
DR695Hccff30b2017-02-17 18:44:24 -050089 Pkill Process On Host "/bin/bash ./run_traffic_fw_demo.sh" ${ip}
jf98603b22a2d2017-03-01 19:43:28 -050090
DR695Hccff30b2017-02-17 18:44:24 -050091Wait For Packet Sink
92 [Documentation] Wait for the defined packet sink processes to come up
93 [Arguments] ${ip}
jf98603b22a2d2017-03-01 19:43:28 -050094 Log noting to check on ${ip}