2 Documentation Testing openstack.
3 Library OperatingSystem
6 Library RequestsLibrary
7 Library ONAPLibrary.JSON
8 Library ONAPLibrary.Openstack
11 Library ONAPLibrary.ServiceMapping WITH NAME ServiceMapping
13 Resource ../openstack/keystone_interface.robot
14 Resource ../openstack/nova_interface.robot
15 Resource ../openstack/heat_interface.robot
16 Resource ../ssh/files.robot
17 Resource ../demo_preload.robot
18 Resource packet_generator_interface.robot
19 Resource validate_common.robot
22 Policy Check FirewallCL Stack
23 [Documentation] Executes the vFW policy closed loop test.
24 [Arguments] ${stacknamemap} ${policy_rate}
25 Run Openstack Auth Request auth
26 ${vsnk_stack_name}= Get From Dictionary ${stacknamemap} vFWSNK
27 ${vpkg_stack_name}= Get From Dictionary ${stacknamemap} vPKG
28 ${vsnk_stack_info}= Wait for Stack to Be Deployed auth ${vsnk_stack_name}
29 ${vpkg_stack_info}= Wait for Stack to Be Deployed auth ${vpkg_stack_name}
30 ${server_list}= Get Openstack Servers auth
32 ${vpkg_id}= Get From Dictionary ${vpkg_stack_info} vnf_id
33 ${status} ${generic_vnf}= Run Keyword And Ignore Error Get Generic VNF By ID ${vpkg_id}
34 Run Keyword If '${status}' == 'FAIL' FAIL VNF ID: ${vpkg_id} is not found.
35 ${invariantUUID} Get From Dictionary ${generic_vnf} persona-model-id
36 Update vVFWCL Policy ${invariantUUID}
38 ${vpg_unprotected_ip}= Get From Dictionary ${vpkg_stack_info} vpg_int_unprotected_private_ip_0
39 ${vsn_protected_ip}= Get From Dictionary ${vsnk_stack_info} vsn_int_protected_private_ip_0
40 ${vpg_public_ip}= Get Server Ip ${server_list} ${vpkg_stack_info} vpg_name_0 network_name=${GLOBAL_INJECTED_OPENSTACK_PUBLIC_NETWORK}
41 ${vsn_public_ip}= Get Server Ip ${server_list} ${vsnk_stack_info} vsn_name_0 network_name=${GLOBAL_INJECTED_OPENSTACK_PUBLIC_NETWORK}
42 ${upper_bound}= Evaluate ${policy_rate}*2
43 Wait Until Keyword Succeeds 30m 2s Run VFW Policy Check ${vpg_public_ip} ${policy_rate} ${upper_bound} 1
46 [Documentation] Push traffic above upper bound, wait for policy to fix it, push traffic to lower bound, wait for policy to fix it,
47 [Arguments] ${vpg_public_ip} ${policy_rate} ${upper_bound} ${lower_bound}
48 # Force traffic above threshold
49 Check For Policy Enforcement ${vpg_public_ip} ${policy_rate} ${upper_bound}
50 # Force traffic below threshold
51 Check For Policy Enforcement ${vpg_public_ip} ${policy_rate} ${lower_bound}
53 Check For Policy Enforcement
54 [Documentation] Push traffic above upper bound, wait for policy to fix it, push traffic to lower bound, wait for policy to fix it,
55 [Arguments] ${vpg_public_ip} ${policy_rate} ${forced_rate}
56 Enable Streams ${vpg_public_ip} ${forced_rate}
57 Wait Until Keyword Succeeds 20s 2s Test For Expected Rate ${vpg_public_ip} ${forced_rate}
58 Wait Until Keyword Succeeds 10m 2s Test For Expected Rate ${vpg_public_ip} ${policy_rate}
60 Test For Expected Rate
61 [Documentation] Ge the number of pg-streams from the PGN, and test to see if it is what we expect.
62 [Arguments] ${vpg_public_ip} ${number_of_streams}
63 ${list}= Get List Of Enabled Streams ${vpg_public_ip}
64 ${list}= Evaluate ${list['sample-plugin']}['pg-streams']['pg-stream']
65 Length Should Be ${list} ${number_of_streams}
67 Policy Check vLB Stack
68 [Documentation] Executes the vLB policy closed loop test
69 [Arguments] ${stack_name} ${policy_rate}
70 Run Openstack Auth Request auth
71 ${stack_info}= Wait for Stack to Be Deployed auth ${stack_name}
72 ${stack_id}= Get From Dictionary ${stack_info} id
73 ${server_list}= Get Openstack Servers auth
74 ${vlb_public_ip}= Get Server Ip ${server_list} ${stack_info} vlb_name_0 network_name=${GLOBAL_INJECTED_OPENSTACK_PUBLIC_NETWORK}
75 ${upper_bound}= Evaluate ${policy_rate}*2
76 Start DNS Traffic ${vlb_public_ip} ${upper_bound}
78 # Now wiat for the dnsscaling stack to be deployed
79 ${prefix}= Get DNSScaling Prefix
80 ${dnsscaling}= Replace String Using Regexp ${stack_name} ^Vfmodule_ ${prefix}
81 ${dnsscaling_info}= Wait for Stack to Be Deployed auth ${dnsscaling}
82 # TO DO: Log into vLB and cehck that traffic is flowing to the new DNS
83 [Return] ${dnsscaling}
86 ServiceMapping.Set Directory default ${GLOBAL_SERVICE_MAPPING_DIRECTORY}
87 ${mapping}= ServiceMapping.Get Service Template Mapping default vLB vLB
88 :FOR ${dict} IN @{mapping}
89 \ Return From Keyword If '${dict['isBase']}' == 'false' ${dict['prefix']}
93 [Documentation] Run nslookups at rate per second. Run for 10 minutes or until it is called by the terminate process
94 [Arguments] ${vlb_public_ip} ${rate}
95 ${pid}= Start Process ./dnstraffic.sh ${vlb_public_ip} ${rate} ${GLOBAL_DNS_TRAFFIC_DURATION}