2 Documentation Policy Closed Loop Test cases
4 Resource ../stack_validation/policy_check_vfw.robot
8 Library ONAPLibrary.Templating WITH NAME Templating
9 Library ONAPLibrary.Utilities
12 ${RESOURCE_PATH_CREATE} /pdp/createPolicy
13 ${RESOURCE_PATH_CREATE_PUSH} /pdp/pushPolicy
14 ${RESOURCE_PATH_CREATE_DELETE} /pdp/deletePolicy
15 ${RESOURCE_PATH_GET_CONFIG} /pdp/getConfig
16 ${CREATE_CONFIG_TEMPLATE} policy/closedloop_configpolicy.jinja
17 ${CREATE_OPS_TEMPLATE} policy/closedloop_opspolicy.jinja
18 ${PUSH_POLICY_TEMPLATE} policy/closedloop_pushpolicy.jinja
19 ${DEL_POLICY_TEMPLATE} policy/closedloop_deletepolicy.jinja
20 ${GECONFIG_VFW_TEMPLATE} policy/closedloop_getconfigpolicy.jinja
22 # 'Normal' number of pg streams that will be set when policy is triggered
25 # Max nslookup requests per second before triggering event.
28 ${CONFIG_POLICY_NAME} vFirewall
29 ${CONFIG_POLICY_TYPE} Unknown
31 ${OPS_POLICY_TYPE} BRMS_PARAM
34 ${Expected_Severity_1} MAJOR
35 ${Expected_Threshold_1} 300
36 ${Expected_Direction_1} LESS_OR_EQUAL
39 ${Expected_Severity_2} CRITICAL
40 ${Expected_Threshold_2} 700
41 ${Expected_Direction_2} GREATER_OR_EQUAL
44 ${Expected_Severity_3} MAJOR
45 ${Expected_Threshold_3} 200
46 ${Expected_Direction_3} GREATER_OR_EQUAL
50 Log Suite name ${SUITE NAME} ${TEST NAME} ${PREV TEST NAME}
52 ${stackname} ${generic_vnfs} ${server_id} ${service_instance_id} ${customer_name} ${uris_to_delete}= Orchestrate VNF vFW closedloop
53 Policy Check FirewallCL Stack ${stackname} ${VFWPOLICYRATE}
54 Delete VNF ${None} ${server_id} ${customer_name} ${service_instance_id} ${stackname} ${uris_to_delete}
57 Initialize VDNS Policy
58 ${stackname} ${generic_vnfs} ${server_id} ${service_instance_id} ${customer_name} ${uris_to_delete}= Orchestrate VNF vDNS closedloop
59 ${dnsscaling}= Policy Check vLB Stack ${stackname} ${VLBPOLICYRATE}
60 Delete VNF ${None} ${server_id} ${customer_name} ${service_instance_id} ${stackname} ${uris_to_delete}
63 Get Configs VFW Policy
65 Initialize VDNS Policy
66 Get Configs VDNS Policy
68 Get Configs VFW Policy
69 [Documentation] Get Config Policy for VFW
70 ${getconfigpolicy}= Catenate .*${CONFIG_POLICY_NAME}*
71 ${configpolicy_name}= Create Dictionary config_policy_name=${getconfigpolicy}
72 Templating.Create Environment cl ${GLOBAL_TEMPLATE_FOLDER}
73 ${output}= Templating.Apply Template cl ${GECONFIG_VFW_TEMPLATE} ${configpolicy_name}
74 ${get_resp} = Run Policy Get Configs Request ${RESOURCE_PATH_GET_CONFIG} ${output}
75 Should Be Equal As Strings ${get_resp.status_code} 200
76 ${config}= Catenate ${get_resp.json()[0]["config"]}
77 ${thresholds}= Get Variable Value ${config["content"]["tca_policy"]["metricsPerEventName"][0]["thresholds"]}
79 # Extract object1 from Array
80 Should Be Equal ${thresholds[0]["severity"]} ${Expected_Severity_1}
81 Should Be Equal As Integers ${thresholds[0]["thresholdValue"]} ${Expected_Threshold_1}
82 Should Be Equal ${thresholds[0]["direction"]} ${Expected_Direction_1}
84 # Extract object2 from Array
85 Should Be Equal ${thresholds[1]["severity"]} ${Expected_Severity_2}
86 Should Be Equal As Integers ${thresholds[1]["thresholdValue"]} ${Expected_Threshold_2}
87 Should Be Equal ${thresholds[1]["direction"]} ${Expected_Direction_2}
89 Get Configs VDNS Policy
90 [Documentation] Get Config Policy for VDNS
91 ${getconfigpolicy}= Catenate .*MicroServicevDNS*
92 ${configpolicy_name}= Create Dictionary config_policy_name=${getconfigpolicy}
93 Templating.Create Environment cl ${GLOBAL_TEMPLATE_FOLDER}
94 ${output}= Templating.Apply Template cl ${GECONFIG_VFW_TEMPLATE} ${configpolicy_name}
95 ${get_resp} = Run Policy Get Configs Request ${RESOURCE_PATH_GET_CONFIG} ${output}
96 Should Be Equal As Strings ${get_resp.status_code} 200
97 ${config}= Catenate ${get_resp.json()[0]["config"]}
98 ${thresholds}= Get Variable Value ${config["content"]["tca_policy"]["metricsPerEventName"][0]["thresholds"]}
100 # Extract object1 from Array
101 Should Be Equal ${thresholds[0]["severity"]} ${Expected_Severity_2}
102 Should Be Equal As Integers ${thresholds[0]["thresholdValue"]} ${Expected_Threshold_1}
103 Should Be Equal ${thresholds[0]["direction"]} ${Expected_Direction_3}
106 [Documentation] Tear down a closed loop test case
107 [Arguments] ${customer_name} ${catalog_service_id} ${catalog_resource_ids}
108 Terminate All Processes
109 Teardown VNF ${customer_name} ${catalog_service_id} ${catalog_resource_ids}
110 Log Teardown complete
113 [Documentation] Create Config Policy
114 ${randompolicyname} = Create Policy Name
115 ${policyname1}= Catenate com.${randompolicyname}
116 ${CONFIG_POLICY_NAME}= Catenate ${policyname1}
117 ${configpolicy}= Create Dictionary policy_name=${CONFIG_POLICY_NAME}
118 Templating.Create Environment cl ${GLOBAL_TEMPLATE_FOLDER}
119 ${output}= Templating.Apply Template cl ${CREATE_CONFIG_TEMPLATE} ${configpolicy}
120 ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE} ${output}
121 Should Be Equal As Strings ${put_resp.status_code} 200
124 [Documentation] Generate Policy Name
125 [Arguments] ${prefix}=ETE_
126 ${random}= Generate Random String 15 [LOWER][NUMBERS]
127 ${policyname}= Catenate ${prefix}${random}
128 [Return] ${policyname}
131 [Documentation] Create Opertional Policy
132 ${randompolicyname} = Create Policy Name
133 ${policyname1}= Catenate com.${randompolicyname}
134 ${OPS_POLICY_NAME}= Catenate ${policyname1}
135 ${dict}= Create Dictionary policy_name=${OPS_POLICY_NAME}
136 Templating.Create Environment cl ${GLOBAL_TEMPLATE_FOLDER}
137 ${output}= Templating.Apply Template cl ${CREATE_OPS_TEMPLATE} ${dict}
138 ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE} ${output}
140 Should Be Equal As Strings ${put_resp.status_code} 200
143 [Documentation] Push Ops Policy
144 [Arguments] ${policyname} ${policytype}
145 ${dict}= Create Dictionary policy_name=${policyname} policy_type=${policytype}
146 Templating.Create Environment cl ${GLOBAL_TEMPLATE_FOLDER}
147 ${output}= Templating.Apply Template cl ${PUSH_POLICY_TEMPLATE} ${dict}
148 ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE_PUSH} ${output}
149 Should Be Equal As Strings ${put_resp.status_code} 200
152 [Documentation] Push Config Policy
153 [Arguments] ${policyname} ${policytype}
154 ${dict}= Create Dictionary policy_name=${policyname} policy_type=${policytype}
155 Templating.Create Environment cl ${GLOBAL_TEMPLATE_FOLDER}
156 ${output}= Templating.Apply Template cl ${PUSH_POLICY_TEMPLATE} ${dict}
157 ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE_PUSH} ${output}
158 Should Be Equal As Strings ${put_resp.status_code} 200
162 [Documentation] Delete Config Policy
163 [Arguments] ${policy_name}
164 ${policyname3}= Catenate com.Config_BRMS_Param_${policyname}.1.xml
165 ${dict}= Create Dictionary policy_name=${policyname3}
166 Templating.Create Environment cl ${GLOBAL_TEMPLATE_FOLDER}
167 ${output}= Templating.Apply Template cl ${DEL_POLICY_TEMPLATE} ${dict}
168 ${put_resp} = Run Policy Delete Request ${RESOURCE_PATH_CREATE_DELETE} ${output}
169 Should Be Equal As Strings ${put_resp.status_code} 200
172 [Documentation] Delete Ops Policy
173 [Arguments] ${policy_name}
174 ${policyname3}= Catenate com.Config_MS_com.vFirewall.1.xml
175 ${dict}= Create Dictionary policy_name=${policyname3}
176 Templating.Create Environment cl ${GLOBAL_TEMPLATE_FOLDER}
177 ${output}= Templating.Apply Template cl ${DEL_POLICY_TEMPLATE} ${dict}
178 ${put_resp} = Run Policy Delete Request ${RESOURCE_PATH_CREATE_DELETE} ${output}
179 Should Be Equal As Strings ${put_resp.status_code} 200
181 Orchestrate VNF vFW closedloop
182 [Documentation] VNF Orchestration for vFW
183 Log VNF Orchestration flow TEST NAME=${TEST NAME}
184 ${tenant_id} ${tenant_name}= Setup Orchestrate VNF ${GLOBAL_AAI_CLOUD_OWNER} SharedNode OwnerType v1 CloudZone
185 ${uuid}= Generate UUID4
186 ${vf_module_name_list} ${generic_vnfs} ${server_id} ${service_instance_id} ${catalog_resource_ids} ${catalog_service_id} ${uris_to_delete}= Orchestrate VNF ETE_CLP_${uuid} vFWCL vFWCL ${tenant_id} ${tenant_name}
187 ${customer_name}= Catenate ETE_CLP_${uuid}
188 [Return] ${vf_module_name_list} ${generic_vnfs} ${server_id} ${service_instance_id} ${customer_name} ${uris_to_delete}
190 Orchestrate VNF vDNS closedloop
191 [Documentation] VNF Orchestration for vLB
192 Log VNF Orchestration flow TEST NAME=${TEST NAME}
193 ${tenant_id} ${tenant_name}= Setup Orchestrate VNF ${GLOBAL_AAI_CLOUD_OWNER} SharedNode OwnerType v1 CloudZone
194 ${uuid}= Generate UUID4
195 ${vf_module_name_list} ${generic_vnfs} ${server_id} ${service_instance_id} ${catalog_resource_ids} ${catalog_service_id} ${uris_to_delete}= Orchestrate VNF ETE_CLP_${uuid} vLB vLB ${tenant_id} ${tenant_name}
196 ${customer_name}= Catenate ETE_CLP_${uuid}
197 [Return] ${vf_module_name_list} ${generic_vnfs} ${server_id} ${service_instance_id} ${customer_name} ${uris_to_delete}
200 [Documentation] Test Control Loop for High Traffic
201 [Arguments] ${pkg_host}
202 Enable Streams V2 ${pkg_host} 10
203 Log Set number of streams to 10
204 :FOR ${i} IN RANGE 12
206 \ ${resp}= Get List Of Enabled Streams V2 ${pkg_host}
207 \ ${stream_count}= Set Variable ${resp['stream-count']['streams']['active-streams']}
208 \ Log Number of streams: ${stream_count}
209 \ Exit For Loop If '${stream_count}'=='5'
210 Should Be Equal As Integers ${stream_count} 5
213 [Documentation] Test Control Loop for Low Traffic
214 [Arguments] ${pkg_host}
215 Enable Streams V2 ${pkg_host} 1
216 Log Set number of streams to 1
217 :FOR ${i} IN RANGE 12
219 \ ${resp}= Get List Of Enabled Streams V2 ${pkg_host}
220 \ ${stream_count}= Set Variable ${resp['stream-count']['streams']['active-streams']}
221 \ Log Number of streams: ${stream_count}
222 \ Exit For Loop If '${stream_count}'=='5'
223 Should Be Equal As Integers ${stream_count} 5
226 [Documentation] Set flows to Medium to turn off control loop
227 [Arguments] ${pkg_host}
228 Enable Streams V2 ${pkg_host} 5