Merge "Make assertions of log messages better"
[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 exclude checking pulling images for, space separated list
23 EXCLUDED_IMAGES="SDNC_ONAP"
24
25 . ../common/testcase_common.sh  $@
26 . ../common/agent_api_functions.sh
27 . ../common/ricsimulator_api_functions.sh
28
29 #### TEST BEGIN ####
30
31 #Local vars in test script
32 ##########################
33 # Path to callback receiver
34 CR_PATH="http://$CR_APP_NAME:$CR_EXTERNAL_PORT/callbacks"
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         # Policy instance start id
53         START_ID=1
54
55         clean_containers
56
57         if [ $__httpx == "HTTPS" ]; then
58             #"Using secure ports towards simulators"
59             use_simulator_https
60         else
61             #"Using non-secure ports towards simulators"
62             use_simulator_http
63         fi
64
65         start_ric_simulators ricsim_g1 1 OSC_2.1.0
66         start_ric_simulators ricsim_g2 1 STD_1.1.3
67
68         start_mr
69
70         if [ $__httpx == "HTTPS" ]; then
71
72             deviation "TR17 - agent cannot use https towards MR - test combo $interface and $__httpx"
73             #This is the intention
74             #echo "Using secure ports between agent and MR"
75             #use_mr_https
76
77             #Work around until it is fixed
78             #"Using non-secure ports between agent and MR"
79             use_mr_http
80         else
81             #"Using non-secure ports between agent and MR"
82             use_mr_http
83         fi
84
85         start_cr
86
87         if [ $interface == "SDNC" ]; then
88
89             start_sdnc
90
91             if [ $__httpx == "HTTPS" ]; then
92                 # "Using secure ports towards SDNC"
93                 use_sdnc_https
94             else
95                 #"Using non-secure ports towards SDNC"
96                 use_sdnc_http
97             fi
98         fi
99
100         start_consul_cbs
101
102         if [ $interface == "SDNC" ]; then
103             prepare_consul_config      SDNC    ".consul_config.json"
104         else
105             prepare_consul_config      NOSDNC  ".consul_config.json"
106         fi
107
108         consul_config_app                      ".consul_config.json"
109
110         start_control_panel
111
112         start_policy_agent
113
114         set_agent_debug
115
116         if [ $__httpx == "HTTPS" ]; then
117             # "Using secure ports towards the agent"
118             use_agent_rest_https
119         else
120             # "Using non-secure ports towards the agent"
121             use_agent_rest_http
122         fi
123
124
125         cr_equal received_callbacks 0
126         mr_equal requests_submitted 0
127
128
129         api_get_status 200
130
131         sim_print ricsim_g1_1 interface
132         sim_print ricsim_g2_1 interface
133
134         sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
135
136
137         api_equal json:policy_types 2 120  #Wait for the agent to refresh types from the simulators
138
139         api_put_service 201 "serv1" 3600 "$CR_PATH/1"
140
141         start_timer "Create polices in OSC via agent REST and $interface using "$__httpx
142         api_put_policy 201 "serv1" ricsim_g1_1 1 $START_ID NOTRANSIENT testdata/OSC/pi1_template.json $NUM_POLICIES
143         print_timer "Create polices in OSC via agent REST and $interface using "$__httpx
144
145         sim_equal ricsim_g1_1 num_instances $NUM_POLICIES
146
147         START_ID=$(($START_ID+$NUM_POLICIES))
148
149         start_timer "Create polices in STD via agent REST and $interface using "$__httpx
150         api_put_policy 201 "serv1" ricsim_g2_1 NOTYPE $START_ID NOTRANSIENT testdata/STD/pi1_template.json $NUM_POLICIES
151         print_timer "Create polices in STD via agent REST and $interface using "$__httpx
152
153         sim_equal ricsim_g2_1 num_instances $NUM_POLICIES
154
155         use_agent_dmaap
156
157         START_ID=$(($START_ID+$NUM_POLICIES))
158
159         start_timer "Create polices in OSC via agent DMAAP, one by one, and $interface using "$__httpx
160         api_put_policy 201 "serv1" ricsim_g1_1 1 $START_ID NOTRANSIENT testdata/OSC/pi1_template.json $NUM_POLICIES
161         print_timer "Create polices in OSC via agent DMAAP, one by one, and $interface using "$__httpx
162
163         sim_equal ricsim_g1_1 num_instances $((2*$NUM_POLICIES))
164
165         START_ID=$(($START_ID+$NUM_POLICIES))
166
167         start_timer "Create polices in STD via agent DMAAP, one by one, and $interface using "$__httpx
168         api_put_policy 201 "serv1" ricsim_g2_1 NOTYPE $START_ID NOTRANSIENT testdata/STD/pi1_template.json $NUM_POLICIES
169         print_timer "Create polices in STD via agent DMAAP, one by one, and $interface using "$__httpx
170
171         sim_equal ricsim_g2_1 num_instances $((2*$NUM_POLICIES))
172
173         START_ID=$(($START_ID+$NUM_POLICIES))
174
175         start_timer "Create polices in OSC via agent DMAAP in batch and $interface using "$__httpx
176         api_put_policy_batch 201 "serv1" ricsim_g1_1 1 $START_ID NOTRANSIENT testdata/OSC/pi1_template.json $NUM_POLICIES
177         print_timer "Create polices in OSC via agent DMAAP in batch and $interface using "$__httpx
178
179         sim_equal ricsim_g1_1 num_instances $((3*$NUM_POLICIES))
180
181         START_ID=$(($START_ID+$NUM_POLICIES))
182
183         start_timer "Create polices in STD via agent DMAAP in batch and $interface using "$__httpx
184         api_put_policy_batch 201 "serv1" ricsim_g2_1 NOTYPE $START_ID NOTRANSIENT testdata/STD/pi1_template.json $NUM_POLICIES
185         print_timer "Create polices in STD via agent DMAAP in batch and $interface using "$__httpx
186
187         sim_equal ricsim_g2_1 num_instances $((3*$NUM_POLICIES))
188
189         if [ $interface == "SDNC" ]; then
190             sim_contains_str ricsim_g1_1 remote_hosts "a1-controller"
191             sim_contains_str ricsim_g2_1 remote_hosts "a1-controller"
192         else
193             sim_contains_str ricsim_g1_1 remote_hosts "policy-agent"
194             sim_contains_str ricsim_g2_1 remote_hosts "policy-agent"
195         fi
196
197         check_policy_agent_logs
198
199         store_logs          "${__httpx}__${interface}"
200     done
201 done
202
203 #### TEST COMPLETE ####
204
205 print_result
206
207 auto_clean_containers