Merge "Fix robot preload VNF issue"
[testsuite.git] / robot / resources / test_templates / closedloop_test_template.robot
index e3f7327..f83ce5b 100644 (file)
@@ -1,18 +1,20 @@
 *** 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
@@ -25,9 +27,9 @@ ${VFWPOLICYRATE}    5
 # 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
@@ -45,32 +47,34 @@ ${Expected_Severity_3}    MAJOR
 ${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}*
@@ -78,55 +82,55 @@ Get Configs VFW Policy
     ${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}
@@ -134,27 +138,27 @@ Create Config Policy
 
  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
@@ -162,40 +166,67 @@ Push Ops Policy
 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
+
+