2 Documentation Policy Closed Loop Test cases
4 Resource ../policy_interface.robot
5 Resource ../stack_validation/policy_check_vfw.robot
6 Resource ../stack_validation/packet_generator_interface.robot
7 Resource vnf_orchestration_test_template.robot
11 Library ONAPLibrary.Templating
14 ${RESOURCE_PATH_CREATE} /pdp/createPolicy
15 ${RESOURCE_PATH_CREATE_PUSH} /pdp/pushPolicy
16 ${RESOURCE_PATH_CREATE_DELETE} /pdp/deletePolicy
17 ${RESOURCE_PATH_GET_CONFIG} /pdp/getConfig
18 ${CREATE_CONFIG_TEMPLATE} policy/closedloop_configpolicy.jinja
19 ${CREATE_OPS_TEMPLATE} policy/closedloop_opspolicy.jinja
20 ${PUSH_POLICY_TEMPLATE} policy/closedloop_pushpolicy.jinja
21 ${DEL_POLICY_TEMPLATE} policy/closedloop_deletepolicy.jinja
22 ${GECONFIG_VFW_TEMPLATE} policy/closedloop_getconfigpolicy.jinja
24 # 'Normal' number of pg streams that will be set when policy is triggered
27 # Max nslookup requests per second before triggering event.
30 ${CONFIG_POLICY_NAME} vFirewall
31 ${CONFIG_POLICY_TYPE} Unknown
33 ${OPS_POLICY_TYPE} BRMS_PARAM
36 ${Expected_Severity_1} MAJOR
37 ${Expected_Threshold_1} 300
38 ${Expected_Direction_1} LESS_OR_EQUAL
41 ${Expected_Severity_2} CRITICAL
42 ${Expected_Threshold_2} 700
43 ${Expected_Direction_2} GREATER_OR_EQUAL
46 ${Expected_Severity_3} MAJOR
47 ${Expected_Threshold_3} 200
48 ${Expected_Direction_3} GREATER_OR_EQUAL
50 #********** Test Case Variables ************
55 Log Suite name ${SUITE NAME} ${TEST NAME} ${PREV TEST NAME}
57 ${stackname}= Orchestrate VNF vFW closedloop
58 Policy Check FirewallCL Stack ${stackname} ${VFWPOLICYRATE}
59 # there is none of this
60 Delete VNF ${None} ${None}
63 Initialize VDNS Policy
64 ${stackname}= Orchestrate VNF vDNS closedloop
65 ${dnsscaling}= Policy Check vLB Stack ${stackname} ${VLBPOLICYRATE}
66 Set Test Variable ${DNSSCALINGSTACK} ${dnsscaling}
67 # there is none of this
68 Delete VNF ${None} ${None}
71 # Create Config Policy
72 # Push Config Policy ${CONFIG_POLICY_NAME} ${CONFIG_POLICY_TYPE}
74 # Push Ops Policy ${OPS_POLICY_NAME} ${OPS_POLICY_TYPE}
75 Get Configs VFW Policy
77 Initialize VDNS Policy
78 Get Configs VDNS Policy
80 Get Configs VFW Policy
81 [Documentation] Get Config Policy for VFW
82 ${getconfigpolicy}= Catenate .*${CONFIG_POLICY_NAME}*
83 ${configpolicy_name}= Create Dictionary config_policy_name=${getconfigpolicy}
84 Create Environment cl ${GLOBAL_TEMPLATE_FOLDER}
85 ${output}= Apply Template cl ${GECONFIG_VFW_TEMPLATE} ${configpolicy_name}
86 ${get_resp} = Run Policy Get Configs Request ${RESOURCE_PATH_GET_CONFIG} ${output}
87 Should Be Equal As Strings ${get_resp.status_code} 200
88 ${config}= Catenate ${get_resp.json()[0]["config"]}
89 ${thresholds}= Get Variable Value ${config["content"]["tca_policy"]["metricsPerEventName"][0]["thresholds"]}
91 # Extract object1 from Array
92 Should Be Equal ${thresholds[0]["severity"]} ${Expected_Severity_1}
93 Should Be Equal As Integers ${thresholds[0]["thresholdValue"]} ${Expected_Threshold_1}
94 Should Be Equal ${thresholds[0]["direction"]} ${Expected_Direction_1}
96 # Extract object2 from Array
97 Should Be Equal ${thresholds[1]["severity"]} ${Expected_Severity_2}
98 Should Be Equal As Integers ${thresholds[1]["thresholdValue"]} ${Expected_Threshold_2}
99 Should Be Equal ${thresholds[1]["direction"]} ${Expected_Direction_2}
101 Get Configs VDNS Policy
102 [Documentation] Get Config Policy for VDNS
103 ${getconfigpolicy}= Catenate .*MicroServicevDNS*
104 ${configpolicy_name}= Create Dictionary config_policy_name=${getconfigpolicy}
105 Create Environment cl ${GLOBAL_TEMPLATE_FOLDER}
106 ${output}= Apply Template cl ${GECONFIG_VFW_TEMPLATE} ${configpolicy_name}
107 ${get_resp} = Run Policy Get Configs Request ${RESOURCE_PATH_GET_CONFIG} ${output}
108 Should Be Equal As Strings ${get_resp.status_code} 200
109 ${config}= Catenate ${get_resp.json()[0]["config"]}
110 ${thresholds}= Get Variable Value ${config["content"]["tca_policy"]["metricsPerEventName"][0]["thresholds"]}
112 # Extract object1 from Array
113 Should Be Equal ${thresholds[0]["severity"]} ${Expected_Severity_2}
114 Should Be Equal As Integers ${thresholds[0]["thresholdValue"]} ${Expected_Threshold_1}
115 Should Be Equal ${thresholds[0]["direction"]} ${Expected_Direction_3}
118 [Documentation] Tear down a closed loop test case
119 Terminate All Processes
121 Log Teardown complete
124 [Documentation] Create Config Policy
125 ${randompolicyname} = Create Policy Name
126 ${policyname1}= Catenate com.${randompolicyname}
127 ${CONFIG_POLICY_NAME}= Set Test Variable ${policyname1}
128 ${configpolicy}= Create Dictionary policy_name=${CONFIG_POLICY_NAME}
129 Create Environment cl ${GLOBAL_TEMPLATE_FOLDER}
130 ${output}= Apply Template cl ${CREATE_CONFIG_TEMPLATE} ${configpolicy}
131 ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE} ${output}
132 Should Be Equal As Strings ${put_resp.status_code} 200
135 [Documentation] Generate Policy Name
136 [Arguments] ${prefix}=ETE_
137 ${random}= Generate Random String 15 [LOWER][NUMBERS]
138 ${policyname}= Catenate ${prefix}${random}
139 [Return] ${policyname}
142 [Documentation] Create Opertional Policy
143 ${randompolicyname} = Create Policy Name
144 ${policyname1}= Catenate com.${randompolicyname}
145 ${OPS_POLICY_NAME}= Set Test Variable ${policyname1}
146 ${dict}= Create Dictionary policy_name=${OPS_POLICY_NAME}
147 Create Environment cl ${GLOBAL_TEMPLATE_FOLDER}
148 ${output}= Apply Template cl ${CREATE_OPS_TEMPLATE} ${dict}
149 ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE} ${output}
151 Should Be Equal As Strings ${put_resp.status_code} 200
154 [Documentation] Push Ops Policy
155 [Arguments] ${policyname} ${policytype}
156 ${dict}= Create Dictionary policy_name=${policyname} policy_type=${policytype}
157 Create Environment cl ${GLOBAL_TEMPLATE_FOLDER}
158 ${output}= Apply Template cl ${PUSH_POLICY_TEMPLATE} ${dict}
159 ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE_PUSH} ${output}
160 Should Be Equal As Strings ${put_resp.status_code} 200
163 [Documentation] Push Config Policy
164 [Arguments] ${policyname} ${policytype}
165 ${dict}= Create Dictionary policy_name=${policyname} policy_type=${policytype}
166 Create Environment cl ${GLOBAL_TEMPLATE_FOLDER}
167 ${output}= Apply Template cl ${PUSH_POLICY_TEMPLATE} ${dict}
168 ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE_PUSH} ${output}
169 Should Be Equal As Strings ${put_resp.status_code} 200
173 [Documentation] Delete Config Policy
174 [Arguments] ${policy_name}
175 ${policyname3}= Catenate com.Config_BRMS_Param_${policyname}.1.xml
176 ${dict}= Create Dictionary policy_name=${policyname3}
177 Create Environment cl ${GLOBAL_TEMPLATE_FOLDER}
178 ${output}= Apply Template cl ${DEL_POLICY_TEMPLATE} ${dict}
179 ${put_resp} = Run Policy Delete Request ${RESOURCE_PATH_CREATE_DELETE} ${output}
180 Should Be Equal As Strings ${put_resp.status_code} 200
183 [Documentation] Delete Ops Policy
184 [Arguments] ${policy_name}
185 ${policyname3}= Catenate com.Config_MS_com.vFirewall.1.xml
186 ${dict}= Create Dictionary policy_name=${policyname3}
187 Create Environment cl ${GLOBAL_TEMPLATE_FOLDER}
188 ${output}= Apply Template cl ${DEL_POLICY_TEMPLATE} ${dict}
189 ${put_resp} = Run Policy Delete Request ${RESOURCE_PATH_CREATE_DELETE} ${output}
190 Should Be Equal As Strings ${put_resp.status_code} 200
192 Orchestrate VNF vFW closedloop
193 [Documentation] VNF Orchestration for vFW
194 Log VNF Orchestration flow TEST NAME=${TEST NAME}
195 ${tenant_id} ${tenant_name}= Setup Orchestrate VNF ${GLOBAL_AAI_CLOUD_OWNER} SharedNode OwnerType v1 CloudZone
196 ${stack_name}= Orchestrate VNF ETE_CLP vFWCL vFWCL ${tenant_id} ${tenant_name}
197 [Return] ${stack_name}
199 Orchestrate VNF vDNS closedloop
200 [Documentation] VNF Orchestration for vLB
201 Log VNF Orchestration flow TEST NAME=${TEST NAME}
202 ${tenant_id} ${tenant_name}= Setup Orchestrate VNF ${GLOBAL_AAI_CLOUD_OWNER} SharedNode OwnerType v1 CloudZone
203 ${stack_name}= Orchestrate VNF ETE_CLP vLB vLB ${tenant_id} ${tenant_name}
204 [Return] ${stack_name}
207 [Documentation] Test Control Loop for High Traffic
208 [Arguments] ${pkg_host}
209 Enable Streams V2 ${pkg_host} 10
210 Log Set number of streams to 10
211 :FOR ${i} IN RANGE 12
213 \ ${resp}= Get List Of Enabled Streams V2 ${pkg_host}
214 \ ${stream_count}= Set Variable ${resp['stream-count']['streams']['active-streams']}
215 \ Log Number of streams: ${stream_count}
216 \ Exit For Loop If '${stream_count}'=='5'
217 Should Be Equal As Integers ${stream_count} 5
220 [Documentation] Test Control Loop for Low Traffic
221 [Arguments] ${pkg_host}
222 Enable Streams V2 ${pkg_host} 1
223 Log Set number of streams to 1
224 :FOR ${i} IN RANGE 12
226 \ ${resp}= Get List Of Enabled Streams V2 ${pkg_host}
227 \ ${stream_count}= Set Variable ${resp['stream-count']['streams']['active-streams']}
228 \ Log Number of streams: ${stream_count}
229 \ Exit For Loop If '${stream_count}'=='5'
230 Should Be Equal As Integers ${stream_count} 5
233 [Documentation] Set flows to Medium to turn off control loop
234 [Arguments] ${pkg_host}
235 Enable Streams V2 ${pkg_host} 5