2 Documentation Policy Closed Loop Test cases
4 Resource ../policy_interface.robot
5 Resource ../stack_validation/policy_check_vfw.robot
6 Resource vnf_orchestration_test_template.robot
8 Library HttpLibrary.HTTP
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} robot/assets/templates/policy/closedloop_configpolicy.template
17 ${CREATE_OPS_TEMPLATE} robot/assets/templates/policy/closedloop_opspolicy.template
18 ${PUSH_POLICY_TEMPLATE} robot/assets/templates/policy/closedloop_pushpolicy.template
19 ${DEL_POLICY_TEMPLATE} robot/assets/templates/policy/closedloop_deletepolicy.template
20 ${GECONFIG_VFW_TEMPLATE} robot/assets/templates/policy/closedloop_getconfigpolicy.template
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
48 #********** Test Case Variables ************
53 Log Suite name ${SUITE NAME} ${TEST NAME} ${PREV TEST NAME}
55 ${stackname}= Orchestrate VNF vFW closedloop
56 Policy Check Firewall Stack ${stackname} ${VFWPOLICYRATE}
60 Initialize VDNS Policy
61 ${stackname}= Orchestrate VNF vDNS closedloop
62 ${dnsscaling}= Policy Check vLB Stack ${stackname} ${VLBPOLICYRATE}
63 Set Test Variable ${DNSSCALINGSTACK} ${dnsscaling}
67 # Create Config Policy
68 # Push Config Policy ${CONFIG_POLICY_NAME} ${CONFIG_POLICY_TYPE}
70 # Push Ops Policy ${OPS_POLICY_NAME} ${OPS_POLICY_TYPE}
71 Get Configs VFW Policy
73 Initialize VDNS Policy
74 Get Configs VDNS Policy
76 Get Configs VFW Policy
77 [Documentation] Get Config Policy for VFW
78 ${getconfigpolicy}= Catenate .*${CONFIG_POLICY_NAME}*
79 ${configpolicy_name}= Create Dictionary config_policy_name=${getconfigpolicy}
80 ${output} = Fill JSON Template File ${GECONFIG_VFW_TEMPLATE} ${configpolicy_name}
81 ${get_resp} = Run Policy Get Configs Request ${RESOURCE_PATH_GET_CONFIG} ${output}
82 Should Be Equal As Strings ${get_resp.status_code} 200
84 ${json}= Parse Json ${get_resp.content}
85 ${config}= Parse Json ${json[0]["config"]}
87 # Extract object1 from Array
88 ${severity}= Get Variable Value ${config["content"]["thresholds"][0]["severity"]}
89 Should Be Equal ${severity} ${Expected_Severity_1}
90 ${Thresold_Value}= Get Variable Value ${config["content"]["thresholds"][0]["thresholdValue"]}
91 Should Be Equal ${Thresold_Value} ${Expected_Threshold_1}
92 ${direction}= Get Variable Value ${config["content"]["thresholds"][0]["direction"]}
93 Should Be Equal ${direction} ${Expected_Direction_1}
95 # Extract object2 from Array
96 ${severity_1}= Get Variable Value ${config["content"]["thresholds"][1]["severity"]}
97 Should Be Equal ${severity_1} ${Expected_Severity_2}
98 ${Thresold_Value_1}= Get Variable Value ${config["content"]["thresholds"][1]["thresholdValue"]}
99 Should Be Equal ${Thresold_Value_1} ${Expected_Threshold_2}
100 ${direction_1}= Get Variable Value ${config["content"]["thresholds"][1]["direction"]}
101 Should Be Equal ${direction_1} ${Expected_Direction_2}
103 Get Configs VDNS Policy
104 [Documentation] Get Config Policy for VDNS
105 ${getconfigpolicy}= Catenate .*com.MicroServicevDNS*
106 ${configpolicy_name}= Create Dictionary config_policy_name=${getconfigpolicy}
107 ${output} = Fill JSON Template File ${GECONFIG_VFW_TEMPLATE} ${configpolicy_name}
108 ${get_resp} = Run Policy Get Configs Request ${RESOURCE_PATH_GET_CONFIG} ${output}
109 Should Be Equal As Strings ${get_resp.status_code} 200
110 ${json}= Parse Json ${get_resp.content}
111 ${config}= Parse Json ${json[0]["config"]}
113 # Extract object1 from Array
114 ${severity}= Get Variable Value ${config["content"]["tca_policy"]["metricsPerEventName"][0]["thresholds"][0]["severity"]}
115 Should Be Equal ${severity} ${Expected_Severity_2}
116 ${Thresold_Value}= Get Variable Value ${config["content"]["tca_policy"]["metricsPerEventName"][0]["thresholds"][0]["thresholdValue"]}
117 Should Be Equal ${Thresold_Value} ${Expected_Threshold_1}
118 ${direction}= Get Variable Value ${config["content"]["tca_policy"]["metricsPerEventName"][0]["thresholds"][0]["direction"]}
119 Should Be Equal ${direction} ${Expected_Direction_3}
122 [Documentation] Tear down a closed loop test case
123 Terminate All Processes
125 Log Teardown complete
128 [Documentation] Create Config Policy
129 ${randompolicyname} = Create Policy Name
130 ${policyname1}= Catenate com.${randompolicyname}
131 ${CONFIG_POLICY_NAME}= Set Test Variable ${policyname1}
132 ${configpolicy}= Create Dictionary policy_name=${CONFIG_POLICY_NAME}
133 ${output} = Fill JSON Template File ${CREATE_CONFIG_TEMPLATE} ${configpolicy}
134 ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE} ${output}
135 Should Be Equal As Strings ${put_resp.status_code} 200
138 [Documentation] Generate Policy Name
139 [Arguments] ${prefix}=ETE_
140 ${random}= Generate Random String 15 [LOWER][NUMBERS]
141 ${policyname}= Catenate ${prefix}${random}
142 [Return] ${policyname}
145 [Documentation] Create Opertional Policy
146 ${randompolicyname} = Create Policy Name
147 ${policyname1}= Catenate com.${randompolicyname}
148 ${OPS_POLICY_NAME}= Set Test Variable ${policyname1}
149 ${dict}= Create Dictionary policy_name=${OPS_POLICY_NAME}
150 #${NEWPOLICY1}= Create Dictionary policy_name=com.${OPS_POLICY_NAME}
151 ${output} = Fill JSON Template File ${CREATE_OPS_TEMPLATE} ${dict}
152 ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE} ${output}
154 Should Be Equal As Strings ${put_resp.status_code} 200
157 [Documentation] Push Ops Policy
158 [Arguments] ${policyname} ${policytype}
159 ${dict}= Create Dictionary policy_name=${policyname} policy_type=${policytype}
160 ${output} = Fill JSON Template ${PUSH_POLICY_TEMPLATE} ${dict}
161 ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE_PUSH} ${output}
162 Should Be Equal As Strings ${put_resp.status_code} 200
165 [Documentation] Push Config Policy
166 [Arguments] ${policyname} ${policytype}
167 ${dict}= Create Dictionary policy_name=${policyname} policy_type=${policytype}
168 ${output} = Fill JSON Template ${PUSH_POLICY_TEMPLATE} ${dict}
169 ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE_PUSH} ${output}
170 Should Be Equal As Strings ${put_resp.status_code} 200
174 [Documentation] Delete Config Policy
175 [Arguments] ${policy_name}
176 ${policyname3}= Catenate com.Config_BRMS_Param_${policyname}.1.xml
177 ${dict}= Create Dictionary policy_name=${policyname3}
178 ${output} = Fill JSON Template ${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 ${output} = Fill JSON Template ${DEL_POLICY_TEMPLATE} ${dict}
188 ${put_resp} = Run Policy Delete Request ${RESOURCE_PATH_CREATE_DELETE} ${output}
189 Should Be Equal As Strings ${put_resp.status_code} 200
191 Orchestrate VNF vFW closedloop
192 [Documentation] VNF Orchestration for vFW
193 Log VNF Orchestration flow TEST NAME=${TEST NAME}
194 Setup Orchestrate VNF ${GLOBAL_AAI_CLOUD_OWNER} SharedNode OwnerType v1 CloudZone
195 ${stack_name} ${service}= Orchestrate VNF ETE_CLP vFWCL vFWCL ${TENANT_NAME}
196 [Return] ${stack_name}
198 Orchestrate VNF vDNS closedloop
199 [Documentation] VNF Orchestration for vLB
200 Log VNF Orchestration flow TEST NAME=${TEST NAME}
201 Setup Orchestrate VNF ${GLOBAL_AAI_CLOUD_OWNER} SharedNode OwnerType v1 CloudZone
202 ${stack_name} ${service}= Orchestrate VNF ETE_CLP vLB vLB ${TENANT_NAME}
203 [Return] ${stack_name}