c8d3f6e7116ea02bdbf37c499947f297606bea3a
[nonrtric.git] / test / auto-test / FTC2002.sh
1 #!/usr/bin/env bash
2
3 #  ============LICENSE_START===============================================
4 #  Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
5 #  Copyright (C) 2023 OpenInfra Foundation Europe. All rights reserved.
6 #  ========================================================================
7 #  Licensed under the Apache License, Version 2.0 (the "License");
8 #  you may not use this file except in compliance with the License.
9 #  You may obtain a copy of the License at
10 #
11 #       http://www.apache.org/licenses/LICENSE-2.0
12 #
13 #  Unless required by applicable law or agreed to in writing, software
14 #  distributed under the License is distributed on an "AS IS" BASIS,
15 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 #  See the License for the specific language governing permissions and
17 #  limitations under the License.
18 #  ============LICENSE_END=================================================
19 #
20
21 TC_ONELINE_DESCR="Testing southbound proxy for SDNC - docker only"
22
23 #App names to include in the test when running docker, space separated list
24 DOCKER_INCLUDED_IMAGES="RICSIM SDNC HTTPPROXY KUBEPROXY"
25 #App names to include in the test when running kubernetes, space separated list
26 KUBE_INCLUDED_IMAGES=""
27 #Pre-started 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=""
34
35 #Supported test environment profiles
36 SUPPORTED_PROFILES="ONAP-KOHN ONAP-LONDON ONAP-MONTREAL"
37 #Supported run modes
38 SUPPORTED_RUNMODES="DOCKER"
39
40 . ../common/testcase_common.sh $@
41
42 setup_testenvironment
43
44 #### TEST BEGIN ####
45
46 sim_generate_policy_uuid
47
48 #Test a1pms and simulator protocol versions (others are http only)
49 NB_TESTED_PROTOCOLS="HTTP HTTPS"
50 SB_TESTED_PROTOCOLS="HTTP HTTPS"
51
52 for __nb_httpx in $NB_TESTED_PROTOCOLS ; do
53     for __sb_httpx in $SB_TESTED_PROTOCOLS ; do
54
55         echo "#####################################################################"
56         echo "#####################################################################"
57         echo "### Testing SDNC using Northbound: $__nb_httpx and Southbound: $__sb_httpx"
58         echo "#####################################################################"
59         echo "#####################################################################"
60
61         if [ $__sb_httpx == "HTTPS" ]; then
62             deviation "Southbound https proxy is currently not supported"
63             break
64         fi
65
66
67         # Clean container and start all needed containers #
68         clean_environment
69
70         start_kube_proxy
71
72         start_http_proxy
73
74         start_ric_simulators ricsim_g1 1  OSC_2.1.0
75         start_ric_simulators ricsim_g2 1  STD_1.1.3
76         start_ric_simulators ricsim_g3 1  STD_2.0.0
77
78         start_sdnc
79         controller_api_wait_for_status_ok 200 ricsim_g1_1
80
81         if [ $__nb_httpx == "HTTPS" ]; then
82             # "Using secure ports towards SDNC"
83             if [[ "$SDNC_FEATURE_LEVEL" == *"NO_NB_HTTPS"* ]]; then
84                 deviation "SDNC does not support NB https"
85                 use_sdnc_http
86             else
87                 use_sdnc_https
88             fi
89         else
90             #"Using non-secure ports towards SDNC"
91             use_sdnc_http
92         fi
93
94         if [ $__sb_httpx == "HTTPS" ]; then
95             # "Using secure ports towards SDNC"
96             use_simulator_https
97             use_http_proxy_https
98         else
99             #"Using non-secure ports towards SDNC"
100             use_simulator_http
101             use_http_proxy_http
102         fi
103
104         echo -e $BOLD"Configure proxy in SDNC"$EBOLD
105         echo ""
106
107         if [ $__sb_httpx == "HTTPS" ]; then
108             echo "
109             sed  -i 's/a1Mediator.proxy.url=/a1Mediator.proxy.url=https:\/\/httpproxy:8433/g' /opt/onap/ccsdk/data/properties/a1-adapter-api-dg.properties
110             " | docker exec -i a1controller bash
111         else
112             echo "
113             sed  -i 's/a1Mediator.proxy.url=/a1Mediator.proxy.url=http:\/\/httpproxy:8080/g' /opt/onap/ccsdk/data/properties/a1-adapter-api-dg.properties
114             " | docker exec -i a1controller bash
115         fi
116
117         # Restart SDNC to use the updated config
118         stop_sdnc
119         start_stopped_sdnc
120
121         # API tests
122
123         controller_api_get_A1_policy_type 404 OSC ricsim_g1_1 1
124
125         sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
126
127
128         controller_api_get_A1_policy_ids 200 OSC ricsim_g1_1 1
129         controller_api_get_A1_policy_ids 200 STD ricsim_g2_1
130
131         controller_api_get_A1_policy_type 200 OSC ricsim_g1_1 1
132         controller_api_get_A1_policy_type 200 OSC ricsim_g1_1 1 testdata/OSC/sim_1.json
133         controller_api_get_A1_policy_type 404 OSC ricsim_g1_1 99
134
135         controller_api_put_A1_policy 202 OSC ricsim_g1_1 1 4000 testdata/OSC/pi1_template.json
136         controller_api_put_A1_policy 404 OSC ricsim_g1_1 5 1001 testdata/OSC/pi1_template.json
137
138         controller_api_put_A1_policy 201 STD ricsim_g2_1   5000 testdata/STD/pi1_template.json
139
140         controller_api_get_A1_policy_ids 200 OSC ricsim_g1_1 1 4000
141         controller_api_get_A1_policy_ids 200 STD ricsim_g2_1 5000
142
143         controller_api_get_A1_policy_status 200 OSC ricsim_g1_1 1 4000
144         controller_api_get_A1_policy_status 200 STD ricsim_g2_1 5000
145
146         if [[ $TEST_ENV_PROFILE =~ ^ORAN-[A-H]$  || $TEST_ENV_PROFILE =~ ^ONAP-[A-L]$ ]]; then
147             VAL='NOT IN EFFECT'
148             VAL2="false"
149         else
150             VAL='NOT_ENFORCED'
151             VAL2="OTHER_REASON"
152         fi
153         controller_api_get_A1_policy_status 200 OSC ricsim_g1_1 1 4000 "$VAL" "false"
154         controller_api_get_A1_policy_status 200 STD ricsim_g2_1 5000 "UNDEFINED"
155
156
157         deviation "SDNC does not return original response code from sim"
158         controller_api_delete_A1_policy 202 OSC ricsim_g1_1 1 4000
159
160         deviation "SDNC does not return original response code from sim"
161         controller_api_delete_A1_policy 204 STD ricsim_g2_1 5000
162
163         sim_contains_str ricsim_g1_1 remote_hosts httpproxy.nonrtric-docker-net
164         sim_contains_str ricsim_g2_1 remote_hosts httpproxy.nonrtric-docker-net
165
166         check_sdnc_logs
167
168         store_logs          "NB_"$__nb_httpx"_SB_"$__sb_httpx
169
170     done
171
172 done
173
174 #### TEST COMPLETE ####
175
176 print_result
177
178 auto_clean_environment