replace aai, closeloop, sdc with jinja
[testsuite.git] / robot / resources / test_templates / closedloop_test_template.robot
1 *** Settings ***
2 Documentation     Policy Closed Loop Test cases
3
4 Resource        ../policy_interface.robot
5 Resource        ../stack_validation/policy_check_vfw.robot
6 Resource        ../stack_validation/packet_generator_interface.robot
7 Resource        vnf_orchestration_test_template.robot
8
9 Library    String
10 Library    Process
11 Library    ONAPLibrary.Templating
12
13 *** Variables ***
14 ${RESOURCE_PATH_CREATE}        /pdp/createPolicy
15 ${RESOURCE_PATH_CREATE_PUSH}        /pdp/pushPolicy
16 ${RESOURCE_PATH_CREATE_DELETE}        /pdp/deletePolicy
17 ${RESOURCE_PATH_GET_CONFIG}    /pdp/getConfig
18 ${CREATE_CONFIG_TEMPLATE}    policy/closedloop_configpolicy.jinja
19 ${CREATE_OPS_TEMPLATE}    policy/closedloop_opspolicy.jinja
20 ${PUSH_POLICY_TEMPLATE}   policy/closedloop_pushpolicy.jinja
21 ${DEL_POLICY_TEMPLATE}   policy/closedloop_deletepolicy.jinja
22 ${GECONFIG_VFW_TEMPLATE}    policy/closedloop_getconfigpolicy.jinja
23
24 # 'Normal' number of pg streams that will be set when policy is triggered
25 ${VFWPOLICYRATE}    5
26
27 # Max nslookup requests per second before triggering event.
28 ${VLBPOLICYRATE}    20
29
30 ${CONFIG_POLICY_NAME}    vFirewall
31 ${CONFIG_POLICY_TYPE}    Unknown
32 ${OPS_POLICY_NAME}
33 ${OPS_POLICY_TYPE}    BRMS_PARAM
34
35 # VFW low threshold
36 ${Expected_Severity_1}    MAJOR
37 ${Expected_Threshold_1}    300
38 ${Expected_Direction_1}    LESS_OR_EQUAL
39
40 # VFW high threshold
41 ${Expected_Severity_2}    CRITICAL
42 ${Expected_Threshold_2}    700
43 ${Expected_Direction_2}    GREATER_OR_EQUAL
44
45 # VDNS High threshold
46 ${Expected_Severity_3}    MAJOR
47 ${Expected_Threshold_3}    200
48 ${Expected_Direction_3}    GREATER_OR_EQUAL
49
50 #********** Test Case Variables ************
51 ${DNSSCALINGSTACK}
52
53 *** Keywords ***
54 VFW Policy
55     Log    Suite name ${SUITE NAME} ${TEST NAME} ${PREV TEST NAME}
56     Initialize VFW Policy
57     ${stackname}=   Orchestrate VNF vFW closedloop
58     Policy Check FirewallCL Stack    ${stackname}    ${VFWPOLICYRATE}
59     Delete VNF
60
61 VDNS Policy
62     Initialize VDNS Policy
63     ${stackname}=   Orchestrate VNF vDNS closedloop
64     ${dnsscaling}=   Policy Check vLB Stack    ${stackname}    ${VLBPOLICYRATE}
65     Set Test Variable   ${DNSSCALINGSTACK}   ${dnsscaling}
66     Delete VNF
67
68 Initialize VFW Policy
69 #    Create Config Policy
70 #    Push Config Policy    ${CONFIG_POLICY_NAME}    ${CONFIG_POLICY_TYPE}
71 #    Create Ops Policy
72 #    Push Ops Policy    ${OPS_POLICY_NAME}    ${OPS_POLICY_TYPE}
73      Get Configs VFW Policy
74
75 Initialize VDNS Policy
76     Get Configs VDNS Policy
77
78 Get Configs VFW Policy
79     [Documentation]    Get Config Policy for VFW
80     ${getconfigpolicy}=    Catenate    .*${CONFIG_POLICY_NAME}*
81     ${configpolicy_name}=    Create Dictionary    config_policy_name=${getconfigpolicy}
82     Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
83     ${output}=   Apply Template    cl    ${GECONFIG_VFW_TEMPLATE}    ${configpolicy_name}
84     ${get_resp} =    Run Policy Get Configs Request    ${RESOURCE_PATH_GET_CONFIG}   ${output}
85     Should Be Equal As Strings   ${get_resp.status_code}  200
86     ${config}=    Catenate    ${get_resp.json()[0]["config"]}
87     ${thresholds}=    Get Variable Value      ${config["content"]["tca_policy"]["metricsPerEventName"][0]["thresholds"]}
88
89     # Extract object1 from Array
90     Should Be Equal    ${thresholds[0]["severity"]}    ${Expected_Severity_1}
91     Should Be Equal As Integers   ${thresholds[0]["thresholdValue"]}    ${Expected_Threshold_1}
92     Should Be Equal   ${thresholds[0]["direction"]}    ${Expected_Direction_1}
93
94     # Extract object2 from Array
95     Should Be Equal    ${thresholds[1]["severity"]}    ${Expected_Severity_2}
96     Should Be Equal As Integers   ${thresholds[1]["thresholdValue"]}    ${Expected_Threshold_2}
97     Should Be Equal   ${thresholds[1]["direction"]}    ${Expected_Direction_2}
98
99 Get Configs VDNS Policy
100     [Documentation]    Get Config Policy for VDNS
101     ${getconfigpolicy}=    Catenate    .*MicroServicevDNS*
102     ${configpolicy_name}=    Create Dictionary    config_policy_name=${getconfigpolicy}
103     Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
104     ${output}=   Apply Template    cl    ${GECONFIG_VFW_TEMPLATE}    ${configpolicy_name}
105     ${get_resp} =    Run Policy Get Configs Request    ${RESOURCE_PATH_GET_CONFIG}   ${output}
106     Should Be Equal As Strings  ${get_resp.status_code}  200
107     ${config}=    Catenate    ${get_resp.json()[0]["config"]}
108     ${thresholds}=    Get Variable Value      ${config["content"]["tca_policy"]["metricsPerEventName"][0]["thresholds"]}
109
110     # Extract object1 from Array
111     Should Be Equal    ${thresholds[0]["severity"]}    ${Expected_Severity_2}
112     Should Be Equal As Integers   ${thresholds[0]["thresholdValue"]}    ${Expected_Threshold_1}
113     Should Be Equal   ${thresholds[0]["direction"]}    ${Expected_Direction_3}
114
115 Teardown Closed Loop
116     [Documentation]   Tear down a closed loop test case
117     Terminate All Processes
118     Teardown VNF
119     Log     Teardown complete
120
121 Create Config Policy
122     [Documentation]    Create Config Policy
123     ${randompolicyname} =     Create Policy Name
124     ${policyname1}=    Catenate   com.${randompolicyname}
125     ${CONFIG_POLICY_NAME}=    Set Test Variable    ${policyname1}
126     ${configpolicy}=    Create Dictionary    policy_name=${CONFIG_POLICY_NAME}
127     Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
128     ${output}=   Apply Template    cl    ${CREATE_CONFIG_TEMPLATE}    ${configpolicy}
129     ${put_resp} =    Run Policy Put Request    ${RESOURCE_PATH_CREATE}  ${output}
130         Should Be Equal As Strings      ${put_resp.status_code}         200
131
132  Create Policy Name
133      [Documentation]    Generate Policy Name
134      [Arguments]    ${prefix}=ETE_
135      ${random}=    Generate Random String    15    [LOWER][NUMBERS]
136      ${policyname}=    Catenate    ${prefix}${random}
137      [Return]    ${policyname}
138
139 Create Ops Policy
140         [Documentation]    Create Opertional Policy
141         ${randompolicyname} =     Create Policy Name
142         ${policyname1}=    Catenate   com.${randompolicyname}
143         ${OPS_POLICY_NAME}=    Set Test Variable    ${policyname1}
144         ${dict}=     Create Dictionary    policy_name=${OPS_POLICY_NAME}
145     Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
146     ${output}=   Apply Template    cl    ${CREATE_OPS_TEMPLATE}    ${dict}
147     ${put_resp} =    Run Policy Put Request    ${RESOURCE_PATH_CREATE}  ${output}
148     Log    ${put_resp}
149     Should Be Equal As Strings  ${put_resp.status_code}         200
150
151 Push Ops Policy
152     [Documentation]    Push Ops Policy
153     [Arguments]    ${policyname}    ${policytype}
154     ${dict}=     Create Dictionary     policy_name=${policyname}    policy_type=${policytype}
155     Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
156     ${output}=   Apply Template    cl    ${PUSH_POLICY_TEMPLATE}     ${dict}
157     ${put_resp} =    Run Policy Put Request    ${RESOURCE_PATH_CREATE_PUSH}  ${output}
158     Should Be Equal As Strings  ${put_resp.status_code}         200
159
160 Push Config Policy
161     [Documentation]    Push Config Policy
162     [Arguments]    ${policyname}    ${policytype}
163     ${dict}=     Create Dictionary     policy_name=${policyname}    policy_type=${policytype}
164     Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
165     ${output}=   Apply Template    cl    ${PUSH_POLICY_TEMPLATE}     ${dict}
166     ${put_resp} =    Run Policy Put Request    ${RESOURCE_PATH_CREATE_PUSH}  ${output}
167     Should Be Equal As Strings  ${put_resp.status_code}         200
168
169
170 Delete Config Policy
171     [Documentation]    Delete Config Policy
172     [Arguments]    ${policy_name}
173     ${policyname3}=    Catenate   com.Config_BRMS_Param_${policyname}.1.xml
174     ${dict}=     Create Dictionary     policy_name=${policyname3}
175     Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
176     ${output}=   Apply Template    cl    ${DEL_POLICY_TEMPLATE}     ${dict}
177     ${put_resp} =    Run Policy Delete Request    ${RESOURCE_PATH_CREATE_DELETE}  ${output}
178     Should Be Equal As Strings  ${put_resp.status_code}         200
179
180 Delete Ops Policy
181     [Documentation]    Delete Ops Policy
182     [Arguments]    ${policy_name}
183     ${policyname3}=    Catenate   com.Config_MS_com.vFirewall.1.xml
184     ${dict}=     Create Dictionary     policy_name=${policyname3}
185     Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
186     ${output}=   Apply Template    cl    ${DEL_POLICY_TEMPLATE}     ${dict}
187     ${put_resp} =    Run Policy Delete Request    ${RESOURCE_PATH_CREATE_DELETE}  ${output}
188     Should Be Equal As Strings  ${put_resp.status_code}         200
189
190 Orchestrate VNF vFW closedloop
191         [Documentation]    VNF Orchestration for vFW
192         Log    VNF Orchestration flow TEST NAME=${TEST NAME}
193         Setup Orchestrate VNF    ${GLOBAL_AAI_CLOUD_OWNER}    SharedNode    OwnerType    v1    CloudZone
194         ${stack_name}    ${service}=  Orchestrate VNF   ETE_CLP    vFWCL      vFWCL   ${TENANT_NAME}
195         [Return]  ${stack_name}
196
197  Orchestrate VNF vDNS closedloop
198         [Documentation]    VNF Orchestration for vLB
199         Log    VNF Orchestration flow TEST NAME=${TEST NAME}
200         Setup Orchestrate VNF    ${GLOBAL_AAI_CLOUD_OWNER}   SharedNode    OwnerType    v1    CloudZone
201         ${stack_name}    ${service}=  Orchestrate VNF   ETE_CLP    vLB      vLB   ${TENANT_NAME}
202         [Return]  ${stack_name}
203
204 VFWCL High Test
205         [Documentation]    Test Control Loop for High Traffic
206         [Arguments]    ${pkg_host}
207         Enable Streams V2    ${pkg_host}   10
208         Log To Console   Set number of streams to 10
209         :FOR    ${i}    IN RANGE    12
210         \   Sleep  15s
211         \   ${resp}=   Get List Of Enabled Streams V2   ${pkg_host}
212         \   ${stream_count}=   Set Variable   ${resp['stream-count']['streams']['active-streams']}
213         \   Log To Console   Number of streams: ${stream_count}
214         \   Exit For Loop If   '${stream_count}'=='5'
215         Should Be Equal As Integers  ${stream_count}   5
216
217 VFWCL Low Test
218         [Documentation]    Test Control Loop for Low Traffic
219         [Arguments]    ${pkg_host}
220         Enable Streams V2     ${pkg_host}   1
221         Log To Console   Set number of streams to 1
222         :FOR    ${i}    IN RANGE    12
223         \   Sleep  15s
224         \   ${resp}=   Get List Of Enabled Streams V2   ${pkg_host}
225         \   ${stream_count}=   Set Variable   ${resp['stream-count']['streams']['active-streams']}
226         \   Log To Console   Number of streams: ${stream_count}
227         \   Exit For Loop If   '${stream_count}'=='5'
228         Should Be Equal As Integers  ${stream_count}   5
229
230 VFWCL Set To Medium
231         [Documentation]    Set flows to Medium to turn off control loop
232         [Arguments]    ${pkg_host}
233         Enable Streams V2    ${pkg_host}   5