cleaning up cds to try and make it work somewhat
[testsuite.git] / robot / resources / test_templates / closedloop_test_template.robot
index e5a5ca9..3619f4c 100644 (file)
@@ -1,23 +1,23 @@
 *** 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
+Library    Process
+Library    ONAPLibrary.Templating    WITH NAME    Templating
+Library    ONAPLibrary.Utilities
 
 *** 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
+${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}    policy/closedloop_configpolicy.jinja
+${CREATE_OPS_TEMPLATE}    policy/closedloop_opspolicy.jinja
+${PUSH_POLICY_TEMPLATE}   policy/closedloop_pushpolicy.jinja
+${DEL_POLICY_TEMPLATE}   policy/closedloop_deletepolicy.jinja
+${GECONFIG_VFW_TEMPLATE}    policy/closedloop_getconfigpolicy.jinja
 
 # 'Normal' number of pg streams that will be set when policy is triggered
 ${VFWPOLICYRATE}    5
@@ -27,7 +27,6 @@ ${VLBPOLICYRATE}    20
 
 ${CONFIG_POLICY_NAME}    vFirewall
 ${CONFIG_POLICY_TYPE}    Unknown
-${OPS_POLICY_NAME}
 ${OPS_POLICY_TYPE}    BRMS_PARAM
 
 # VFW low threshold
@@ -45,28 +44,21 @@ ${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}
-
+    ${stackname}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${customer_name}    ${uris_to_delete}=   Orchestrate VNF vFW closedloop
+    Policy Check FirewallCL Stack    ${stackname}    ${VFWPOLICYRATE}
+    Delete VNF    ${None}     ${server_id}    ${customer_name}    ${service_instance_id}    ${stackname}    ${uris_to_delete}
 
 VDNS Policy
     Initialize VDNS Policy
-    ${stackname}=   Orchestrate VNF vDNS closedloop
+    ${stackname}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${customer_name}    ${uris_to_delete}=   Orchestrate VNF vDNS closedloop
     ${dnsscaling}=   Policy Check vLB Stack    ${stackname}    ${VLBPOLICYRATE}
-    Set Test Variable   ${DNSSCALINGSTACK}   ${dnsscaling}
+    Delete VNF    ${None}     ${server_id}    ${customer_name}    ${service_instance_id}    ${stackname}    ${uris_to_delete}
 
 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
