remove some global variables
[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     # there is none of this
60     Delete VNF    ${None}     ${None}
61
62 VDNS Policy
63     Initialize VDNS Policy
64     ${stackname}=   Orchestrate VNF vDNS closedloop
65     ${dnsscaling}=   Policy Check vLB Stack    ${stackname}    ${VLBPOLICYRATE}
66     Set Test Variable   ${DNSSCALINGSTACK}   ${dnsscaling}
67     # there is none of this
68     Delete VNF    ${None}     ${None}
69
70 Initialize VFW Policy
71 #    Create Config Policy
72 #    Push Config Policy    ${CONFIG_POLICY_NAME}    ${CONFIG_POLICY_TYPE}
73 #    Create Ops Policy
74 #    Push Ops Policy    ${OPS_POLICY_NAME}    ${OPS_POLICY_TYPE}
75      Get Configs VFW Policy
76
77 Initialize VDNS Policy
78     Get Configs VDNS Policy
79
80 Get Configs VFW Policy
81     [Documentation]    Get Config Policy for VFW
82     ${getconfigpolicy}=    Catenate    .*${CONFIG_POLICY_NAME}*
83     ${configpolicy_name}=    Create Dictionary    config_policy_name=${getconfigpolicy}
84     Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
85     ${output}=   Apply Template    cl    ${GECONFIG_VFW_TEMPLATE}    ${configpolicy_name}
86     ${get_resp} =    Run Policy Get Configs Request    ${RESOURCE_PATH_GET_CONFIG}   ${output}
87     Should Be Equal As Strings   ${get_resp.status_code}  200
88     ${config}=    Catenate    ${get_resp.json()[0]["config"]}
89     ${thresholds}=    Get Variable Value      ${config["content"]["tca_policy"]["metricsPerEventName"][0]["thresholds"]}
90
91     # Extract object1 from Array
92     Should Be Equal    ${thresholds[0]["severity"]}    ${Expected_Severity_1}
93     Should Be Equal As Integers   ${thresholds[0]["thresholdValue"]}    ${Expected_Threshold_1}
94     Should Be Equal   ${thresholds[0]["direction"]}    ${Expected_Direction_1}
95
96     # Extract object2 from Array
97     Should Be Equal    ${thresholds[1]["severity"]}    ${Expected_Severity_2}
98     Should Be Equal As Integers   ${thresholds[1]["thresholdValue"]}    ${Expected_Threshold_2}
99     Should Be Equal   ${thresholds[1]["direction"]}    ${Expected_Direction_2}
100
101 Get Configs VDNS Policy
102     [Documentation]    Get Config Policy for VDNS
103     ${getconfigpolicy}=    Catenate    .*MicroServicevDNS*
104     ${configpolicy_name}=    Create Dictionary    config_policy_name=${getconfigpolicy}
105     Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
106     ${output}=   Apply Template    cl    ${GECONFIG_VFW_TEMPLATE}    ${configpolicy_name}
107     ${get_resp} =    Run Policy Get Configs Request    ${RESOURCE_PATH_GET_CONFIG}   ${output}
108     Should Be Equal As Strings  ${get_resp.status_code}  200
109     ${config}=    Catenate    ${get_resp.json()[0]["config"]}
110     ${thresholds}=    Get Variable Value      ${config["content"]["tca_policy"]["metricsPerEventName"][0]["thresholds"]}
111
112     # Extract object1 from Array
113     Should Be Equal    ${thresholds[0]["severity"]}    ${Expected_Severity_2}
114     Should Be Equal As Integers   ${thresholds[0]["thresholdValue"]}    ${Expected_Threshold_1}
115     Should Be Equal   ${thresholds[0]["direction"]}    ${Expected_Direction_3}
116
117 Teardown Closed Loop
118     [Documentation]   Tear down a closed loop test case
119     Terminate All Processes
120     Teardown VNF
121     Log     Teardown complete
122
123 Create Config Policy
124     [Documentation]    Create Config Policy
125     ${randompolicyname} =     Create Policy Name
126     ${policyname1}=    Catenate   com.${randompolicyname}
127     ${CONFIG_POLICY_NAME}=    Set Test Variable    ${policyname1}
128     ${configpolicy}=    Create Dictionary    policy_name=${CONFIG_POLICY_NAME}
129     Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
130     ${output}=   Apply Template    cl    ${CREATE_CONFIG_TEMPLATE}    ${configpolicy}
131     ${put_resp} =    Run Policy Put Request    ${RESOURCE_PATH_CREATE}  ${output}
132         Should Be Equal As Strings      ${put_resp.status_code}         200
133
134  Create Policy Name
135      [Documentation]    Generate Policy Name
136      [Arguments]    ${prefix}=ETE_
137      ${random}=    Generate Random String    15    [LOWER][NUMBERS]
138      ${policyname}=    Catenate    ${prefix}${random}
139      [Return]    ${policyname}
140
141 Create Ops Policy
142         [Documentation]    Create Opertional Policy
143         ${randompolicyname} =     Create Policy Name
144         ${policyname1}=    Catenate   com.${randompolicyname}
145         ${OPS_POLICY_NAME}=    Set Test Variable    ${policyname1}
146         ${dict}=     Create Dictionary    policy_name=${OPS_POLICY_NAME}
147     Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
148     ${output}=   Apply Template    cl    ${CREATE_OPS_TEMPLATE}    ${dict}
149     ${put_resp} =    Run Policy Put Request    ${RESOURCE_PATH_CREATE}  ${output}
150     Log    ${put_resp}
151     Should Be Equal As Strings  ${put_resp.status_code}         200
152
153 Push Ops Policy
154     [Documentation]    Push Ops Policy
155     [Arguments]    ${policyname}    ${policytype}
156     ${dict}=     Create Dictionary     policy_name=${policyname}    policy_type=${policytype}
157     Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
158     ${output}=   Apply Template    cl    ${PUSH_POLICY_TEMPLATE}     ${dict}
159     ${put_resp} =    Run Policy Put Request    ${RESOURCE_PATH_CREATE_PUSH}  ${output}
160     Should Be Equal As Strings  ${put_resp.status_code}         200
161
162 Push Config Policy
163     [Documentation]    Push Config Policy
164     [Arguments]    ${policyname}    ${policytype}
165     ${dict}=     Create Dictionary     policy_name=${policyname}    policy_type=${policytype}
166     Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
167     ${output}=   Apply Template    cl    ${PUSH_POLICY_TEMPLATE}     ${dict}
168     ${put_resp} =    Run Policy Put Request    ${RESOURCE_PATH_CREATE_PUSH}  ${output}
169     Should Be Equal As Strings  ${put_resp.status_code}         200
170
171
172 Delete Config Policy
173     [Documentation]    Delete Config Policy
174     [Arguments]    ${policy_name}
175     ${policyname3}=    Catenate   com.Config_BRMS_Param_${policyname}.1.xml
176     ${dict}=     Create Dictionary     policy_name=${policyname3}
177     Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
178     ${output}=   Apply Template    cl    ${DEL_POLICY_TEMPLATE}     ${dict}
179     ${put_resp} =    Run Policy Delete Request    ${RESOURCE_PATH_CREATE_DELETE}  ${output}
180     Should Be Equal As Strings  ${put_resp.status_code}         200
181
182 Delete Ops Policy
183     [Documentation]    Delete Ops Policy
184     [Arguments]    ${policy_name}
185     ${policyname3}=    Catenate   com.Config_MS_com.vFirewall.1.xml
186     ${dict}=     Create Dictionary     policy_name=${policyname3}
187     Create Environment    cl    ${GLOBAL_TEMPLATE_FOLDER}
188     ${output}=   Apply Template    cl    ${DEL_POLICY_TEMPLATE}     ${dict}
189     ${put_resp} =    Run Policy Delete Request    ${RESOURCE_PATH_CREATE_DELETE}  ${output}
190     Should Be Equal As Strings  ${put_resp.status_code}         200
191
192 Orchestrate VNF vFW closedloop
193         [Documentation]    VNF Orchestration for vFW
194         Log    VNF Orchestration flow TEST NAME=${TEST NAME}
195         ${tenant_id}    ${tenant_name}=    Setup Orchestrate VNF    ${GLOBAL_AAI_CLOUD_OWNER}    SharedNode    OwnerType    v1    CloudZone
196         ${stack_name}=  Orchestrate VNF   ETE_CLP    vFWCL      vFWCL   ${tenant_id}    ${tenant_name}
197         [Return]  ${stack_name}
198
199  Orchestrate VNF vDNS closedloop
200         [Documentation]    VNF Orchestration for vLB
201         Log    VNF Orchestration flow TEST NAME=${TEST NAME}
202         ${tenant_id}    ${tenant_name}=    Setup Orchestrate VNF    ${GLOBAL_AAI_CLOUD_OWNER}   SharedNode    OwnerType    v1    CloudZone
203         ${stack_name}=  Orchestrate VNF   ETE_CLP    vLB      vLB   ${tenant_id}    ${tenant_name}
204         [Return]  ${stack_name}
205
206 VFWCL High Test
207         [Documentation]    Test Control Loop for High Traffic
208         [Arguments]    ${pkg_host}
209         Enable Streams V2    ${pkg_host}   10
210         Log   Set number of streams to 10
211         :FOR    ${i}    IN RANGE    12
212         \   Sleep  15s
213         \   ${resp}=   Get List Of Enabled Streams V2   ${pkg_host}
214         \   ${stream_count}=   Set Variable   ${resp['stream-count']['streams']['active-streams']}
215         \   Log   Number of streams: ${stream_count}
216         \   Exit For Loop If   '${stream_count}'=='5'
217         Should Be Equal As Integers  ${stream_count}   5
218
219 VFWCL Low Test
220         [Documentation]    Test Control Loop for Low Traffic
221         [Arguments]    ${pkg_host}
222         Enable Streams V2     ${pkg_host}   1
223         Log   Set number of streams to 1
224         :FOR    ${i}    IN RANGE    12
225         \   Sleep  15s
226         \   ${resp}=   Get List Of Enabled Streams V2   ${pkg_host}
227         \   ${stream_count}=   Set Variable   ${resp['stream-count']['streams']['active-streams']}
228         \   Log   Number of streams: ${stream_count}
229         \   Exit For Loop If   '${stream_count}'=='5'
230         Should Be Equal As Integers  ${stream_count}   5
231
232 VFWCL Set To Medium
233         [Documentation]    Set flows to Medium to turn off control loop
234         [Arguments]    ${pkg_host}
235         Enable Streams V2    ${pkg_host}   5