Merge "Add functionality to rAPP Catalogue"
[nonrtric.git] / test / auto-test / FTC800.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="Create 10000 policies in sequence using http/https and Agent REST/DMAAP with/without SDNC controller"
21
22 #App names to include in the test, space separated list
23 INCLUDED_IMAGES="CBS CONSUL CP CR MR PA RICSIM SDNC"
24
25 . ../common/testcase_common.sh  $@
26 . ../common/agent_api_functions.sh
27 . ../common/ricsimulator_api_functions.sh
28
29 #### TEST BEGIN ####
30
31 generate_uuid
32
33 #Local vars in test script
34 ##########################
35 # Number of policies in each sequence
36 NUM_POLICIES=10000
37
38 # Tested variants of REST/DMAAP/SDNC config
39 TESTED_VARIANTS="NOSDNC   SDNC"
40
41 #Test agent and simulator protocol versions (others are http only)
42 TESTED_PROTOCOLS="HTTP HTTPS"
43 for __httpx in $TESTED_PROTOCOLS ; do
44     for interface in $TESTED_VARIANTS ; do
45
46         echo "#####################################################################"
47         echo "#####################################################################"
48         echo "### Testing agent via $interface using $__httpx"
49         echo "#####################################################################"
50         echo "#####################################################################"
51
52         if [ $__httpx == "HTTPS" ]; then
53             # Path to callback receiver
54             CR_PATH="https://$CR_APP_NAME:$CR_EXTERNAL_SECURE_PORT/callbacks"
55             use_cr_https
56             use_simulator_https
57             use_mr_https
58             use_agent_rest_https
59         else
60             # Path to callback receiver
61             CR_PATH="http://$CR_APP_NAME:$CR_EXTERNAL_PORT/callbacks"
62             use_cr_http
63             use_simulator_http
64             use_mr_http
65             use_agent_rest_http
66         fi
67
68         # Policy instance start id
69         START_ID=1
70
71         clean_containers
72
73         start_ric_simulators ricsim_g1 1 OSC_2.1.0
74         start_ric_simulators ricsim_g2 1 STD_1.1.3
75         if [ "$PMS_VERSION" == "V2" ]; then
76             start_ric_simulators ricsim_g3 1  STD_2.0.0
77         fi
78
79         start_mr
80
81         start_cr
82
83         if [[ $interface == "SDNC" ]]; then
84             start_sdnc
85             prepare_consul_config      SDNC    ".consul_config.json"
86         else
87             prepare_consul_config      NOSDNC  ".consul_config.json"
88         fi
89
90         start_consul_cbs
91
92         consul_config_app                      ".consul_config.json"
93
94         start_control_panel
95
96         start_policy_agent
97
98         set_agent_debug
99
100         cr_equal received_callbacks 0
101         mr_equal requests_submitted 0
102
103
104         api_get_status 200
105
106         sim_print ricsim_g1_1 interface
107         sim_print ricsim_g2_1 interface
108
109         sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
110
111         if [ "$PMS_VERSION" == "V2" ]; then
112             api_equal json:policy-types 2 120  #Wait for the agent to refresh types from the simulators
113         else
114             api_equal json:policy_types 2 120  #Wait for the agent to refresh types from the simulators
115         fi
116
117         api_put_service 201 "serv1" 3600 "$CR_PATH/1"
118
119         if [ "$PMS_VERSION" == "V2" ]; then
120             notificationurl="http://localhost:80"
121         else
122             notificationurl=""
123         fi
124
125         start_timer "Create polices in OSC via agent REST and $interface using "$__httpx
126         api_put_policy 201 "serv1" ricsim_g1_1 1 $START_ID NOTRANSIENT $notificationurl testdata/OSC/pi1_template.json $NUM_POLICIES
127         print_timer "Create polices in OSC via agent REST and $interface using "$__httpx
128
129         sim_equal ricsim_g1_1 num_instances $NUM_POLICIES
130
131         START_ID=$(($START_ID+$NUM_POLICIES))
132
133         start_timer "Create polices in STD via agent REST and $interface using "$__httpx
134         api_put_policy 201 "serv1" ricsim_g2_1 NOTYPE $START_ID NOTRANSIENT $notificationurl testdata/STD/pi1_template.json $NUM_POLICIES
135         print_timer "Create polices in STD via agent REST and $interface using "$__httpx
136
137         sim_equal ricsim_g2_1 num_instances $NUM_POLICIES
138
139         if [ $__httpx == "HTTPS" ]; then
140             echo "Using secure ports towards dmaap"
141             use_agent_dmaap_https
142         else
143             echo "Using non-secure ports towards dmaap"
144             use_agent_dmaap_http
145         fi
146
147         START_ID=$(($START_ID+$NUM_POLICIES))
148
149         start_timer "Create polices in OSC via agent DMAAP, one by one, and $interface using "$__httpx
150         api_put_policy 201 "serv1" ricsim_g1_1 1 $START_ID NOTRANSIENT $notificationurl testdata/OSC/pi1_template.json $NUM_POLICIES
151         print_timer "Create polices in OSC via agent DMAAP, one by one, and $interface using "$__httpx
152
153         sim_equal ricsim_g1_1 num_instances $((2*$NUM_POLICIES))
154
155         START_ID=$(($START_ID+$NUM_POLICIES))
156
157         start_timer "Create polices in STD via agent DMAAP, one by one, and $interface using "$__httpx
158         api_put_policy 201 "serv1" ricsim_g2_1 NOTYPE $START_ID NOTRANSIENT $notificationurl testdata/STD/pi1_template.json $NUM_POLICIES
159         print_timer "Create polices in STD via agent DMAAP, one by one, and $interface using "$__httpx
160
161         sim_equal ricsim_g2_1 num_instances $((2*$NUM_POLICIES))
162
163         START_ID=$(($START_ID+$NUM_POLICIES))
164
165         start_timer "Create polices in OSC via agent DMAAP in batch and $interface using "$__httpx
166         api_put_policy_batch 201 "serv1" ricsim_g1_1 1 $START_ID NOTRANSIENT $notificationurl testdata/OSC/pi1_template.json $NUM_POLICIES
167         print_timer "Create polices in OSC via agent DMAAP in batch and $interface using "$__httpx
168
169         sim_equal ricsim_g1_1 num_instances $((3*$NUM_POLICIES))
170
171         START_ID=$(($START_ID+$NUM_POLICIES))
172
173         start_timer "Create polices in STD via agent DMAAP in batch and $interface using "$__httpx
174         api_put_policy_batch 201 "serv1" ricsim_g2_1 NOTYPE $START_ID NOTRANSIENT $notificationurl testdata/STD/pi1_template.json $NUM_POLICIES
175         print_timer "Create polices in STD via agent DMAAP in batch and $interface using "$__httpx
176
177         sim_equal ricsim_g2_1 num_instances $((3*$NUM_POLICIES))
178
179         if [ $interface == "SDNC" ]; then
180             sim_contains_str ricsim_g1_1 remote_hosts "a1-controller"
181             sim_contains_str ricsim_g2_1 remote_hosts "a1-controller"
182             if [ "$PMS_VERSION" == "V2" ]; then
183                 sim_contains_str ricsim_g3_1 remote_hosts "a1-controller"
184             fi
185         else
186             sim_contains_str ricsim_g1_1 remote_hosts "policy-agent"
187             sim_contains_str ricsim_g2_1 remote_hosts "policy-agent"
188             if [ "$PMS_VERSION" == "V2" ]; then
189                 sim_contains_str ricsim_g3_1 remote_hosts "policy-agent"
190             fi
191         fi
192
193         check_policy_agent_logs
194
195         store_logs          "${__httpx}__${interface}"
196     done
197 done
198
199 #### TEST COMPLETE ####
200
201 print_result
202
203 auto_clean_containers