@@ -76,64 +68,58 @@ 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}
+    Templating.Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
+    ${output}=   Templating.Apply Template    cl    ${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"]}
+    Should Be Equal As Strings          ${get_resp.status_code}  200
+    ${config}=    Catenate    ${get_resp.json()[0]["config"]}
+    ${thresholds}=    Get Variable Value      ${config["content"]["tca_policy"]["metricsPerEventName"][0]["thresholds"]}
 
     # 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}
+    Should Be Equal    ${thresholds[0]["severity"]}    ${Expected_Severity_1}
+    Should Be Equal As Integers   ${thresholds[0]["thresholdValue"]}    ${Expected_Threshold_1}
+    Should Be Equal   ${thresholds[0]["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}
+    Should Be Equal    ${thresholds[1]["severity"]}    ${Expected_Severity_2}
+    Should Be Equal As Integers   ${thresholds[1]["thresholdValue"]}    ${Expected_Threshold_2}
+    Should Be Equal   ${thresholds[1]["direction"]}    ${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}
+    Templating.Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
+    ${output}=   Templating.Apply Template    cl    ${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"]}
+    Should Be Equal As Strings  ${get_resp.status_code}  200
+    ${config}=    Catenate    ${get_resp.json()[0]["config"]}
+    ${thresholds}=    Get Variable Value      ${config["content"]["tca_policy"]["metricsPerEventName"][0]["thresholds"]}
 
     # 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}
+    Should Be Equal    ${thresholds[0]["severity"]}    ${Expected_Severity_2}
+    Should Be Equal As Integers   ${thresholds[0]["thresholdValue"]}    ${Expected_Threshold_1}
+    Should Be Equal   ${thresholds[0]["direction"]}    ${Expected_Direction_3}
 
 Teardown Closed Loop
     [Documentation]   Tear down a closed loop test case
+    [Arguments]    ${customer_name}    ${catalog_service_id}    ${catalog_resource_ids}
     Terminate All Processes
-    Teardown VNF
+    Teardown VNF    ${customer_name}    ${catalog_service_id}    ${catalog_resource_ids}
     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}
+    ${CONFIG_POLICY_NAME}=    Catenate    ${policyname1}
     ${configpolicy}=    Create Dictionary    policy_name=${CONFIG_POLICY_NAME}
-    ${output} =     Fill JSON Template File     ${CREATE_CONFIG_TEMPLATE}    ${configpolicy}
+    Templating.Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
+    ${output}=   Templating.Apply Template    cl    ${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
+Create Policy Name
      [Documentation]    Generate Policy Name
      [Arguments]    ${prefix}=ETE_
      ${random}=    Generate Random String    15    [LOWER][NUMBERS]
@@ -144,10 +130,9 @@ 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}
+       ${dict}=     Create Dictionary    policy_name=${policyname1}
+    Templating.Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
+    ${output}=   Templating.Apply Template    cl    ${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
@@ -156,7 +141,8 @@ 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}
+    Templating.Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
+    ${output}=   Templating.Apply Template    cl    ${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
 
@@ -164,7 +150,8 @@ 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}
+    Templating.Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
+    ${output}=   Templating.Apply Template    cl    ${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
 
@@ -174,7 +161,8 @@ 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}
+    Templating.Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
+    ${output}=   Templating.Apply Template    cl    ${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
 
@@ -183,20 +171,56 @@ 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}
+    Templating.Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
+    ${output}=   Templating.Apply Template    cl    ${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}
+       ${tenant_id}    ${tenant_name}=    Setup Orchestrate VNF    ${GLOBAL_AAI_CLOUD_OWNER}    SharedNode    OwnerType    v1    CloudZone
+    ${uuid}=    Generate UUID4
+       ${vf_module_name_list}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${catalog_resource_ids}   ${catalog_service_id}    ${uris_to_delete}=  Orchestrate VNF   ETE_CLP_${uuid}    vFWCL      vFWCL   ${tenant_id}    ${tenant_name}
+       ${customer_name}=    Catenate    ETE_CLP_${uuid}
+       [Return]  ${vf_module_name_list}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${customer_name}    ${uris_to_delete}
 
- Orchestrate VNF vDNS closedloop
+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}
+       ${tenant_id}    ${tenant_name}=    Setup Orchestrate VNF    ${GLOBAL_AAI_CLOUD_OWNER}   SharedNode    OwnerType    v1    CloudZone
+    ${uuid}=    Generate UUID4
+       ${vf_module_name_list}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${catalog_resource_ids}   ${catalog_service_id}    ${uris_to_delete}=  Orchestrate VNF   ETE_CLP_${uuid}    vLB      vLB   ${tenant_id}    ${tenant_name}
+       ${customer_name}=    Catenate    ETE_CLP_${uuid}
+       [Return]  ${vf_module_name_list}   ${generic_vnfs}    ${server_id}    ${service_instance_id}    ${customer_name}    ${uris_to_delete}
+
+VFWCL High Test
+       [Documentation]    Test Control Loop for High Traffic
+        [Arguments]    ${pkg_host}
+       Enable Streams V2    ${pkg_host}   10
+        Log   Set number of streams to 10
+       :FOR    ${i}    IN RANGE    12
+       \   Sleep  15s
+       \   ${resp}=   Get List Of Enabled Streams V2   ${pkg_host}
+        \   ${stream_count}=   Set Variable   ${resp['stream-count']['streams']['active-streams']}
+        \   Log   Number of streams: ${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 V2     ${pkg_host}   1
+        Log   Set number of streams to 1
+       :FOR    ${i}    IN RANGE    12
+       \   Sleep  15s
+       \   ${resp}=   Get List Of Enabled Streams V2   ${pkg_host}
+        \   ${stream_count}=   Set Variable   ${resp['stream-count']['streams']['active-streams']}
+        \   Log   Number of streams: ${stream_count}
+        \   Exit For Loop If   '${stream_count}'=='5'
+        Should Be Equal As Integers  ${stream_count}   5
+
+VFWCL Set To Medium
+       [Documentation]    Set flows to Medium to turn off control loop
+        [Arguments]    ${pkg_host}
+       Enable Streams V2    ${pkg_host}   5