onap on kubernetes source files
[oom.git] / kubernetes / config / docker / init / src / config / robot / 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        vnf_orchestration_test_template.robot
7 Library    String
8 Library    HttpLibrary.HTTP
9 LIbrary    Process
10
11 *** Variables ***
12 ${RESOURCE_PATH_CREATE}        /PyPDPServer/createPolicy
13 ${RESOURCE_PATH_CREATE_PUSH}        /PyPDPServer/pushPolicy
14 ${RESOURCE_PATH_CREATE_DELETE}        /PyPDPServer/deletePolicy
15 ${RESOURCE_PATH_GET_CONFIG}    /PyPDPServer/getConfig
16 ${CREATE_CONFIG_TEMPLATE}    robot/assets/templates/policy/closedloop_configpolicy.template
17 ${CREATE_OPS_TEMPLATE}    robot/assets/templates/policy/closedloop_opspolicy.template
18 ${PUSH_POLICY_TEMPLATE}   robot/assets/templates/policy/closedloop_pushpolicy.template
19 ${DEL_POLICY_TEMPLATE}   robot/assets/templates/policy/closedloop_deletepolicy.template
20 ${GECONFIG_VFW_TEMPLATE}    robot/assets/templates/policy/closedloop_getconfigpolicy.template
21
22 # 'Normal' number of pg streams that will be set when policy is triggered
23 ${VFWPOLICYRATE}    5
24
25 # Max nslookup requests per second before triggering event.
26 ${VLBPOLICYRATE}    20
27
28 ${CONFIG_POLICY_NAME}    vFirewall
29 ${CONFIG_POLICY_TYPE}    Unknown
30 ${OPS_POLICY_NAME}
31 ${OPS_POLICY_TYPE}    BRMS_PARAM
32
33 # VFW low threshold
34 ${Expected_Severity_1}    MAJOR
35 ${Expected_Threshold_1}    300
36 ${Expected_Direction_1}    LESS_OR_EQUAL
37
38 # VFW high threshold
39 ${Expected_Severity_2}    CRITICAL
40 ${Expected_Threshold_2}    700
41 ${Expected_Direction_2}    GREATER_OR_EQUAL
42
43 # VDNS High threshold
44 ${Expected_Severity_3}    MAJOR
45 ${Expected_Threshold_3}    200
46 ${Expected_Direction_3}    GREATER_OR_EQUAL
47
48 #********** Test Case Variables ************
49 ${DNSSCALINGSTACK}
50
51 *** Keywords ***
52 VFW Policy
53     Log    Suite name ${SUITE NAME} ${TEST NAME} ${PREV TEST NAME}
54     Initialize VFW Policy
55     ${stackname}=   Orchestrate VNF vFW closedloop
56     Policy Check Firewall Stack    ${stackname}    ${VFWPOLICYRATE}
57
58
59 VDNS Policy
60     Initialize VDNS Policy
61     ${stackname}=   Orchestrate VNF vDNS closedloop
62     ${dnsscaling}=   Policy Check vLB Stack    ${stackname}    ${VLBPOLICYRATE}
63     Set Test Variable   ${DNSSCALINGSTACK}   ${dnsscaling}
64
65 Initialize VFW Policy
66 #    Create Config Policy
67 #    Push Config Policy    ${CONFIG_POLICY_NAME}    ${CONFIG_POLICY_TYPE}
68 #    Create Ops Policy
69 #    Push Ops Policy    ${OPS_POLICY_NAME}    ${OPS_POLICY_TYPE}
70      Get Configs VFW Policy
71
72 Initialize VDNS Policy
73     Get Configs VDNS Policy
74
75 Get Configs VFW Policy
76     [Documentation]    Get Config Policy for VFW
77     ${getconfigpolicy}=    Catenate    .*${CONFIG_POLICY_NAME}*
78     ${configpolicy_name}=    Create Dictionary    config_policy_name=${getconfigpolicy}
79     ${output} =     Fill JSON Template File     ${GECONFIG_VFW_TEMPLATE}    ${configpolicy_name}
80     ${get_resp} =    Run Policy Get Configs Request    ${RESOURCE_PATH_GET_CONFIG}   ${output}
81         Should Be Equal As Strings      ${get_resp.status_code}         200
82
83         ${json}=    Parse Json    ${get_resp.content}
84     ${config}=    Parse Json    ${json[0]["config"]}
85
86     # Extract object1 from Array
87     ${severity}=    Get Variable Value      ${config["content"]["thresholds"][0]["severity"]}
88     Should Be Equal    ${severity}    ${Expected_Severity_1}
89     ${Thresold_Value}=    Get Variable Value      ${config["content"]["thresholds"][0]["thresholdValue"]}
90     Should Be Equal   ${Thresold_Value}    ${Expected_Threshold_1}
91     ${direction}=    Get Variable Value      ${config["content"]["thresholds"][0]["direction"]}
92     Should Be Equal   ${direction}    ${Expected_Direction_1}
93
94     # Extract object2 from Array
95     ${severity_1}=    Get Variable Value      ${config["content"]["thresholds"][1]["severity"]}
96     Should Be Equal    ${severity_1}    ${Expected_Severity_2}
97     ${Thresold_Value_1}=    Get Variable Value      ${config["content"]["thresholds"][1]["thresholdValue"]}
98     Should Be Equal   ${Thresold_Value_1}    ${Expected_Threshold_2}
99     ${direction_1}=    Get Variable Value      ${config["content"]["thresholds"][1]["direction"]}
100     Should Be Equal   ${direction_1}    ${Expected_Direction_2}
101
102 Get Configs VDNS Policy
103     [Documentation]    Get Config Policy for VDNS
104     ${getconfigpolicy}=    Catenate    .*vLoadBalancer*
105     ${configpolicy_name}=    Create Dictionary    config_policy_name=${getconfigpolicy}
106     ${output} =     Fill JSON Template File     ${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     ${json}=    Parse Json    ${get_resp.content}
110     ${config}=    Parse Json    ${json[0]["config"]}
111
112     # Extract object1 from Array
113     ${severity}=    Get Variable Value      ${config["content"]["thresholds"][0]["severity"]}
114     Should Be Equal    ${severity}    ${Expected_Severity_3}
115     ${Thresold_Value}=    Get Variable Value      ${config["content"]["thresholds"][0]["thresholdValue"]}
116     Should Be Equal   ${Thresold_Value}    ${Expected_Threshold_3}
117     ${direction}=    Get Variable Value      ${config["content"]["thresholds"][0]["direction"]}
118     Should Be Equal   ${direction}    ${Expected_Direction_3}
119
120 Teardown Closed Loop
121     [Documentation]   Tear down a closed loop test case
122     Terminate All Processes
123     Teardown VNF
124     Log     Teardown complete
125
126 Create Config Policy
127     [Documentation]    Create Config Policy
128     ${randompolicyname} =     Create Policy Name
129     ${policyname1}=    Catenate   com.${randompolicyname}
130     ${CONFIG_POLICY_NAME}=    Set Test Variable    ${policyname1}
131     ${configpolicy}=    Create Dictionary    policy_name=${CONFIG_POLICY_NAME}
132     ${output} =     Fill JSON Template File     ${CREATE_CONFIG_TEMPLATE}    ${configpolicy}
133     ${put_resp} =    Run Policy Put Request    ${RESOURCE_PATH_CREATE}  ${output}
134         Should Be Equal As Strings      ${put_resp.status_code}         200
135
136  Create Policy Name
137      [Documentation]    Generate Policy Name
138      [Arguments]    ${prefix}=ETE_
139      ${random}=    Generate Random String    15    [LOWER][NUMBERS]
140      ${policyname}=    Catenate    ${prefix}${random}
141      [Return]    ${policyname}
142
143 Create Ops Policy
144         [Documentation]    Create Opertional Policy
145         ${randompolicyname} =     Create Policy Name
146         ${policyname1}=    Catenate   com.${randompolicyname}
147         ${OPS_POLICY_NAME}=    Set Test Variable    ${policyname1}
148         ${dict}=     Create Dictionary    policy_name=${OPS_POLICY_NAME}
149         #${NEWPOLICY1}=     Create Dictionary    policy_name=com.${OPS_POLICY_NAME}
150         ${output} =     Fill JSON Template File     ${CREATE_OPS_TEMPLATE}    ${dict}
151     ${put_resp} =    Run Policy Put Request    ${RESOURCE_PATH_CREATE}  ${output}
152     Log    ${put_resp}
153     Should Be Equal As Strings  ${put_resp.status_code}         200
154
155 Push Ops Policy
156     [Documentation]    Push Ops Policy
157     [Arguments]    ${policyname}    ${policytype}
158     ${dict}=     Create Dictionary     policy_name=${policyname}    policy_type=${policytype}
159         ${output} =     Fill JSON Template     ${PUSH_POLICY_TEMPLATE}     ${dict}
160     ${put_resp} =    Run Policy Put Request    ${RESOURCE_PATH_CREATE_PUSH}  ${output}
161     Should Be Equal As Strings  ${put_resp.status_code}         200
162
163 Push Config Policy
164     [Documentation]    Push Config Policy
165     [Arguments]    ${policyname}    ${policytype}
166     ${dict}=     Create Dictionary     policy_name=${policyname}    policy_type=${policytype}
167         ${output} =     Fill JSON Template     ${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         ${output} =     Fill JSON Template     ${DEL_POLICY_TEMPLATE}     ${dict}
178     ${put_resp} =    Run Policy Delete Request    ${RESOURCE_PATH_CREATE_DELETE}  ${output}
179     Should Be Equal As Strings  ${put_resp.status_code}         200
180
181 Delete Ops Policy
182     [Documentation]    Delete Ops Policy
183     [Arguments]    ${policy_name}
184     ${policyname3}=    Catenate   com.Config_MS_com.vFirewall.1.xml
185     ${dict}=     Create Dictionary     policy_name=${policyname3}
186         ${output} =     Fill JSON Template     ${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    vFW      vFW   ${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}