Merge "Restructure test cases and upgraded test environment"
[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="ECS"
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
76         start_mr
77
78         start_cr
79
80         if [[ $interface == "SDNC" ]]; then
81             start_sdnc
82             prepare_consul_config      SDNC    ".consul_config.json"
83         else
84             prepare_consul_config      NOSDNC  ".consul_config.json"
85         fi
86
87         start_consul_cbs
88
89         consul_config_app                      ".consul_config.json"
90
91         start_control_panel
92
93         start_policy_agent
94
95         set_agent_debug
96
97         cr_equal received_callbacks 0
98         mr_equal requests_submitted 0
99
100
101         api_get_status 200
102
103         sim_print ricsim_g1_1 interface
104         sim_print ricsim_g2_1 interface
105
106         sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
107
108
109         api_equal json:policy_types 2 120  #Wait for the agent to refresh types from the simulators
110
111         api_put_service 201 "serv1" 3600 "$CR_PATH/1"
112
113         start_timer "Create polices in OSC via agent REST and $interface using "$__httpx
114         api_put_policy 201 "serv1" ricsim_g1_1 1 $START_ID NOTRANSIENT testdata/OSC/pi1_template.json $NUM_POLICIES
115         print_timer "Create polices in OSC via agent REST and $interface using "$__httpx
116
117         sim_equal ricsim_g1_1 num_instances $NUM_POLICIES
118
119         START_ID=$(($START_ID+$NUM_POLICIES))
120
121         start_timer "Create polices in STD via agent REST and $interface using "$__httpx
122         api_put_policy 201 "serv1" ricsim_g2_1 NOTYPE $START_ID NOTRANSIENT testdata/STD/pi1_template.json $NUM_POLICIES
123         print_timer "Create polices in STD via agent REST and $interface using "$__httpx
124
125         sim_equal ricsim_g2_1 num_instances $NUM_POLICIES
126
127         if [ $__httpx == "HTTPS" ]; then
128             echo "Using secure ports towards dmaap"
129             use_agent_dmaap_https
130         else
131             echo "Using non-secure ports towards dmaap"
132             use_agent_dmaap_http
133         fi
134
135         START_ID=$(($START_ID+$NUM_POLICIES))
136
137         start_timer "Create polices in OSC via agent DMAAP, one by one, and $interface using "$__httpx
138         api_put_policy 201 "serv1" ricsim_g1_1 1 $START_ID NOTRANSIENT testdata/OSC/pi1_template.json $NUM_POLICIES
139         print_timer "Create polices in OSC via agent DMAAP, one by one, and $interface using "$__httpx
140
141         sim_equal ricsim_g1_1 num_instances $((2*$NUM_POLICIES))
142
143         START_ID=$(($START_ID+$NUM_POLICIES))
144
145         start_timer "Create polices in STD via agent DMAAP, one by one, and $interface using "$__httpx
146         api_put_policy 201 "serv1" ricsim_g2_1 NOTYPE $START_ID NOTRANSIENT testdata/STD/pi1_template.json $NUM_POLICIES
147         print_timer "Create polices in STD via agent DMAAP, one by one, and $interface using "$__httpx
148
149         sim_equal ricsim_g2_1 num_instances $((2*$NUM_POLICIES))
150
151         START_ID=$(($START_ID+$NUM_POLICIES))
152
153         start_timer "Create polices in OSC via agent DMAAP in batch and $interface using "$__httpx
154         api_put_policy_batch 201 "serv1" ricsim_g1_1 1 $START_ID NOTRANSIENT testdata/OSC/pi1_template.json $NUM_POLICIES
155         print_timer "Create polices in OSC via agent DMAAP in batch and $interface using "$__httpx
156
157         sim_equal ricsim_g1_1 num_instances $((3*$NUM_POLICIES))
158
159         START_ID=$(($START_ID+$NUM_POLICIES))
160
161         start_timer "Create polices in STD via agent DMAAP in batch and $interface using "$__httpx
162         api_put_policy_batch 201 "serv1" ricsim_g2_1 NOTYPE $START_ID NOTRANSIENT testdata/STD/pi1_template.json $NUM_POLICIES
163         print_timer "Create polices in STD via agent DMAAP in batch and $interface using "$__httpx
164
165         sim_equal ricsim_g2_1 num_instances $((3*$NUM_POLICIES))
166
167         if [ $interface == "SDNC" ]; then
168             sim_contains_str ricsim_g1_1 remote_hosts "a1-controller"
169             sim_contains_str ricsim_g2_1 remote_hosts "a1-controller"
170         else
171             sim_contains_str ricsim_g1_1 remote_hosts "policy-agent"
172             sim_contains_str ricsim_g2_1 remote_hosts "policy-agent"
173         fi
174
175         check_policy_agent_logs
176
177         store_logs          "${__httpx}__${interface}"
178     done
179 done
180
181 #### TEST COMPLETE ####
182
183 print_result
184
185 auto_clean_containers