*** Settings ***
Documentation Policy Closed Loop Test cases
-Resource ../policy_interface.robot
+Resource ../policy_interface.robot
Resource ../stack_validation/policy_check_vfw.robot
+Resource ../stack_validation/packet_generator_interface.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
+${RESOURCE_PATH_CREATE} /pdp/createPolicy
+${RESOURCE_PATH_CREATE_PUSH} /pdp/pushPolicy
+${RESOURCE_PATH_CREATE_DELETE} /pdp/deletePolicy
+${RESOURCE_PATH_GET_CONFIG} /pdp/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
# Max nslookup requests per second before triggering event.
${VLBPOLICYRATE} 20
-${CONFIG_POLICY_NAME} vFirewall
-${CONFIG_POLICY_TYPE} Unknown
-${OPS_POLICY_NAME}
+${CONFIG_POLICY_NAME} vFirewall
+${CONFIG_POLICY_TYPE} Unknown
+${OPS_POLICY_NAME}
${OPS_POLICY_TYPE} BRMS_PARAM
# VFW low threshold
${Expected_Threshold_3} 200
${Expected_Direction_3} GREATER_OR_EQUAL
-${DNSSCALINGSTACK}
+#********** 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
+ ${stackname}= Orchestrate VNF vFW closedloop
Policy Check Firewall Stack ${stackname} ${VFWPOLICYRATE}
-
+ Delete VNF
VDNS Policy
Initialize VDNS Policy
${stackname}= Orchestrate VNF vDNS closedloop
${dnsscaling}= Policy Check vLB Stack ${stackname} ${VLBPOLICYRATE}
Set Test Variable ${DNSSCALINGSTACK} ${dnsscaling}
-
+ Delete VNF
+
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}
+# 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}*
${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
+
+ # Extract object1 from Array
${severity}= Get Variable Value ${config["content"]["thresholds"][0]["severity"]}
- Should Be Equal ${severity} ${Expected_Severity_1}
+ 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}
+ Should Be Equal As Integers ${Thresold_Value} ${Expected_Threshold_1}
${direction}= Get Variable Value ${config["content"]["thresholds"][0]["direction"]}
- Should Be Equal ${direction} ${Expected_Direction_1}
-
+ 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}
+ 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}
+ Should Be Equal As Integers ${Thresold_Value_1} ${Expected_Threshold_2}
${direction_1}= Get Variable Value ${config["content"]["thresholds"][1]["direction"]}
- Should Be Equal ${direction_1} ${Expected_Direction_2}
-
+ Should Be Equal ${direction_1} ${Expected_Direction_2}
+
Get Configs VDNS Policy
[Documentation] Get Config Policy for VDNS
- ${getconfigpolicy}= Catenate .*vLoadBalancer*
+ ${getconfigpolicy}= Catenate .*MicroServicevDNS*
${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}
+
+ # Extract object1 from Array
+ ${severity}= Get Variable Value ${config["content"]["tca_policy"]["metricsPerEventName"][0]["thresholds"][0]["severity"]}
+ Should Be Equal ${severity} ${Expected_Severity_2}
+ ${Thresold_Value}= Get Variable Value ${config["content"]["tca_policy"]["metricsPerEventName"][0]["thresholds"][0]["thresholdValue"]}
+ Should Be Equal As Integers ${Thresold_Value} ${Expected_Threshold_1}
+ ${direction}= Get Variable Value ${config["content"]["tca_policy"]["metricsPerEventName"][0]["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
+ Terminate All Processes
+ Teardown VNF
+ Log Teardown complete
Create Config Policy
- [Documentation] Create Config Policy
- ${randompolicyname} = Create Policy Name
+ [Documentation] Create Config Policy
+ ${randompolicyname} = Create Policy Name
${policyname1}= Catenate com.${randompolicyname}
- ${CONFIG_POLICY_NAME}= Set Test Variable ${policyname1}
+ ${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}
Create Policy Name
[Documentation] Generate Policy Name
- [Arguments] ${prefix}=ETE_
+ [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
+ [Documentation] Create Opertional Policy
+ ${randompolicyname} = Create Policy Name
${policyname1}= Catenate com.${randompolicyname}
- ${OPS_POLICY_NAME}= Set Test Variable ${policyname1}
+ ${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}
+ ${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}
+ ${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}
+ ${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
-
+ 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}
+ ${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
-
+ 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} ${GLOBAL_OPENSTACK_SERVICE_REGION} SharedNode OwnerType v1 CloudZone
- ${stack_name} ${service}= Orchestrate VNF ETE_CLP vFW vFW ${GLOBAL_OPENSTACK_SERVICE_REGION} ${TENANT_NAME}
- [Return] ${stack_name}
-
+ 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 vFWCL vFWCL ${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} ${GLOBAL_OPENSTACK_SERVICE_REGION} SharedNode OwnerType v1 CloudZone
- ${stack_name} ${service}= Orchestrate VNF ETE_CLP vLB vLB ${GLOBAL_OPENSTACK_SERVICE_REGION} ${TENANT_NAME}
- [Return] ${stack_name}
+ 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}
+
+VFWCL High Test
+ [Documentation] Test Control Loop for High Traffic
+ [Arguments] ${pkg_host}
+ Enable Streams ${pkg_host} 10
+ :FOR ${i} IN RANGE 8
+ \ Sleep 15s
+ \ ${resp}= Get List Of Enabled Streams ${pkg_host}
+ \ ${stream_count}= Evaluate len(${resp['sample-plugin']['pg-streams']['pg-stream']})
+ \ Log To Console Number of steam: ${stream_count}
+ \ Exit For Loop If '${stream_count}'=='5'
+ Should Be Equal As Integers ${stream_count} 5
+
+VFWCL Low Test
+ [Documentation] Test Control Loop for Low Traffic
+ [Arguments] ${pkg_host}
+ Enable Streams ${pkg_host} 1
+ Get List Of Enabled Streams ${pkg_host}
+ :FOR ${i} IN RANGE 8
+ \ Sleep 15s
+ \ ${resp}= Get List Of Enabled Streams ${pkg_host}
+ \ ${stream_count}= Evaluate len(${resp['sample-plugin']['pg-streams']['pg-stream']})
+ \ Log To Console Number of steam: ${stream_count}
+ \ Exit For Loop If '${stream_count}'=='5'
+ Should Be Equal As Integers ${stream_count} 5
+
+