X-Git-Url: https://gerrit.onap.org/r/gitweb?p=oom.git;a=blobdiff_plain;f=kubernetes%2Fconfig%2Fdocker%2Finit%2Fsrc%2Fconfig%2Frobot%2Frobot%2Fresources%2Ftest_templates%2Fclosedloop_test_template.robot;fp=kubernetes%2Fconfig%2Fdocker%2Finit%2Fsrc%2Fconfig%2Frobot%2Frobot%2Fresources%2Ftest_templates%2Fclosedloop_test_template.robot;h=e5a5ca92f67aaeff6f53c1f5442b0703b488edbf;hp=0000000000000000000000000000000000000000;hb=d6ea987caed84a9f36030a5a1516df7c6186362d;hpb=43d96ac929c93d0aa2a55d860e0425a39118f7b4 diff --git a/kubernetes/config/docker/init/src/config/robot/robot/resources/test_templates/closedloop_test_template.robot b/kubernetes/config/docker/init/src/config/robot/robot/resources/test_templates/closedloop_test_template.robot new file mode 100644 index 0000000000..e5a5ca92f6 --- /dev/null +++ b/kubernetes/config/docker/init/src/config/robot/robot/resources/test_templates/closedloop_test_template.robot @@ -0,0 +1,202 @@ +*** Settings *** +Documentation Policy Closed Loop Test cases + +Resource ../policy_interface.robot +Resource ../stack_validation/policy_check_vfw.robot +Resource vnf_orchestration_test_template.robot +Library String +Library HttpLibrary.HTTP +LIbrary Process + +*** Variables *** +${RESOURCE_PATH_CREATE} /PyPDPServer/createPolicy +${RESOURCE_PATH_CREATE_PUSH} /PyPDPServer/pushPolicy +${RESOURCE_PATH_CREATE_DELETE} /PyPDPServer/deletePolicy +${RESOURCE_PATH_GET_CONFIG} /PyPDPServer/getConfig +${CREATE_CONFIG_TEMPLATE} robot/assets/templates/policy/closedloop_configpolicy.template +${CREATE_OPS_TEMPLATE} robot/assets/templates/policy/closedloop_opspolicy.template +${PUSH_POLICY_TEMPLATE} robot/assets/templates/policy/closedloop_pushpolicy.template +${DEL_POLICY_TEMPLATE} robot/assets/templates/policy/closedloop_deletepolicy.template +${GECONFIG_VFW_TEMPLATE} robot/assets/templates/policy/closedloop_getconfigpolicy.template + +# 'Normal' number of pg streams that will be set when policy is triggered +${VFWPOLICYRATE} 5 + +# Max nslookup requests per second before triggering event. +${VLBPOLICYRATE} 20 + +${CONFIG_POLICY_NAME} vFirewall +${CONFIG_POLICY_TYPE} Unknown +${OPS_POLICY_NAME} +${OPS_POLICY_TYPE} BRMS_PARAM + +# VFW low threshold +${Expected_Severity_1} MAJOR +${Expected_Threshold_1} 300 +${Expected_Direction_1} LESS_OR_EQUAL + +# VFW high threshold +${Expected_Severity_2} CRITICAL +${Expected_Threshold_2} 700 +${Expected_Direction_2} GREATER_OR_EQUAL + +# VDNS High threshold +${Expected_Severity_3} MAJOR +${Expected_Threshold_3} 200 +${Expected_Direction_3} GREATER_OR_EQUAL + +#********** Test Case Variables ************ +${DNSSCALINGSTACK} + +*** Keywords *** +VFW Policy + Log Suite name ${SUITE NAME} ${TEST NAME} ${PREV TEST NAME} + Initialize VFW Policy + ${stackname}= Orchestrate VNF vFW closedloop + Policy Check Firewall Stack ${stackname} ${VFWPOLICYRATE} + + +VDNS Policy + Initialize VDNS Policy + ${stackname}= Orchestrate VNF vDNS closedloop + ${dnsscaling}= Policy Check vLB Stack ${stackname} ${VLBPOLICYRATE} + Set Test Variable ${DNSSCALINGSTACK} ${dnsscaling} + +Initialize VFW Policy +# Create Config Policy +# Push Config Policy ${CONFIG_POLICY_NAME} ${CONFIG_POLICY_TYPE} +# Create Ops Policy +# Push Ops Policy ${OPS_POLICY_NAME} ${OPS_POLICY_TYPE} + Get Configs VFW Policy + +Initialize VDNS Policy + Get Configs VDNS Policy + +Get Configs VFW Policy + [Documentation] Get Config Policy for VFW + ${getconfigpolicy}= Catenate .*${CONFIG_POLICY_NAME}* + ${configpolicy_name}= Create Dictionary config_policy_name=${getconfigpolicy} + ${output} = Fill JSON Template File ${GECONFIG_VFW_TEMPLATE} ${configpolicy_name} + ${get_resp} = Run Policy Get Configs Request ${RESOURCE_PATH_GET_CONFIG} ${output} + Should Be Equal As Strings ${get_resp.status_code} 200 + + ${json}= Parse Json ${get_resp.content} + ${config}= Parse Json ${json[0]["config"]} + + # Extract object1 from Array + ${severity}= Get Variable Value ${config["content"]["thresholds"][0]["severity"]} + Should Be Equal ${severity} ${Expected_Severity_1} + ${Thresold_Value}= Get Variable Value ${config["content"]["thresholds"][0]["thresholdValue"]} + Should Be Equal ${Thresold_Value} ${Expected_Threshold_1} + ${direction}= Get Variable Value ${config["content"]["thresholds"][0]["direction"]} + Should Be Equal ${direction} ${Expected_Direction_1} + + # Extract object2 from Array + ${severity_1}= Get Variable Value ${config["content"]["thresholds"][1]["severity"]} + Should Be Equal ${severity_1} ${Expected_Severity_2} + ${Thresold_Value_1}= Get Variable Value ${config["content"]["thresholds"][1]["thresholdValue"]} + Should Be Equal ${Thresold_Value_1} ${Expected_Threshold_2} + ${direction_1}= Get Variable Value ${config["content"]["thresholds"][1]["direction"]} + Should Be Equal ${direction_1} ${Expected_Direction_2} + +Get Configs VDNS Policy + [Documentation] Get Config Policy for VDNS + ${getconfigpolicy}= Catenate .*vLoadBalancer* + ${configpolicy_name}= Create Dictionary config_policy_name=${getconfigpolicy} + ${output} = Fill JSON Template File ${GECONFIG_VFW_TEMPLATE} ${configpolicy_name} + ${get_resp} = Run Policy Get Configs Request ${RESOURCE_PATH_GET_CONFIG} ${output} + Should Be Equal As Strings ${get_resp.status_code} 200 + ${json}= Parse Json ${get_resp.content} + ${config}= Parse Json ${json[0]["config"]} + + # Extract object1 from Array + ${severity}= Get Variable Value ${config["content"]["thresholds"][0]["severity"]} + Should Be Equal ${severity} ${Expected_Severity_3} + ${Thresold_Value}= Get Variable Value ${config["content"]["thresholds"][0]["thresholdValue"]} + Should Be Equal ${Thresold_Value} ${Expected_Threshold_3} + ${direction}= Get Variable Value ${config["content"]["thresholds"][0]["direction"]} + Should Be Equal ${direction} ${Expected_Direction_3} + +Teardown Closed Loop + [Documentation] Tear down a closed loop test case + Terminate All Processes + Teardown VNF + Log Teardown complete + +Create Config Policy + [Documentation] Create Config Policy + ${randompolicyname} = Create Policy Name + ${policyname1}= Catenate com.${randompolicyname} + ${CONFIG_POLICY_NAME}= Set Test Variable ${policyname1} + ${configpolicy}= Create Dictionary policy_name=${CONFIG_POLICY_NAME} + ${output} = Fill JSON Template File ${CREATE_CONFIG_TEMPLATE} ${configpolicy} + ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE} ${output} + Should Be Equal As Strings ${put_resp.status_code} 200 + + Create Policy Name + [Documentation] Generate Policy Name + [Arguments] ${prefix}=ETE_ + ${random}= Generate Random String 15 [LOWER][NUMBERS] + ${policyname}= Catenate ${prefix}${random} + [Return] ${policyname} + +Create Ops Policy + [Documentation] Create Opertional Policy + ${randompolicyname} = Create Policy Name + ${policyname1}= Catenate com.${randompolicyname} + ${OPS_POLICY_NAME}= Set Test Variable ${policyname1} + ${dict}= Create Dictionary policy_name=${OPS_POLICY_NAME} + #${NEWPOLICY1}= Create Dictionary policy_name=com.${OPS_POLICY_NAME} + ${output} = Fill JSON Template File ${CREATE_OPS_TEMPLATE} ${dict} + ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE} ${output} + Log ${put_resp} + Should Be Equal As Strings ${put_resp.status_code} 200 + +Push Ops Policy + [Documentation] Push Ops Policy + [Arguments] ${policyname} ${policytype} + ${dict}= Create Dictionary policy_name=${policyname} policy_type=${policytype} + ${output} = Fill JSON Template ${PUSH_POLICY_TEMPLATE} ${dict} + ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE_PUSH} ${output} + Should Be Equal As Strings ${put_resp.status_code} 200 + +Push Config Policy + [Documentation] Push Config Policy + [Arguments] ${policyname} ${policytype} + ${dict}= Create Dictionary policy_name=${policyname} policy_type=${policytype} + ${output} = Fill JSON Template ${PUSH_POLICY_TEMPLATE} ${dict} + ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE_PUSH} ${output} + Should Be Equal As Strings ${put_resp.status_code} 200 + + +Delete Config Policy + [Documentation] Delete Config Policy + [Arguments] ${policy_name} + ${policyname3}= Catenate com.Config_BRMS_Param_${policyname}.1.xml + ${dict}= Create Dictionary policy_name=${policyname3} + ${output} = Fill JSON Template ${DEL_POLICY_TEMPLATE} ${dict} + ${put_resp} = Run Policy Delete Request ${RESOURCE_PATH_CREATE_DELETE} ${output} + Should Be Equal As Strings ${put_resp.status_code} 200 + +Delete Ops Policy + [Documentation] Delete Ops Policy + [Arguments] ${policy_name} + ${policyname3}= Catenate com.Config_MS_com.vFirewall.1.xml + ${dict}= Create Dictionary policy_name=${policyname3} + ${output} = Fill JSON Template ${DEL_POLICY_TEMPLATE} ${dict} + ${put_resp} = Run Policy Delete Request ${RESOURCE_PATH_CREATE_DELETE} ${output} + Should Be Equal As Strings ${put_resp.status_code} 200 + +Orchestrate VNF vFW closedloop + [Documentation] VNF Orchestration for vFW + Log VNF Orchestration flow TEST NAME=${TEST NAME} + Setup Orchestrate VNF ${GLOBAL_AAI_CLOUD_OWNER} SharedNode OwnerType v1 CloudZone + ${stack_name} ${service}= Orchestrate VNF ETE_CLP vFW vFW ${TENANT_NAME} + [Return] ${stack_name} + + Orchestrate VNF vDNS closedloop + [Documentation] VNF Orchestration for vLB + Log VNF Orchestration flow TEST NAME=${TEST NAME} + Setup Orchestrate VNF ${GLOBAL_AAI_CLOUD_OWNER} SharedNode OwnerType v1 CloudZone + ${stack_name} ${service}= Orchestrate VNF ETE_CLP vLB vLB ${TENANT_NAME} + [Return] ${stack_name}