Merge "NONRTRIC - Implement DMaaP mediator producer service in Java"
[nonrtric.git] / test / auto-test / FTC10.sh
1 #!/bin/bash
2
3 #  ============LICENSE_START===============================================
4 #  Copyright (C) 2020 Nordix Foundation. All rights reserved.
5 #  ========================================================================
6 #  Licensed under the Apache License, Version 2.0 (the "License");
7 #  you may not use this file except in compliance with the License.
8 #  You may obtain a copy of the License at
9 #
10 #       http://www.apache.org/licenses/LICENSE-2.0
11 #
12 #  Unless required by applicable law or agreed to in writing, software
13 #  distributed under the License is distributed on an "AS IS" BASIS,
14 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 #  See the License for the specific language governing permissions and
16 #  limitations under the License.
17 #  ============LICENSE_END=================================================
18 #
19
20 TC_ONELINE_DESCR="Basic use case, register service, create/update policy, delete policy, de-register service using both STD and OSC interface while mixing REST and Dmaap"
21
22 #App names to include in the test when running docker, space separated list
23 DOCKER_INCLUDED_IMAGES="CBS CONSUL CP CR MR PA RICSIM NGW KUBEPROXY"
24
25 #App names to include in the test when running kubernetes, space separated list
26 KUBE_INCLUDED_IMAGES=" MR CR PA RICSIM CP KUBEPROXY NGW"
27 #Prestarted app (not started by script) to include in the test when running kubernetes, space separated list
28 KUBE_PRESTARTED_IMAGES=""
29
30 #Ignore image in DOCKER_INCLUDED_IMAGES, KUBE_INCLUDED_IMAGES if
31 #the image is not configured in the supplied env_file
32 #Used for images not applicable to all supported profile
33 CONDITIONALLY_IGNORED_IMAGES="NGW"
34
35 #Supported test environment profiles
36 SUPPORTED_PROFILES="ONAP-GUILIN ONAP-HONOLULU ONAP-ISTANBUL ORAN-CHERRY ORAN-D-RELEASE ORAN-E-RELEASE"
37 #Supported run modes
38 SUPPORTED_RUNMODES="DOCKER KUBE"
39
40 . ../common/testcase_common.sh $@
41 . ../common/agent_api_functions.sh
42 . ../common/consul_cbs_functions.sh
43 . ../common/control_panel_api_functions.sh
44 . ../common/controller_api_functions.sh
45 . ../common/cr_api_functions.sh
46 . ../common/mr_api_functions.sh
47 . ../common/ricsimulator_api_functions.sh
48 . ../common/kube_proxy_api_functions.sh
49 . ../common/gateway_api_functions.sh
50
51 setup_testenvironment
52
53 #### TEST BEGIN ####
54
55 generate_policy_uuid
56
57 use_simulator_http
58 use_mr_http
59 use_agent_rest_http
60
61
62 clean_environment
63
64 start_kube_proxy
65
66 start_ric_simulators  ricsim_g1 3 OSC_2.1.0
67
68 start_ric_simulators  ricsim_g2 5 STD_1.1.3
69
70 if [ "$PMS_VERSION" == "V2" ]; then
71     start_ric_simulators ricsim_g3 1  STD_2.0.0
72 fi
73
74 start_mr
75
76 start_cr
77
78 if [ $RUNMODE == "DOCKER" ]; then
79     start_consul_cbs
80 fi
81
82 start_control_panel $SIM_GROUP/$CONTROL_PANEL_COMPOSE_DIR/$CONTROL_PANEL_CONFIG_FILE
83
84 if [ ! -z "$NRT_GATEWAY_APP_NAME" ]; then
85     start_gateway $SIM_GROUP/$NRT_GATEWAY_COMPOSE_DIR/$NRT_GATEWAY_CONFIG_FILE
86 fi
87
88 start_policy_agent NORPOXY $SIM_GROUP/$POLICY_AGENT_COMPOSE_DIR/$POLICY_AGENT_CONFIG_FILE
89
90 set_agent_debug
91
92 use_agent_rest_http
93
94 prepare_consul_config      NOSDNC  ".consul_config.json"
95
96 if [ $RUNMODE == "KUBE" ]; then
97     agent_load_config                       ".consul_config.json"
98 else
99     consul_config_app                      ".consul_config.json"
100 fi
101
102 api_get_status 200
103
104 sim_print ricsim_g1_1 interface
105
106 sim_print ricsim_g2_1 interface
107
108 if [ "$PMS_VERSION" == "V2" ]; then
109     sim_print ricsim_g3_1 interface
110 fi
111
112 sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
113
114 if [ "$PMS_VERSION" == "V2" ]; then
115     sim_put_policy_type 201 ricsim_g3_1 STD_QOS_0_2_0 testdata/STD2/sim_qos.json
116     api_equal json:policy-types 3 300
117 else
118     api_equal json:policy_types 2 300
119 fi
120
121 # Create policies
122
123 if [ "$PMS_VERSION" == "V2" ]; then
124     notificationurl=$CR_SERVICE_APP_PATH"/test"
125 else
126     notificationurl=""
127 fi
128
129 use_agent_rest_http
130
131 api_put_service 201 "service1" 3600 "$CR_SERVICE_APP_PATH/1"
132
133 api_put_policy 201 "service1" ricsim_g1_1 1 2000 NOTRANSIENT $notificationurl testdata/OSC/pi1_template.json 1
134
135 sim_equal ricsim_g1_1 num_instances 1
136
137
138 use_agent_dmaap_http
139
140 api_put_policy 201 "service1" ricsim_g1_1 1 3000 NOTRANSIENT $notificationurl testdata/OSC/pi1_template.json 1
141
142 sim_equal ricsim_g1_1 num_instances 2
143
144
145 use_agent_rest_http
146
147 api_put_policy 201 "service1" ricsim_g2_1 NOTYPE 2100 NOTRANSIENT $notificationurl testdata/STD/pi1_template.json 1
148
149 sim_equal ricsim_g2_1 num_instances 1
150
151
152 use_agent_dmaap_http
153
154 api_put_policy 201 "service1" ricsim_g2_1 NOTYPE 3100 NOTRANSIENT $notificationurl testdata/STD/pi1_template.json 1
155
156 sim_equal ricsim_g2_1 num_instances 2
157
158 if [ "$PMS_VERSION" == "V2" ]; then
159     use_agent_rest_http
160
161     api_put_policy 201 "service1" ricsim_g3_1 STD_QOS_0_2_0 2200 true $notificationurl testdata/STD2/pi_qos_template.json 1
162
163     sim_equal ricsim_g3_1 num_instances 1
164
165     use_agent_dmaap_http
166
167     api_put_policy 201 "service1" ricsim_g3_1 STD_QOS_0_2_0 3200 NOTRANSIENT $notificationurl testdata/STD2/pi_qos_template.json 1
168
169     sim_equal ricsim_g3_1 num_instances 2
170
171 fi
172
173 #Update policies
174 use_agent_rest_http
175
176 api_put_service 200 "service1" 3600 "$CR_SERVICE_APP_PATH/1"
177
178 api_put_policy 200 "service1" ricsim_g1_1 1 2000 NOTRANSIENT $notificationurl testdata/OSC/pi1_template.json 1
179
180 sim_equal ricsim_g1_1 num_instances 2
181
182
183 use_agent_dmaap_http
184
185 api_put_policy 200 "service1" ricsim_g1_1 1 3000 NOTRANSIENT $notificationurl testdata/OSC/pi1_template.json 1
186
187 sim_equal ricsim_g1_1 num_instances 2
188
189
190 use_agent_rest_http
191
192
193 api_put_policy 200 "service1" ricsim_g2_1 NOTYPE 2100 NOTRANSIENT $notificationurl testdata/STD/pi1_template.json 1
194
195 sim_equal ricsim_g2_1 num_instances 2
196
197
198 use_agent_dmaap_http
199
200 api_put_policy 200 "service1" ricsim_g2_1 NOTYPE 3100 NOTRANSIENT $notificationurl testdata/STD/pi1_template.json 1
201
202 sim_equal ricsim_g2_1 num_instances 2
203
204 if [ "$PMS_VERSION" == "V2" ]; then
205     use_agent_rest_http
206
207     api_put_policy 200 "service1" ricsim_g3_1 STD_QOS_0_2_0 2200 true $notificationurl testdata/STD2/pi_qos_template.json 1
208
209     sim_equal ricsim_g3_1 num_instances 2
210
211
212     use_agent_dmaap_http
213
214     api_put_policy 200 "service1" ricsim_g3_1 STD_QOS_0_2_0 3200 true $notificationurl testdata/STD2/pi_qos_template.json 1
215
216     sim_equal ricsim_g3_1 num_instances 2
217 fi
218
219 # Check policies
220 if [ "$PMS_VERSION" == "V2" ]; then
221     api_get_policy 200 2000 testdata/OSC/pi1_template.json "service1" ricsim_g1_1 1 false $notificationurl
222     api_get_policy 200 3000 testdata/OSC/pi1_template.json "service1" ricsim_g1_1 1 false $notificationurl
223     api_get_policy 200 2100 testdata/STD/pi1_template.json "service1" ricsim_g2_1 NOTYPE false $notificationurl
224     api_get_policy 200 3100 testdata/STD/pi1_template.json "service1" ricsim_g2_1 NOTYPE false $notificationurl
225     api_get_policy 200 2200 testdata/STD2/pi_qos_template.json "service1" ricsim_g3_1 STD_QOS_0_2_0 true $notificationurl
226     api_get_policy 200 3200 testdata/STD2/pi_qos_template.json "service1" ricsim_g3_1 STD_QOS_0_2_0 true $notificationurl
227 else
228     api_get_policy 200 2000 testdata/OSC/pi1_template.json
229     api_get_policy 200 3000 testdata/OSC/pi1_template.json
230     api_get_policy 200 2100 testdata/STD/pi1_template.json
231     api_get_policy 200 3100 testdata/STD/pi1_template.json
232 fi
233
234 sim_equal ricsim_g1_1 num_instances 2
235 sim_equal ricsim_g2_1 num_instances 2
236
237 if [ "$PMS_VERSION" == "V2" ]; then
238     sim_equal ricsim_g3_1 num_instances 2
239 fi
240
241 # Remove policies
242
243 use_agent_dmaap_http
244 api_delete_policy 204 2000
245 use_agent_rest_http
246 api_delete_policy 204 3000
247 use_agent_dmaap_http
248 api_delete_policy 204 2100
249 use_agent_rest_http
250 api_delete_policy 204 3100
251 if [ "$PMS_VERSION" == "V2" ]; then
252     use_agent_dmaap_http
253     api_delete_policy 204 2200
254     use_agent_rest_http
255     api_delete_policy 204 3200
256 fi
257
258 sim_equal ricsim_g1_1 num_instances 0
259 sim_equal ricsim_g2_1 num_instances 0
260
261 if [ "$PMS_VERSION" == "V2" ]; then
262     sim_equal ricsim_g3_1 num_instances 0
263 fi
264
265 # Check remote host access to simulator
266
267 sim_contains_str ricsim_g1_1 remote_hosts $POLICY_AGENT_APP_NAME
268 sim_contains_str ricsim_g2_1 remote_hosts $POLICY_AGENT_APP_NAME
269 if [ "$PMS_VERSION" == "V2" ]; then
270     sim_contains_str ricsim_g3_1 remote_hosts $POLICY_AGENT_APP_NAME
271 fi
272
273 # Check policy removal
274 use_agent_rest_http
275 api_get_policy 404 2000
276 api_get_policy 404 3000
277 api_get_policy 404 2100
278 api_get_policy 404 3100
279
280 if [ "$PMS_VERSION" == "V2" ]; then
281     api_get_policy 404 2200
282     api_get_policy 404 3200
283 fi
284
285 # Remove the service
286 use_agent_dmaap_http
287 api_delete_services 204 "service1"
288
289 api_get_services 404 "service1"
290
291 check_policy_agent_logs
292
293 #### TEST COMPLETE ####
294
295 store_logs          END
296
297 print_result
298
299 auto_clean_environment