.consul*
.ext.consul*
.dockererr
-.sdnc-reply.json
-.sndc.payload.json
+.output.*
+.sdnc*
+.timer*
+++ /dev/null
-#!/usr/bin/env bash
-
-TC_ONELINE_DESCR="dockerirze the test, setup docker container for Policy Agent, cbs, consul, Near-RT RIC simulator"
-
-. ../common/testcase_common.sh $1 $2 $3
-
-#### TEST BEGIN ####
-
-clean_containers
-
-start_ric_simulator
-
-prepare_consul_config
-
-start_simulators
-
-consul_config_app "../simulator-group/consul_cbs/config.json"
-
-start_control_panel
-
-start_sdnc
-
-start_policy_agent
-
-check_policy_agent_logs
-
-#### TEST COMPLETE ####
-
-store_logs END
--- /dev/null
+#!/bin/bash
+
+# ============LICENSE_START===============================================
+# Copyright (C) 2020 Nordix Foundation. All rights reserved.
+# ========================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=================================================
+#
+
+
+TC_ONELINE_DESCR="Sanity test, create service and then create,update and delete a policy using http/https and Agent REST/DMAAP with/without SDNC controller"
+
+. ../common/testcase_common.sh $@
+. ../common/agent_api_functions.sh
+. ../common/ricsimulator_api_functions.sh
+
+#### TEST BEGIN ####
+
+#Local vars in test script
+##########################
+
+# Path to callback receiver
+CR_PATH="http://$CR_APP_NAME:$CR_EXTERNAL_PORT/callbacks"
+
+# Tested variants of REST/DMAAP/SDNC config
+TESTED_VARIANTS="REST DMAAP REST+SDNC DMAAP+SDNC"
+#Test agent and simulator protocol versions (others are http only)
+TESTED_PROTOCOLS="HTTP HTTPS"
+for __httpx in $TESTED_PROTOCOLS ; do
+ for interface in $TESTED_VARIANTS ; do
+
+ echo "#####################################################################"
+ echo "#####################################################################"
+ echo "### Testing agent: $interface using $__httpx"
+ echo "#####################################################################"
+ echo "#####################################################################"
+
+
+ # Clean container and start all needed containers #
+ clean_containers
+
+ if [ $__httpx == "HTTPS" ]; then
+ #"Using secure ports towards simulators"
+ use_simulator_https
+ else
+ #"Using non-secure ports towards simulators"
+ use_simulator_http
+ fi
+
+ start_ric_simulators ricsim_g1 1 OSC_2.1.0
+ start_ric_simulators ricsim_g2 1 STD_1.1.3
+
+ start_mr
+
+ if [ $__httpx == "HTTPS" ]; then
+
+ deviation "TR17 - agent cannot use https towards MR - test combo $interface and $__httpx"
+ #This is the intention
+ #echo "Using secure ports between agent and MR"
+ #use_mr_https
+
+ #Work around until it is fixed
+ #"Using non-secure ports between agent and MR"
+ use_mr_http
+ else
+ #"Using non-secure ports between agent and MR"
+ use_mr_http
+ fi
+
+ start_cr
+
+ if [ $interface == "SDNC" ]; then
+
+ start_sdnc
+
+ if [ $__httpx == "HTTPS" ]; then
+ # "Using secure ports towards SDNC"
+ use_sdnc_https
+ else
+ #"Using non-secure ports towards SDNC"
+ use_sdnc_http
+ fi
+ fi
+
+ start_consul_cbs
+
+ if [ $interface == "REST+SDNC" ] || [ $interface == "DMAAP+SDNC" ]; then
+ prepare_consul_config SDNC ".consul_config.json"
+ else
+ prepare_consul_config NOSDNC ".consul_config.json"
+ fi
+
+ consul_config_app ".consul_config.json"
+
+ start_control_panel
+
+ if [ $interface == "REST+SDNC" ] || [ $interface == "DMAAP+SDNC" ]; then
+ start_sdnc
+ fi
+
+ start_policy_agent
+
+ set_agent_debug
+
+ if [ $interface == "DMAAP" ] || [ $interface == "DMAAP+SDNC" ]; then
+ use_agent_dmaap
+ else
+ if [ $__httpx == "HTTPS" ]; then
+ echo "Using secure ports towards the agent"
+ use_agent_rest_https
+ else
+ echo "Using non-secure ports towards the agent"
+ use_agent_rest_http
+ fi
+ fi
+
+
+ cr_equal received_callbacks 0
+ mr_equal requests_submitted 0
+
+ sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
+
+ api_equal json:rics 2 60
+
+ api_equal json:policy_schemas 2 120
+
+ api_equal json:policy_types 2
+
+ api_equal json:policies 0
+
+ api_equal json:policy_ids 0
+
+ echo "############################################"
+ echo "############## Health check ################"
+ echo "############################################"
+
+ api_get_status 200
+
+ echo "############################################"
+ echo "##### Service registry and supervision #####"
+ echo "############################################"
+
+ api_put_service 201 "serv1" 1000 "$CR_PATH/1"
+
+ api_get_service_ids 200 "serv1"
+
+ api_put_services_keepalive 200 "serv1"
+
+ echo "############################################"
+ echo "############## RIC Repository ##############"
+ echo "############################################"
+
+ api_get_rics 200 NOTYPE "ricsim_g1_1:me1_ricsim_g1_1,me2_ricsim_g1_1:1:AVAILABLE ricsim_g2_1:me1_ricsim_g2_1,me2_ricsim_g2_1:EMPTYTYPE:AVAILABLE"
+
+ echo "############################################"
+ echo "########### A1 Policy Management ###########"
+ echo "############################################"
+
+ api_put_policy 201 "serv1" ricsim_g1_1 1 5000 testdata/OSC/pi1_template.json
+ api_put_policy 200 "serv1" ricsim_g1_1 1 5000 testdata/OSC/pi1_template.json
+
+ api_put_policy 201 "serv1" ricsim_g2_1 NOTYPE 5100 testdata/STD/pi1_template.json
+ api_put_policy 200 "serv1" ricsim_g2_1 NOTYPE 5100 testdata/STD/pi1_template.json
+
+ api_delete_policy 204 5000
+
+ api_delete_policy 204 5100
+
+ api_equal json:policies 0
+
+ api_equal json:policy_ids 0
+
+ cr_equal received_callbacks 0
+
+ if [ $interface == "DMAAP" ] || [ $interface == "DMAAP+SDNC" ]; then
+ VAL=11 # Number of Agent API calls over DMAAP
+ mr_equal requests_fetched $VAL
+ mr_equal responses_submitted $VAL
+ mr_equal responses_fetched $VAL
+ mr_equal current_requests 0
+ mr_equal current_responses 0
+ else
+ mr_equal requests_submitted 0
+ fi
+
+ if [ $interface == "REST+SDNC" ] || [ $interface == "DMAAP+SDNC" ]; then
+ sim_contains_str ricsim_g1_1 remote_hosts "a1-controller"
+ sim_contains_str ricsim_g2_1 remote_hosts "a1-controller"
+ else
+ sim_contains_str ricsim_g1_1 remote_hosts "policy-agent"
+ sim_contains_str ricsim_g2_1 remote_hosts "policy-agent"
+ fi
+
+ check_policy_agent_logs
+ check_control_panel_logs
+
+ store_logs "${__httpx}__${interface}"
+
+ done
+
+done
+
+#### TEST COMPLETE ####
+
+
+print_result
+
+auto_clean_containers
-#!/usr/bin/env bash
+#!/bin/bash
# ============LICENSE_START===============================================
# Copyright (C) 2020 Nordix Foundation. All rights reserved.
# ============LICENSE_END=================================================
#
-TC_ONELINE_DESCR="Basic use case, register rapp, create/update policy, delete policy, de-register rapp using both STD and OSC interface over REST and Dmaap"
+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"
. ../common/testcase_common.sh $@
. ../common/agent_api_functions.sh
# Create policies
use_agent_rest_http
-api_put_service 201 "rapp1" 3600 "$CR_PATH/1"
+api_put_service 201 "service1" 3600 "$CR_PATH/1"
-api_put_policy 201 "rapp1" ricsim_g1_1 1 2000 testdata/OSC/pi1_template.json 1
+api_put_policy 201 "service1" ricsim_g1_1 1 2000 testdata/OSC/pi1_template.json 1
sim_equal ricsim_g1_1 num_instances 1
use_agent_dmaap
-api_put_policy 201 "rapp1" ricsim_g1_1 1 3000 testdata/OSC/pi1_template.json 1
+api_put_policy 201 "service1" ricsim_g1_1 1 3000 testdata/OSC/pi1_template.json 1
sim_equal ricsim_g1_1 num_instances 2
use_agent_rest_http
-api_put_policy 201 "rapp1" ricsim_g2_1 NOTYPE 2100 testdata/STD/pi1_template.json 1
+api_put_policy 201 "service1" ricsim_g2_1 NOTYPE 2100 testdata/STD/pi1_template.json 1
sim_equal ricsim_g2_1 num_instances 1
use_agent_dmaap
-api_put_policy 201 "rapp1" ricsim_g2_1 NOTYPE 3100 testdata/STD/pi1_template.json 1
+api_put_policy 201 "service1" ricsim_g2_1 NOTYPE 3100 testdata/STD/pi1_template.json 1
sim_equal ricsim_g2_1 num_instances 2
#Update policies
use_agent_rest_http
-api_put_service 200 "rapp1" 3600 "$CR_PATH/callbacks/1"
+api_put_service 200 "service1" 3600 "$CR_PATH/callbacks/1"
-api_put_policy 200 "rapp1" ricsim_g1_1 1 2000 testdata/OSC/pi1_template.json 1
+api_put_policy 200 "service1" ricsim_g1_1 1 2000 testdata/OSC/pi1_template.json 1
sim_equal ricsim_g1_1 num_instances 2
use_agent_dmaap
-api_put_policy 200 "rapp1" ricsim_g1_1 1 3000 testdata/OSC/pi1_template.json 1
+api_put_policy 200 "service1" ricsim_g1_1 1 3000 testdata/OSC/pi1_template.json 1
sim_equal ricsim_g1_1 num_instances 2
use_agent_rest_http
-api_put_policy 200 "rapp1" ricsim_g2_1 NOTYPE 2100 testdata/STD/pi1_template.json 1
+api_put_policy 200 "service1" ricsim_g2_1 NOTYPE 2100 testdata/STD/pi1_template.json 1
sim_equal ricsim_g2_1 num_instances 2
use_agent_dmaap
-api_put_policy 200 "rapp1" ricsim_g2_1 NOTYPE 3100 testdata/STD/pi1_template.json 1
+api_put_policy 200 "service1" ricsim_g2_1 NOTYPE 3100 testdata/STD/pi1_template.json 1
sim_equal ricsim_g2_1 num_instances 2
sim_equal ricsim_g1_1 num_instances 0
sim_equal ricsim_g2_1 num_instances 0
+# Check remote host access to simulator
+
+sim_contains_ste ricsim_g1_1 hosts "policy-agent"
+sim_contains_ste ricsim_g2_1 hosts "policy-agent"
+
# Check policy removal
use_agent_rest_http
api_get_policy 404 2000
# Remove the service
use_agent_dmaap
-api_delete_services 204 "rapp1"
+api_delete_services 204 "service1"
-api_get_services 404 "rapp1"
+api_get_services 404 "service1"
store_logs END
-print_result
\ No newline at end of file
+print_result
+
+auto_clean_containers
\ No newline at end of file
-#!/usr/bin/env bash
+#!/bin/bash
# ============LICENSE_START===============================================
# Copyright (C) 2020 Nordix Foundation. All rights reserved.
. ../common/testcase_common.sh $@
. ../common/agent_api_functions.sh
. ../common/ricsimulator_api_functions.sh
-. ../common/controller_api_functions.sh
#### TEST BEGIN ####
# Tested variants of REST/DMAAP/SDNC config
TESTED_VARIANTS="REST DMAAP REST+SDNC DMAAP+SDNC"
-
#Test agent and simulator protocol versions (others are http only)
TESTED_PROTOCOLS="HTTP HTTPS"
-
for __httpx in $TESTED_PROTOCOLS ; do
for interface in $TESTED_VARIANTS ; do
echo "#####################################################################"
echo "#####################################################################"
- echo "### Testing agent: "$interface
+ echo "### Testing agent: $interface using $__httpx"
echo "#####################################################################"
echo "#####################################################################"
clean_containers
if [ $__httpx == "HTTPS" ]; then
- echo "Using secure ports towards simulators"
+ #"Using secure ports towards simulators"
use_simulator_https
else
- echo "Using non-secure ports towards simulators"
+ #"Using non-secure ports towards simulators"
use_simulator_http
fi
start_mr
+ if [ $__httpx == "HTTPS" ]; then
+
+ deviation "TR17 - agent cannot use https towards MR - test combo $interface and $__httpx"
+ #This is the intention
+ #echo "Using secure ports between agent and MR"
+ #use_mr_https
+
+ #Work around until it is fixed
+ #"Using non-secure ports between agent and MR"
+ use_mr_http
+ else
+ #"Using non-secure ports between agent and MR"
+ use_mr_http
+ fi
+
start_cr
+ if [ $interface == "REST+SDNC" ] || [ $interface == "DMAAP+SDNC" ]; then
+
+ start_sdnc
+
+ if [ $__httpx == "HTTPS" ]; then
+ # "Using secure ports towards SDNC"
+ use_sdnc_https
+ else
+ #"Using non-secure ports towards SDNC"
+ use_sdnc_http
+ fi
+ fi
+
start_consul_cbs
if [ $interface == "REST+SDNC" ] || [ $interface == "DMAAP+SDNC" ]; then
start_control_panel
- if [ $interface == "REST+SDNC" ] || [ $interface == "DMAAP+SDNC" ]; then
- start_sdnc
- fi
-
start_policy_agent
+ set_agent_debug
+
if [ $interface == "DMAAP" ] || [ $interface == "DMAAP+SDNC" ]; then
use_agent_dmaap
else
if [ $__httpx == "HTTPS" ]; then
- echo "Using secure ports towards the agent"
+ #"Using secure ports towards the agent"
use_agent_rest_https
else
- echo "Using non-secure ports towards the agent"
+ #"Using non-secure ports towards the agent"
use_agent_rest_http
fi
fi
echo "##### Service registry and supervision #####"
echo "############################################"
- api_get_services 404 "rapp1"
+ api_get_services 404 "service1"
- api_put_service 201 "rapp1" 1000 "$CR_PATH/1"
+ api_put_service 201 "service1" 1000 "$CR_PATH/1"
- api_put_service 200 "rapp1" 2000 "$CR_PATH/1"
+ api_put_service 200 "service1" 2000 "$CR_PATH/1"
- api_put_service 400 "rapp2" -1 "$CR_PATH/2"
+ api_put_service 400 "service2" -1 "$CR_PATH/2"
- api_put_service 400 "rapp2" "wrong" "$CR_PATH/2"
+ api_put_service 400 "service2" "wrong" "$CR_PATH/2"
- api_put_service 400 "rapp2" 100 "/test"
+ api_put_service 400 "service2" 100 "/test"
- api_put_service 400 "rapp2" 100 "test-path"
+ api_put_service 400 "service2" 100 "test-path"
- api_put_service 201 "rapp2" 300 "ftp://localhost:80/test"
+ api_put_service 201 "service2" 300 "ftp://localhost:80/test"
- api_get_services 200 "rapp1" "rapp1" 2000 "$CR_PATH/1"
+ api_get_services 200 "service1" "service1" 2000 "$CR_PATH/1"
- api_get_service_ids 200 "rapp1" "rapp2"
+ api_get_service_ids 200 "service1" "service2"
- api_put_service 201 "rapp3" 5000 "$CR_PATH/3"
+ api_put_service 201 "service3" 5000 "$CR_PATH/3"
- api_get_service_ids 200 "rapp1" "rapp2" "rapp3"
+ api_get_service_ids 200 "service1" "service2" "service3"
- api_get_services 200 "rapp1" "rapp1" 2000 "$CR_PATH/1"
+ api_get_services 200 "service1" "service1" 2000 "$CR_PATH/1"
- api_get_services 200 NOSERVICE "rapp1" 2000 "$CR_PATH/1" "rapp2" 300 "ftp://localhost:80/test" "rapp3" 5000 "$CR_PATH/3"
+ api_get_services 200 NOSERVICE "service1" 2000 "$CR_PATH/1" "service2" 300 "ftp://localhost:80/test" "service3" 5000 "$CR_PATH/3"
api_get_services 200
- echo -e $YELLOW"TR2"$EYELLOW
- api_put_services_keepalive 201 "rapp1"
- echo -e $YELLOW"TR2"$EYELLOW
- api_put_services_keepalive 201 "rapp3"
+ deviation "TR2 - Keep alive shall return 200/201 according to doc, only 200 works - test combo $interface and $__httpx"
+ #The below should work, keept here until fixed or other decision made
+ #api_put_services_keepalive 201 "service1"
+ #Using the below until decision
+ api_put_services_keepalive 200 "service1"
+
+ deviation "TR2 - Keep alive shall return 200/201 according to doc, only 200 works - test combo $interface and $__httpx"
+ #The below should work, keept here until fixed or other decision made
+ #api_put_services_keepalive 201 "service3"
+ #Using the below until decision
+ api_put_services_keepalive 200 "service3"
- api_put_services_keepalive 200 "rapp1"
+ api_put_services_keepalive 200 "service1"
- api_put_services_keepalive 200 "rapp3"
+ api_put_services_keepalive 200 "service3"
- api_put_services_keepalive 404 "rapp5"
+ api_put_services_keepalive 404 "service5"
- api_get_service_ids 200 "rapp1" "rapp2" "rapp3"
+ api_get_service_ids 200 "service1" "service2" "service3"
- api_delete_services 204 "rapp1"
+ api_delete_services 204 "service1"
- api_get_service_ids 200 "rapp2" "rapp3"
+ api_get_service_ids 200 "service2" "service3"
- api_put_service 201 "rapp1" 50 "$CR_PATH/1"
+ api_put_service 201 "service1" 50 "$CR_PATH/1"
- api_get_service_ids 200 "rapp1" "rapp2" "rapp3"
+ api_get_service_ids 200 "service1" "service2" "service3"
- api_delete_services 204 "rapp1"
- api_delete_services 204 "rapp3"
+ api_delete_services 204 "service1"
+ api_delete_services 204 "service3"
api_equal json:services 1
- api_delete_services 204 "rapp2"
+ api_delete_services 204 "service2"
api_equal json:services 0
echo "############################################"
echo "########### A1 Policy Management ###########"
echo "############################################"
- echo -e $YELLOW"TR9"$EYELLOW
+ deviation "TR9 - agent modify the type with type id - test combo $interface and $__httpx"
+ #Behaviour accepted for now
api_get_policy_schema 200 1 testdata/OSC/1-agent-modified.json
- echo -e $YELLOW"TR9"$EYELLOW
+ deviation "TR9 - agent modify the type with type id - test combo $interface and $__httpx"
+ #Behaviour accepted for now
api_get_policy_schema 200 2 testdata/OSC/2-agent-modified.json
api_get_policy_schema 404 3
- echo -e $YELLOW"TR9"$EYELLOW
+ deviation "TR9 - agent modify the type with type id - test combo $interface and $__httpx"
+ #Behaviour accepted for now
api_get_policy_schemas 200 NORIC testdata/OSC/1-agent-modified.json testdata/OSC/2-agent-modified.json NOFILE
- echo -e $YELLOW"TR9"$EYELLOW
+ deviation "TR9 - agent modify the type with type id - test combo $interface and $__httpx"
+ #Behaviour accepted for now
api_get_policy_schemas 200 ricsim_g1_1 testdata/OSC/1-agent-modified.json testdata/OSC/2-agent-modified.json
api_get_policy_schemas 200 ricsim_g2_1 NOFILE
- api_put_service 201 "rapp10" 3600 "$CR_PATH/1"
- echo -e $YELLOW"TR10"$EYELLOW
- api_put_policy 400 "unregistered-r-app" ricsim_g1_1 1 2000 testdata/OSC/pi1_template.json
+ api_put_service 201 "service10" 3600 "$CR_PATH/1"
- api_put_policy 201 "rapp10" ricsim_g1_1 1 5000 testdata/OSC/pi1_template.json
- api_put_policy 200 "rapp10" ricsim_g1_1 1 5000 testdata/OSC/pi1_template.json
+ deviation "TR10 - agent allows policy creation on unregistered service (orig problem) - test combo $interface and $__httpx"
+ #Kept until decison
+ #api_put_policy 400 "unregistered-service" ricsim_g1_1 1 2000 testdata/OSC/pi1_template.json
+ #Allow 201 for now
+ api_put_policy 201 "unregistered-service" ricsim_g1_1 1 2000 testdata/OSC/pi1_template.json
- api_put_policy 201 "rapp10" ricsim_g2_1 NOTYPE 5100 testdata/STD/pi1_template.json
- api_put_policy 200 "rapp10" ricsim_g2_1 NOTYPE 5100 testdata/STD/pi1_template.json
+ api_put_policy 201 "service10" ricsim_g1_1 1 5000 testdata/OSC/pi1_template.json
+ api_put_policy 200 "service10" ricsim_g1_1 1 5000 testdata/OSC/pi1_template.json
+
+ api_put_policy 201 "service10" ricsim_g2_1 NOTYPE 5100 testdata/STD/pi1_template.json
+ api_put_policy 200 "service10" ricsim_g2_1 NOTYPE 5100 testdata/STD/pi1_template.json
VAL='NOT IN EFFECT'
api_get_policy_status 200 5000 OSC "$VAL" "false"
api_get_policy_status 200 5100 STD "UNDEFINED"
- echo -e $YELLOW"TR10"$EYELLOW
- api_equal json:policies 2
- echo -e $YELLOW"TR10"$EYELLOW
- api_equal json:policy_ids 2
- echo -e $YELLOW"TR10"$EYELLOW
- api_get_policy_ids 200 NORIC NOSERVICE NOTYPE 5000 5100
- echo -e $YELLOW"TR10"$EYELLOW
- api_get_policy_ids 200 ricsim_g1_1 NOSERVICE NOTYPE 5000
+ deviation "TR10 - agent allows policy creation on unregistered service (side effect of orig. problem)- test combo $interface and $__httpx"
+ #kept until decision
+ #api_equal json:policies 2
+ #Allow 3 for now
+ api_equal json:policies 3
+
+ deviation "TR10 - agent allows policy creation on unregistered service (side effect of orig. problem)- test combo $interface and $__httpx"
+ #kept until decision
+ #api_equal json:policy_ids 2
+ #Allow 3 for now
+ api_equal json:policy_ids 3
+
+ deviation "TR10 - agent allows policy creation on unregistered service (side effect of orig. problem)- test combo $interface and $__httpx"
+ #kept until decision
+ #api_get_policy_ids 200 NORIC NOSERVICE NOTYPE 5000 5100
+ #Allow policy create with unregistered service for now
+ api_get_policy_ids 200 NORIC NOSERVICE NOTYPE 5000 5100 2000
+
+
+ deviation "TR10 - agent allows policy creation on unregistered service (side effect of orig. problem)- test combo $interface and $__httpx"
+ #kept until decision
+ #api_get_policy_ids 200 ricsim_g1_1 NOSERVICE NOTYPE 5000
+ #Allow policy create with unregistered service for now
+ api_get_policy_ids 200 ricsim_g1_1 NOSERVICE NOTYPE 5000 2000
api_get_policy_ids 200 ricsim_g2_1 NOSERVICE NOTYPE 5100
- api_get_policy_ids 200 NORIC "rapp10" NOTYPE 5000 5100
- echo -e $YELLOW"TR10"$EYELLOW
- api_get_policy_ids 200 NORIC NOSERVICE 1 5000
+ api_get_policy_ids 200 NORIC "service10" NOTYPE 5000 5100
+
+ deviation "TR10 - agent allows policy creation on unregistered service (side effect of orig. problem)- test combo $interface and $__httpx"
+ #kept until decision
+ #api_get_policy_ids 200 NORIC NOSERVICE 1 5000
+ #Allow policy create with unregistered service for now
+ api_get_policy_ids 200 NORIC NOSERVICE 1 5000 2000
api_get_policy_ids 200 NORIC NOSERVICE 2 NOID
api_get_policy 200 5100 testdata/STD/pi1_template.json
-
- api_get_policies 200 ricsim_g1_1 "rapp10" 1 5000 ricsim_g1_1 "rapp10" 1 testdata/OSC/pi1_template.json
-
-
+ api_get_policies 200 ricsim_g1_1 "service10" 1 5000 ricsim_g1_1 "service10" 1 testdata/OSC/pi1_template.json
- echo -e $YELLOW"TR10"$EYELLOW
- api_delete_policy 404 2000
+ deviation "TR10 - agent allows policy creation on unregistered service (side effect of orig. problem)- test combo $interface and $__httpx"
+ #kept until decision
+ #api_delete_policy 404 2000
+ #Allow policy create with unregistered service for now
+ api_delete_policy 204 2000
api_delete_policy 404 1500
mr_equal requests_submitted 0
fi
+ if [ $interface == "REST+SDNC" ] || [ $interface == "DMAAP+SDNC" ]; then
+ sim_contains_str ricsim_g1_1 remote_hosts "a1-controller"
+ sim_contains_str ricsim_g2_1 remote_hosts "a1-controller"
+ else
+ sim_contains_str ricsim_g1_1 remote_hosts "policy-agent"
+ sim_contains_str ricsim_g2_1 remote_hosts "policy-agent"
+ fi
+
check_policy_agent_logs
check_control_panel_logs
- store_logs $interface
+ store_logs "${__httpx}__${interface}"
done
-#!/usr/bin/env bash
+#!/bin/bash
# ============LICENSE_START===============================================
# Copyright (C) 2020 Nordix Foundation. All rights reserved.
start_policy_agent
+set_agent_debug
+
use_agent_rest_http
#Verify no callbacks or dmaap messages has been sent
#Print simulator interface version
sim_print ricsim_g1_1 interface
-api_put_service 201 "rapp1" 15 "$CR_PATH/rapp1"
+api_put_service 201 "service1" 15 "$CR_PATH/service1"
-api_get_services 200 "rapp1" 15 "$CR_PATH/rapp1"
+api_get_services 200 "service1" "service1" 15 "$CR_PATH/service1"
-api_put_service 201 "rapp2" 120 "$CR_PATH/rapp2"
+api_put_service 201 "service2" 120 "$CR_PATH/service2"
-api_get_services 200 "rapp2" 120 "$CR_PATH/rapp2"
+api_get_services 200 "service2" "service2" 120 "$CR_PATH/service2"
-api_put_service 200 "rapp1" 50 "$CR_PATH/rapp1"
-api_put_service 200 "rapp2" 180 "$CR_PATH/rapp2"
+api_put_service 200 "service1" 50 "$CR_PATH/service1"
+api_put_service 200 "service2" 180 "$CR_PATH/service2"
-api_get_services 200 "rapp1" 50 "$CR_PATH/rapp1"
-api_get_services 200 "rapp2" 180 "$CR_PATH/rapp2"
+api_get_services 200 "service1" "service1" 50 "$CR_PATH/service1"
+api_get_services 200 "service2" "service2" 180 "$CR_PATH/service2"
-api_get_service_ids 200 "rapp1" "rapp2"
+api_get_service_ids 200 "service1" "service2"
sleep_wait 30 "Waiting for keep alive timeout"
-api_get_services 200 "rapp1" 50 "$CR_PATH/rapp1"
-api_get_services 200 "rapp2" 180 "$CR_PATH/rapp2"
+api_get_services 200 "service1" "service1" 50 "$CR_PATH/service1"
+api_get_services 200 "service2" "service2" 180 "$CR_PATH/service2"
sleep_wait 100 "Waiting for keep alive timeout"
-api_get_services 404 "rapp1"
-api_get_services 200 "rapp2" 180 "$CR_PATH/rapp2"
+api_get_services 404 "service1"
+api_get_services 200 "service2" "service2" 180 "$CR_PATH/service2"
-api_delete_services 204 "rapp2"
+api_delete_services 204 "service2"
-api_get_services 404 "rapp1"
-api_get_services 404 "rapp2"
+api_get_services 404 "service1"
+api_get_services 404 "service2"
-api_put_service 201 "rapp3" 60 "$CR_PATH/rapp3"
+api_put_service 201 "service3" 60 "$CR_PATH/service3"
-api_get_services 200 "rapp3" 60 "$CR_PATH/rapp3"
+api_get_services 200 "service3" "service3" 60 "$CR_PATH/service3"
sleep_wait 30 "Waiting for keep alive timeout"
-api_put_service 200 "rapp3" 60 "$CR_PATH/rapp3"
+api_put_service 200 "service3" 60 "$CR_PATH/service3"
sleep_wait 100 "Waiting for keep alive timeout"
-api_get_services 404 "rapp3"
+api_get_services 404 "service3"
-api_put_service 201 "rapp4" 120 "$CR_PATH/rapp4"
+api_put_service 201 "service4" 120 "$CR_PATH/service4"
sleep_wait 60 "Waiting for keep alive timeout"
-api_get_services 200 "rapp4" 120 "$CR_PATH/rapp4"
+api_get_services 200 "service4" "service4" 120 "$CR_PATH/service4"
-api_put_services_keepalive 200 "rapp4"
+api_put_services_keepalive 200 "service4"
sleep_wait 90 "Waiting for keep alive timeout"
-api_get_services 200 "rapp4" 120 "$CR_PATH/rapp4"
+api_get_services 200 "service4" "service4" 120 "$CR_PATH/service4"
-api_delete_services 204 "rapp4"
+api_delete_services 204 "service4"
-api_get_services 404 "rapp4"
+api_get_services 404 "service4"
-api_get_services 404 "rapp1"
-api_get_services 404 "rapp2"
-api_get_services 404 "rapp3"
+api_get_services 404 "service1"
+api_get_services 404 "service2"
+api_get_services 404 "service3"
api_get_service_ids 200
-api_delete_services 404 "rapp1"
-api_delete_services 404 "rapp2"
-api_delete_services 404 "rapp3"
-api_delete_services 404 "rapp4"
+api_delete_services 404 "service1"
+api_delete_services 404 "service2"
+api_delete_services 404 "service3"
+api_delete_services 404 "service4"
-api_put_services_keepalive 404 "rapp1"
-api_put_services_keepalive 404 "rapp2"
-api_put_services_keepalive 404 "rapp3"
-api_put_services_keepalive 404 "rapp4"
+api_put_services_keepalive 404 "service1"
+api_put_services_keepalive 404 "service2"
+api_put_services_keepalive 404 "service3"
+api_put_services_keepalive 404 "service4"
api_get_service_ids 200
-
-
+deviation "TR18 Agents sends callback with empty body"
cr_equal received_callbacks 0
mr_equal requests_submitted 0
--- /dev/null
+#!/bin/bash
+
+# ============LICENSE_START===============================================
+# Copyright (C) 2020 Nordix Foundation. All rights reserved.
+# ========================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=================================================
+#
+
+
+TC_ONELINE_DESCR="Sample tests of the SDNC A1 controller restconf API using http/https (no agent)"
+
+. ../common/testcase_common.sh $@
+. ../common/controller_api_functions.sh
+. ../common/ricsimulator_api_functions.sh
+
+#### TEST BEGIN ####
+
+#Test agent and simulator protocol versions (others are http only)
+TESTED_PROTOCOLS="HTTP HTTPS"
+
+for __httpx in $TESTED_PROTOCOLS ; do
+
+ echo "#####################################################################"
+ echo "#####################################################################"
+ echo "### Testing SDNC using: $__httpx"
+ echo "#####################################################################"
+ echo "#####################################################################"
+
+
+ # Clean container and start all needed containers #
+ clean_containers
+
+ start_ric_simulators ricsim_g1 1 OSC_2.1.0
+ start_ric_simulators ricsim_g2 1 STD_1.1.3
+
+ start_sdnc
+
+ if [ $__httpx == "HTTPS" ]; then
+ # "Using secure ports towards SDNC"
+ use_sdnc_https
+ else
+ #"Using non-secure ports towards SDNC"
+ use_sdnc_http
+ fi
+
+ # API tests
+
+ controller_api_get_A1_policy_type 404 OSC ricsim_g1_1 1
+
+ sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
+
+
+ controller_api_get_A1_policy_ids 200 OSC ricsim_g1_1 1
+ controller_api_get_A1_policy_ids 200 STD ricsim_g2_1
+
+ controller_api_get_A1_policy_type 200 OSC ricsim_g1_1 1
+ controller_api_get_A1_policy_type 200 OSC ricsim_g1_1 1 testdata/OSC/sim_1.json
+ controller_api_get_A1_policy_type 404 OSC ricsim_g1_1 99
+
+ controller_api_put_A1_policy 202 OSC ricsim_g1_1 1 4000 testdata/OSC/pi1_template.json
+ controller_api_put_A1_policy 404 OSC ricsim_g1_1 5 1001 testdata/OSC/pi1_template.json
+ controller_api_put_A1_policy 201 STD ricsim_g2_1 5000 testdata/STD/pi1_template.json
+
+ controller_api_get_A1_policy_ids 200 OSC ricsim_g1_1 1 4000
+ controller_api_get_A1_policy_ids 200 STD ricsim_g2_1 5000
+
+ controller_api_get_A1_policy_status 200 OSC ricsim_g1_1 1 4000
+ controller_api_get_A1_policy_status 200 STD ricsim_g2_1 5000
+
+ VAL='NOT IN EFFECT'
+ controller_api_get_A1_policy_status 200 OSC ricsim_g1_1 1 4000 "$VAL" "false"
+ controller_api_get_A1_policy_status 200 STD ricsim_g2_1 5000 "UNDEFINED"
+
+ controller_api_delete_A1_policy 202 OSC ricsim_g1_1 1 4000
+ controller_api_delete_A1_policy 204 STD ricsim_g2_1 5000
+
+ store_logs $__httpx
+
+done
+
+#### TEST COMPLETE ####
+
+print_result
+
+auto_clean_containers
\ No newline at end of file
-#!/usr/bin/env bash
+#!/bin/bash
# ============LICENSE_START===============================================
# Copyright (C) 2020 Nordix Foundation. All rights reserved.
# Path to callback receiver
CR_PATH="http://$CR_APP_NAME:$CR_EXTERNAL_PORT/callbacks"
-clean_containers
+# Tested variants of REST/DMAAP/SDNC config
+TESTED_VARIANTS="REST DMAAP REST+SDNC DMAAP+SDNC DMAAP_BATCH DMAAP_BATCH+SDNC"
+#Test agent and simulator protocol versions (others are http only)
+TESTED_PROTOCOLS="HTTP HTTPS"
+for __httpx in $TESTED_PROTOCOLS ; do
+ for interface in $TESTED_VARIANTS ; do
-start_ric_simulators ricsim_g1 4 OSC_2.1.0
+ echo "#####################################################################"
+ echo "#####################################################################"
+ echo "### Testing agent: "$interface" and "$__httpx
+ echo "#####################################################################"
+ echo "#####################################################################"
-start_mr
-start_cr
+ # Clean container and start all needed containers #
+ clean_containers
-start_consul_cbs
+ if [ $__httpx == "HTTPS" ]; then
+ echo "Using secure ports towards simulators"
+ use_simulator_https
+ else
+ echo "Using non-secure ports towards simulators"
+ use_simulator_http
+ fi
-prepare_consul_config NOSDNC ".consul_config.json"
-consul_config_app ".consul_config.json"
+ start_ric_simulators ricsim_g1 4 OSC_2.1.0
-start_control_panel
+ start_ric_simulators ricsim_g2 4 STD_1.1.3
+ start_mr
-start_policy_agent
+ start_cr
-use_agent_rest_http
+ start_consul_cbs
-api_get_status 200
+ if [[ $interface = *"SDNC"* ]]; then
+ start_sdnc
+ prepare_consul_config SDNC ".consul_config.json"
+ else
+ prepare_consul_config NOSDNC ".consul_config.json"
+ fi
-sim_print ricsim_g1_1 interface
+ consul_config_app ".consul_config.json"
-sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
+ start_control_panel
-api_equal json:policy_types 1 120 #Wait for the agent to refresh types from the simulator
+ start_policy_agent
-api_put_service 201 "rapp1" 3600 "$CR_PATH/callbacks/1"
+ set_agent_debug
-api_put_policy 201 "rapp1" ricsim_g1_1 1 2000 testdata/OSC/pi1_template.json 10000
+ if [[ $interface == *"DMAAP"* ]]; then
+ use_agent_dmaap
+ else
+ if [ $__httpx == "HTTPS" ]; then
+ echo "Using secure ports towards the agent"
+ use_agent_rest_https
+ else
+ echo "Using non-secure ports towards the agent"
+ use_agent_rest_http
+ fi
+ fi
-sim_equal ricsim_g1_1 num_instances 10000
+ api_get_status 200
-sim_post_delete_instances 200 ricsim_g1_1
+ sim_print ricsim_g1_1 interface
-sim_equal ricsim_g1_1 num_instances 0
+ sim_print ricsim_g2_1 interface
-sim_equal ricsim_g1_1 num_instances 10000 300
+ sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
-api_delete_policy 204 2435
+ api_equal json:policy_types 2 120 #Wait for the agent to refresh types from the simulator
-api_delete_policy 204 8693
+ api_put_service 201 "rapp1" 3600 "$CR_PATH/callbacks/1"
-sim_post_delete_instances 200 ricsim_g1_1
+ START_ID=2000
+ NUM_POLICIES=10000
-sim_post_delete_instances 200 ricsim_g1_1
+ if [[ $interface == *"BATCH"* ]]; then
+ api_put_policy_batch 201 "rapp1" ricsim_g1_1 1 $START_ID testdata/OSC/pi1_template.json $NUM_POLICIES
+ else
+ api_put_policy 201 "rapp1" ricsim_g1_1 1 $START_ID testdata/OSC/pi1_template.json $NUM_POLICIES
+ fi
-sim_equal ricsim_g1_1 num_instances 9998 300
+ sim_equal ricsim_g1_1 num_instances 10000
+
+ sim_post_delete_instances 200 ricsim_g1_1
+
+ sim_equal ricsim_g1_1 num_instances 0
+
+ sim_equal ricsim_g1_1 num_instances 10000 300
+
+ START_ID=$(($START_ID+$NUM_POLICIES))
+
+ if [[ $interface == *"BATCH"* ]]; then
+ api_put_policy_batch 201 "rapp1" ricsim_g2_1 NOTYPE $START_ID testdata/STD/pi1_template.json $NUM_POLICIES
+ else
+ api_put_policy 201 "rapp1" ricsim_g2_1 NOTYPE $START_ID testdata/STD/pi1_template.json $NUM_POLICIES
+ fi
+ sim_equal ricsim_g2_1 num_instances 10000
+
+ sim_post_delete_instances 200 ricsim_g2_1
+
+ sim_equal ricsim_g2_1 num_instances 0
+
+ sim_equal ricsim_g2_1 num_instances 10000 300
+
+ api_delete_policy 204 2435
+
+ api_delete_policy 204 8693
+
+ sim_post_delete_instances 200 ricsim_g1_1
+
+ sim_equal ricsim_g1_1 num_instances 9998 300
+
+ api_delete_policy 204 12435
+
+ api_delete_policy 204 18693
+
+ api_delete_policy 204 18697
+
+ sim_post_delete_instances 200 ricsim_g2_1
+
+ sim_equal ricsim_g1_1 num_instances 9998 300
+
+ sim_equal ricsim_g2_1 num_instances 9997 300
+
+ api_equal json:policies 19995
+
+ done
+
+done
check_policy_agent_logs
store_logs END
-print_result
\ No newline at end of file
+print_result
+
+auto_clean_containers
\ No newline at end of file
-#!/usr/bin/env bash
+#!/bin/bash
# ============LICENSE_START===============================================
# Copyright (C) 2020 Nordix Foundation. All rights reserved.
store_logs END
-print_result
\ No newline at end of file
+print_result
+
+auto_clean_containers
\ No newline at end of file
-#!/usr/bin/env bash
+#!/bin/bash
# ============LICENSE_START===============================================
# Copyright (C) 2020 Nordix Foundation. All rights reserved.
# ============LICENSE_END=================================================
#
-TC_ONELINE_DESCR="Repeatedly create and delete 10000 policies in each RICs for 24h. Via agent REST"
+
+TC_ONELINE_DESCR="Resync of RIC via changes in the consul config"
. ../common/testcase_common.sh $@
. ../common/agent_api_functions.sh
. ../common/ricsimulator_api_functions.sh
+. ../common/controller_api_functions.sh
#### TEST BEGIN ####
-#Local vars in test script
-##########################
-# Path to callback receiver
-CR_PATH="http://$CR_APP_NAME:$CR_EXTERNAL_PORT/callbacks"
-# Number of RICs per interface type (OSC and STD)
-NUM_RICS=4
-# Number of policy instances per RIC
-NUM_INSTANCES=10000
+# Clean container and start all needed containers #
clean_containers
-start_ric_simulators ricsim_g1 4 OSC_2.1.0
-
-start_ric_simulators ricsim_g2 4 STD_1.1.3
+# Start one RIC of each type
+start_ric_simulators ricsim_g1 1 OSC_2.1.0
+start_ric_simulators ricsim_g2 1 STD_1.1.3
start_mr
start_consul_cbs
prepare_consul_config NOSDNC ".consul_config.json"
+
consul_config_app ".consul_config.json"
start_control_panel
start_policy_agent
-use_agent_rest_http
-
-api_get_status 200
-
-echo "Print the interface for group 1 simulators, shall be OSC"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- sim_print ricsim_g1_$i interface
-done
-
-echo "Print the interface for group 2 simulators, shall be STD"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- sim_print ricsim_g2_$i interface
-done
-
-echo "Load policy type in group 1 simulators"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- sim_put_policy_type 201 ricsim_g1_$i 1 testdata/OSC/sim_1.json
-done
-
-echo "Check the number of instances in group 1 simulators, shall be 0"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- sim_equal ricsim_g1_$i num_instances 0
-done
-
-echo "Check the number of instances in group 2 simulators, shall be 0"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- sim_equal ricsim_g2_$i num_instances 0
-done
-
-echo "Wait for the agent to refresh types from the simulator"
-api_equal json:policy_types 2 120
-
-echo "Check the number of types in the agent for each ric is 1"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- api_equal json:policy_types?ric=ricsim_g1_$i 1 120
-done
-
-echo "Register a service"
-api_put_service 201 "rapp1" 0 "$CR_PATH/1"
-
-TEST_DURATION=$((24*3600))
-TEST_START=$SECONDS
-
-while [ $(($SECONDS-$TEST_START)) -lt $TEST_DURATION ]; do
-
- echo ""
- echo "#########################################################################################################"
- echo -e $BOLD"INFO: Test executed for: "$(($SECONDS-$TEST_START)) "seconds. Target is: "$TEST_DURATION" seconds (24h)."$EBOLD
- echo "#########################################################################################################"
- echo ""
-
-
- echo "Create 10000 instances in each OSC RIC"
- INSTANCE_ID=200000
- INSTANCES=0
- for ((i=1; i<=$NUM_RICS; i++))
- do
- api_put_policy 201 "rapp1" ricsim_g1_$i 1 $INSTANCE_ID testdata/OSC/pi1_template.json $NUM_INSTANCES
- sim_equal ricsim_g1_$i num_instances $NUM_INSTANCES
- INSTANCE_ID=$(($INSTANCE_ID+$NUM_INSTANCES))
- INSTANCES=$(($INSTANCES+$NUM_INSTANCES))
- done
-
- api_equal json:policy_ids $INSTANCES
-
- echo "Create 10000 instances in each OSC RIC"
- for ((i=1; i<=$NUM_RICS; i++))
- do
- api_put_policy 201 "rapp1" ricsim_g2_$i NOTYPE $INSTANCE_ID testdata/STD/pi1_template.json $NUM_INSTANCES
- sim_equal ricsim_g2_$i num_instances $NUM_INSTANCES
- INSTANCE_ID=$(($INSTANCE_ID+$NUM_INSTANCES))
- INSTANCES=$(($INSTANCES+$NUM_INSTANCES))
- done
-
- api_equal json:policy_ids $INSTANCES
-
-
- echo "Delete all instances in each OSC RIC"
-
- INSTANCE_ID=200000
- for ((i=1; i<=$NUM_RICS; i++))
- do
- api_delete_policy 204 $INSTANCE_ID $NUM_INSTANCES
- INSTANCES=$(($INSTANCES-$NUM_INSTANCES))
- sim_equal ricsim_g1_$i num_instances $NUM_INSTANCES
- INSTANCE_ID=$(($INSTANCE_ID+$NUM_INSTANCES))
- done
-
- api_equal json:policy_ids $INSTANCES
-
- echo "Delete all instances in each STD RIC"
- INSTANCE_ID=200000
- for ((i=1; i<=$NUM_RICS; i++))
- do
- api_delete_policy 204 $INSTANCE_ID $NUM_INSTANCES
- INSTANCES=$(($INSTANCES-$NUM_INSTANCES))
- sim_equal ricsim_g2_$i num_instances $NUM_INSTANCES
- INSTANCE_ID=$(($INSTANCE_ID+$NUM_INSTANCES))
- done
-
- api_equal json:policy_ids 0
-done
+api_equal json:rics 2 120
+# Add an OSC RIC and check
+start_ric_simulators ricsim_g2 2 STD_1.1.3
+
+prepare_consul_config NOSDNC ".consul_config.json"
+
+consul_config_app ".consul_config.json"
+
+api_equal json:rics 3 120
+
check_policy_agent_logs
+check_control_panel_logs
-#### TEST COMPLETE ####
+# Remove one OSC RIC and check
+start_ric_simulators ricsim_g2 1 STD_1.1.3
+
+prepare_consul_config NOSDNC ".consul_config.json"
+
+consul_config_app ".consul_config.json"
+
+api_equal json:rics 2 120
+
+check_policy_agent_logs
+check_control_panel_logs
store_logs END
-print_result
\ No newline at end of file
+
+#### TEST COMPLETE ####
+
+
+print_result
+
+auto_clean_containers
+++ /dev/null
-#!/usr/bin/env bash
-
-# ============LICENSE_START===============================================
-# Copyright (C) 2020 Nordix Foundation. All rights reserved.
-# ========================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=================================================
-#
-
-TC_ONELINE_DESCR="Create and delete 50 policies in each 50 RICs, 25 STD version, 25 OSC version. Via agent REST"
-
-. ../common/testcase_common.sh $@
-. ../common/agent_api_functions.sh
-. ../common/ricsimulator_api_functions.sh
-
-#### TEST BEGIN ####
-
-#Local vars in test script
-##########################
-# Path to callback receiver
-CR_PATH="http://$CR_APP_NAME:$CR_EXTERNAL_PORT/callbacks"
-# Number of RICs
-NUM_RICS=25
-# Number of instances per RIC
-NUM_INST=50
-
-# Clean and start all containers
-clean_containers
-
-start_ric_simulators ricsim_g1 $NUM_RICS OSC_2.1.0
-
-start_ric_simulators ricsim_g2 $NUM_RICS STD_1.1.3
-
-start_mr
-
-start_cr
-
-start_consul_cbs
-
-prepare_consul_config NOSDNC ".consul_config.json"
-consul_config_app ".consul_config.json"
-
-start_control_panel
-
-start_policy_agent
-
-use_agent_rest_http
-
-set_agent_debug
-
-# Main tests
-
-echo "Checking agent is alive"
-api_get_status 200
-
-
-echo "Print the interface for group 1 simulators, shall be OSC"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- sim_print ricsim_g1_$i interface
-done
-
-echo "Print the interface for group 2 simulators, shall be STD"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- sim_print ricsim_g2_$i interface
-done
-
-echo "Checking the number of policy instances in each group 1 simulator, shall be 0"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- sim_equal ricsim_g1_$i num_instances 0
-done
-
-echo "Checking the number of policy instances in each group 2 simulator, shall be 0"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- sim_equal ricsim_g1_$i num_instances 0
-done
-
-echo "Load policy type 1 in each group 1 simulator"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- sim_put_policy_type 201 ricsim_g1_$i 1 testdata/OSC/sim_1.json
-done
-
-echo "Checking the number of policy types in each group 1 simulator, shall be 1"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- sim_equal ricsim_g1_$i num_types 1
-done
-
-echo "Checking the number of policy types in each group 2 simulator, shall be 0"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- sim_equal ricsim_g2_$i num_types 0
-done
-
-echo "Check the number of rics, shall be the configured number: ""$(($NUM_RICS*2))"
-api_equal json:rics "$(($NUM_RICS*2))" 120
-
-api_equal json:policy_types 2 120 #Wait for the agent to refresh types from the simulator
-
-sleep_wait 120 "Wait for the agent to refresh the types from all rics"
-
-echo "Check the number of types in the agent for each group 1 rics, shall be 1"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- api_equal json:policy_types?ric=ricsim_g1_$i 1
-done
-
-echo "Check the number of types in the agent for each group 2 rics, shall be 1"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- api_equal json:policy_types?ric=ricsim_g2_$i 1
-done
-
-echo "Register the service"
-api_put_service 201 "rapp1" 0 "$CR_PATH/1"
-
-echo "Loading "$NUM_INST" policies in each group 1 ric"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- inst=$((1000000+$i*$NUM_INST))
- api_put_policy 201 "rapp1" ricsim_g1_$i 1 $inst testdata/OSC/pi1_template.json $NUM_INST
-done
-
-echo "Loading "$NUM_INST" policies in each group 2 ric"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- inst=$((2000000+$i*$NUM_INST))
- api_put_policy 201 "rapp1" ricsim_g2_$i NOTYPE $inst testdata/STD/pi1_template.json $NUM_INST
-done
-
-echo "Check the number of types in the agent for each group 1 rics, shall be 1"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- api_equal json:policy_types?ric=ricsim_g1_$i 1
-done
-
-echo "Check the number of types in the agent for each group 2 rics, shall be 1"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- api_equal json:policy_types?ric=ricsim_g2_$i 1
-done
-
-echo "Checking the number of policy instances in each group 1 simulator, shall be "$NUM_INST
-for ((i=1; i<=$NUM_RICS; i++))
-do
- sim_equal ricsim_g1_$i num_instances 50
-done
-
-echo "Checking the number of policy instances in each group 2 simulator, shall be "$NUM_INST
-for ((i=1; i<=$NUM_RICS; i++))
-do
- sim_equal ricsim_g2_$i num_instances 50
-done
-
-echo "Deleting "$NUM_INST" policies in each group 1 ric"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- inst=$((1000000+$i*$NUM_INST))
- api_delete_policy 201 $NUM_INST
-done
-
-echo "Deleting "$NUM_INST" policies in each group 2 ric"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- inst=$((2000000+$i*$NUM_INST))
- api_delete_policy 201 $NUM_INST
-done
-
-echo "Checking the number of policy instances in each group 1 simulator, shall be 0"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- sim_equal ricsim_g1_$i num_instances 50
-done
-
-echo "Checking the number of policy instances in each group 1 simulator, shall be 0"
-for ((i=1; i<=$NUM_RICS; i++))
-do
- sim_equal ricsim_g2_$i num_instances 50
-done
-
-
-check_policy_agent_logs
-
-#### TEST COMPLETE ####
-
-store_logs END
-
-print_result
\ No newline at end of file
+++ /dev/null
-#!/usr/bin/env bash
-
-# ============LICENSE_START===============================================
-# Copyright (C) 2020 Nordix Foundation. All rights reserved.
-# ========================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=================================================
-#
-
-
-TC_ONELINE_DESCR="Sample tests of the SDNC A1 controller restconf API"
-
-. ../common/testcase_common.sh $@
-. ../common/controller_api_functions.sh
-. ../common/ricsimulator_api_functions.sh
-
-#### TEST BEGIN ####
-
-# Clean container and start all needed containers #
-clean_containers
-
-start_ric_simulators ricsim_g1 1 OSC_2.1.0
-start_ric_simulators ricsim_g2 1 STD_1.1.3
-
-start_sdnc
-
-# API tests
-echo -e $YELLOW"TR13"$EYELLOW
-controller_api_get_A1_policy_type 404 OSC ricsim_g1_1 1
-
-sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
-
-
-controller_api_get_A1_policy_ids 200 OSC ricsim_g1_1 1
-controller_api_get_A1_policy_ids 200 STD ricsim_g2_1
-
-controller_api_get_A1_policy_type 200 OSC ricsim_g1_1 1
-controller_api_get_A1_policy_type 200 OSC ricsim_g1_1 1 testdata/OSC/sim_1.json
-
-controller_api_put_A1_policy 202 OSC ricsim_g1_1 1 4000 testdata/OSC/pi1_template.json
-controller_api_put_A1_policy 201 STD ricsim_g2_1 5000 testdata/STD/pi1_template.json
-
-controller_api_get_A1_policy_ids 200 OSC ricsim_g1_1 1 4000
-controller_api_get_A1_policy_ids 200 STD ricsim_g2_1 5000
-
-controller_api_get_A1_policy_status 200 OSC ricsim_g1_1 1 4000
-controller_api_get_A1_policy_status 200 STD ricsim_g2_1 5000
-
-VAL='NOT IN EFFECT'
-controller_api_get_A1_policy_status 200 OSC ricsim_g1_1 1 4000 "$VAL" "false"
-controller_api_get_A1_policy_status 200 STD ricsim_g2_1 5000 "UNDEFINED"
-
-controller_api_delete_A1_policy 202 OSC ricsim_g1_1 1 4000
-controller_api_delete_A1_policy 204 STD ricsim_g2_1 5000
-
-
-
-store_logs END
-
-#### TEST COMPLETE ####
-
-print_result
-
-auto_clean_containers
\ No newline at end of file
+++ /dev/null
-#!/usr/bin/env bash
-
-# ============LICENSE_START===============================================
-# Copyright (C) 2020 Nordix Foundation. All rights reserved.
-# ========================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=================================================
-#
-
-
-TC_ONELINE_DESCR="Resync of RIC via changes in the consul config"
-
-. ../common/testcase_common.sh $@
-. ../common/agent_api_functions.sh
-. ../common/ricsimulator_api_functions.sh
-. ../common/controller_api_functions.sh
-
-#### TEST BEGIN ####
-
-
-# Clean container and start all needed containers #
-clean_containers
-
-# Start one RIC of each type
-start_ric_simulators ricsim_g1 1 OSC_2.1.0
-start_ric_simulators ricsim_g2 1 STD_1.1.3
-
-start_mr
-
-start_cr
-
-start_consul_cbs
-
-prepare_consul_config NOSDNC ".consul_config.json"
-
-consul_config_app ".consul_config.json"
-
-start_control_panel
-
-start_policy_agent
-
-api_equal json:rics 2 120
-
-
-# Add an OSC RIC and check
-start_ric_simulators ricsim_g2 2 STD_1.1.3
-
-prepare_consul_config NOSDNC ".consul_config.json"
-
-consul_config_app ".consul_config.json"
-
-api_equal json:rics 3 120
-
-check_policy_agent_logs
-check_control_panel_logs
-
-# Remove one OSC RIC and check
-start_ric_simulators ricsim_g2 1 STD_1.1.3
-
-prepare_consul_config NOSDNC ".consul_config.json"
-
-consul_config_app ".consul_config.json"
-
-api_equal json:rics 2 120
-
-check_policy_agent_logs
-check_control_panel_logs
-
-store_logs END
-
-
-#### TEST COMPLETE ####
-
-
-print_result
-
-auto_clean_containers
--- /dev/null
+#!/bin/bash
+
+# ============LICENSE_START===============================================
+# Copyright (C) 2020 Nordix Foundation. All rights reserved.
+# ========================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=================================================
+#
+
+TC_ONELINE_DESCR="Create 10000 policies in sequence using http/https and Agent REST/DMAAP with/without SDNC controller"
+
+. ../common/testcase_common.sh $@
+. ../common/agent_api_functions.sh
+. ../common/ricsimulator_api_functions.sh
+
+#### TEST BEGIN ####
+
+#Local vars in test script
+##########################
+# Path to callback receiver
+CR_PATH="http://$CR_APP_NAME:$CR_EXTERNAL_PORT/callbacks"
+# Number of policies in each sequence
+NUM_POLICIES=10000
+
+# Tested variants of REST/DMAAP/SDNC config
+TESTED_VARIANTS="NOSDNC SDNC"
+
+#Test agent and simulator protocol versions (others are http only)
+TESTED_PROTOCOLS="HTTP HTTPS"
+for __httpx in $TESTED_PROTOCOLS ; do
+ for interface in $TESTED_VARIANTS ; do
+
+ echo "#####################################################################"
+ echo "#####################################################################"
+ echo "### Testing agent via $interface using $__httpx"
+ echo "#####################################################################"
+ echo "#####################################################################"
+
+ # Policy instance start id
+ START_ID=1
+
+ clean_containers
+
+ if [ $__httpx == "HTTPS" ]; then
+ #"Using secure ports towards simulators"
+ use_simulator_https
+ else
+ #"Using non-secure ports towards simulators"
+ use_simulator_http
+ fi
+
+ start_ric_simulators ricsim_g1 1 OSC_2.1.0
+ start_ric_simulators ricsim_g2 1 STD_1.1.3
+
+ start_mr
+
+ if [ $__httpx == "HTTPS" ]; then
+
+ deviation "TR17 - agent cannot use https towards MR - test combo $interface and $__httpx"
+ #This is the intention
+ #echo "Using secure ports between agent and MR"
+ #use_mr_https
+
+ #Work around until it is fixed
+ #"Using non-secure ports between agent and MR"
+ use_mr_http
+ else
+ #"Using non-secure ports between agent and MR"
+ use_mr_http
+ fi
+
+ start_cr
+
+ if [ $interface == "SDNC" ]; then
+
+ start_sdnc
+
+ if [ $__httpx == "HTTPS" ]; then
+ # "Using secure ports towards SDNC"
+ use_sdnc_https
+ else
+ #"Using non-secure ports towards SDNC"
+ use_sdnc_http
+ fi
+ fi
+
+ start_consul_cbs
+
+ if [ $interface == "SDNC" ]; then
+ prepare_consul_config SDNC ".consul_config.json"
+ else
+ prepare_consul_config NOSDNC ".consul_config.json"
+ fi
+
+ consul_config_app ".consul_config.json"
+
+ start_control_panel
+
+ start_policy_agent
+
+ set_agent_debug
+
+ if [ $__httpx == "HTTPS" ]; then
+ # "Using secure ports towards the agent"
+ use_agent_rest_https
+ else
+ # "Using non-secure ports towards the agent"
+ use_agent_rest_http
+ fi
+
+
+ cr_equal received_callbacks 0
+ mr_equal requests_submitted 0
+
+
+ api_get_status 200
+
+ sim_print ricsim_g1_1 interface
+ sim_print ricsim_g2_1 interface
+
+ sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
+
+
+ api_equal json:policy_types 2 120 #Wait for the agent to refresh types from the simulators
+
+ api_put_service 201 "rapp1" 3600 "$CR_PATH/callbacks/1"
+
+ start_timer "Create polices in OSC via agent REST and $interface using "$__httpx
+ api_put_policy 201 "rapp1" ricsim_g1_1 1 $START_ID testdata/OSC/pi1_template.json $NUM_POLICIES
+ print_timer "Create polices in OSC via agent REST and $interface using "$__httpx
+
+ sim_equal ricsim_g1_1 num_instances $NUM_POLICIES
+
+ START_ID=$(($START_ID+$NUM_POLICIES))
+
+ start_timer "Create polices in STD via agent REST and $interface using "$__httpx
+ api_put_policy 201 "rapp1" ricsim_g2_1 NOTYPE $START_ID testdata/STD/pi1_template.json $NUM_POLICIES
+ print_timer "Create polices in STD via agent REST and $interface using "$__httpx
+
+ sim_equal ricsim_g2_1 num_instances $NUM_POLICIES
+
+ use_agent_dmaap
+
+ START_ID=$(($START_ID+$NUM_POLICIES))
+
+ start_timer "Create polices in OSC via agent DMAAP, one by one, and $interface using "$__httpx
+ api_put_policy 201 "rapp1" ricsim_g1_1 1 $START_ID testdata/OSC/pi1_template.json $NUM_POLICIES
+ print_timer "Create polices in OSC via agent DMAAP, one by one, and $interface using "$__httpx
+
+ sim_equal ricsim_g1_1 num_instances $((2*$NUM_POLICIES))
+
+ START_ID=$(($START_ID+$NUM_POLICIES))
+
+ start_timer "Create polices in STD via agent DMAAP, one by one, and $interface using "$__httpx
+ api_put_policy 201 "rapp1" ricsim_g2_1 NOTYPE $START_ID testdata/STD/pi1_template.json $NUM_POLICIES
+ print_timer "Create polices in STD via agent DMAAP, one by one, and $interface using "$__httpx
+
+ sim_equal ricsim_g2_1 num_instances $((2*$NUM_POLICIES))
+
+ START_ID=$(($START_ID+$NUM_POLICIES))
+
+ start_timer "Create polices in OSC via agent DMAAP in batch and $interface using "$__httpx
+ api_put_policy_batch 201 "rapp1" ricsim_g1_1 1 $START_ID testdata/OSC/pi1_template.json $NUM_POLICIES
+ print_timer "Create polices in OSC via agent DMAAP in batch and $interface using "$__httpx
+
+ sim_equal ricsim_g1_1 num_instances $((3*$NUM_POLICIES))
+
+ START_ID=$(($START_ID+$NUM_POLICIES))
+
+ start_timer "Create polices in STD via agent DMAAP in batch and $interface using "$__httpx
+ api_put_policy_batch 201 "rapp1" ricsim_g2_1 NOTYPE $START_ID testdata/STD/pi1_template.json $NUM_POLICIES
+ print_timer "Create polices in STD via agent DMAAP in batch and $interface using "$__httpx
+
+ sim_equal ricsim_g2_1 num_instances $((3*$NUM_POLICIES))
+
+ if [ $interface == "SDNC" ]; then
+ sim_contains_str ricsim_g1_1 remote_hosts "a1-controller"
+ sim_contains_str ricsim_g2_1 remote_hosts "a1-controller"
+ else
+ sim_contains_str ricsim_g1_1 remote_hosts "policy-agent"
+ sim_contains_str ricsim_g2_1 remote_hosts "policy-agent"
+ fi
+
+ check_policy_agent_logs
+
+ store_logs "${__httpx}__${interface}"
+ done
+done
+
+#### TEST COMPLETE ####
+
+print_result
+
+auto_clean_containers
\ No newline at end of file
--- /dev/null
+#!/bin/bash
+
+# ============LICENSE_START===============================================
+# Copyright (C) 2020 Nordix Foundation. All rights reserved.
+# ========================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=================================================
+#
+
+TC_ONELINE_DESCR="Repeatedly create and delete policies in each RICs for 24h. Via agent REST/DMAAP/DMAAP_BATCH and SDNC using http"
+
+. ../common/testcase_common.sh $@
+. ../common/agent_api_functions.sh
+. ../common/ricsimulator_api_functions.sh
+
+#### TEST BEGIN ####
+
+#Local vars in test script
+##########################
+# Path to callback receiver
+CR_PATH="http://$CR_APP_NAME:$CR_EXTERNAL_PORT/callbacks"
+# Number of RICs per interface type (OSC and STD)
+NUM_RICS=30
+# Number of policy instances per RIC
+NUM_INSTANCES=5
+
+clean_containers
+
+start_ric_simulators ricsim_g1 $NUM_RICS OSC_2.1.0
+
+start_ric_simulators ricsim_g2 $NUM_RICS STD_1.1.3
+
+start_mr
+
+start_cr
+
+start_consul_cbs
+
+prepare_consul_config SDNC ".consul_config.json"
+consul_config_app ".consul_config.json"
+
+start_sdnc
+
+start_control_panel
+
+start_policy_agent
+
+use_agent_rest_http
+
+api_get_status 200
+
+echo "Print the interface for group 1 simulators, shall be OSC"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+ sim_print ricsim_g1_$i interface
+done
+
+echo "Print the interface for group 2 simulators, shall be STD"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+ sim_print ricsim_g2_$i interface
+done
+
+echo "Load policy type in group 1 simulators"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+ sim_put_policy_type 201 ricsim_g1_$i 1 testdata/OSC/sim_1.json
+done
+
+echo "Check the number of instances in group 1 simulators, shall be 0"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+ sim_equal ricsim_g1_$i num_instances 0
+done
+
+echo "Check the number of instances in group 2 simulators, shall be 0"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+ sim_equal ricsim_g2_$i num_instances 0
+done
+
+echo "Wait for the agent to refresh types from the simulator"
+api_equal json:policy_types 2 120
+
+echo "Check the number of types in the agent for each ric is 1"
+for ((i=1; i<=$NUM_RICS; i++))
+do
+ api_equal json:policy_types?ric=ricsim_g1_$i 1 120
+done
+
+echo "Register a service"
+api_put_service 201 "serv1" 0 "$CR_PATH/1"
+
+TEST_DURATION=$((24*3600))
+TEST_START=$SECONDS
+
+AGENT_INTERFACES="REST DMAAP DMAAP-BATCH"
+
+MR_MESSAGES=0
+
+while [ $(($SECONDS-$TEST_START)) -lt $TEST_DURATION ]; do
+
+ echo ""
+ echo "#########################################################################################################"
+ echo -e $BOLD"INFO: Test executed for: "$(($SECONDS-$TEST_START)) "seconds. Target is: "$TEST_DURATION" seconds."$EBOLD
+ echo "#########################################################################################################"
+ echo ""
+
+ for interface in $AGENT_INTERFACES ; do
+
+ echo "############################################"
+ echo "## Testing using agent interface: $interface ##"
+ echo "############################################"
+
+ if [ $interface == "REST" ]; then
+ use_agent_rest_http
+ else
+ use_agent_dmaap
+ fi
+
+ echo "Create $NUM_INSTANCES instances in each OSC RIC"
+ INSTANCE_ID=200000
+ INSTANCES=0
+ for ((i=1; i<=$NUM_RICS; i++))
+ do
+ if [ $interface == "DMAAP-BATCH" ]; then
+ api_put_policy_batch 201 "serv1" ricsim_g1_$i 1 $INSTANCE_ID testdata/OSC/pi1_template.json $NUM_INSTANCES
+ else
+ api_put_policy 201 "serv1" ricsim_g1_$i 1 $INSTANCE_ID testdata/OSC/pi1_template.json $NUM_INSTANCES
+ fi
+ if [ $interface != "REST" ]; then
+ MR_MESSAGES=$(($MR_MESSAGES+$NUM_INSTANCES))
+ fi
+ sim_equal ricsim_g1_$i num_instances $NUM_INSTANCES
+ INSTANCE_ID=$(($INSTANCE_ID+$NUM_INSTANCES))
+ INSTANCES=$(($INSTANCES+$NUM_INSTANCES))
+ done
+
+ api_equal json:policy_ids $INSTANCES
+
+ echo "Create $NUM_INSTANCES instances in each STD RIC"
+ for ((i=1; i<=$NUM_RICS; i++))
+ do
+ if [ $interface == "DMAAP-BATCH" ]; then
+ api_put_policy_batch 201 "serv1" ricsim_g2_$i NOTYPE $INSTANCE_ID testdata/STD/pi1_template.json $NUM_INSTANCES
+ else
+ api_put_policy 201 "serv1" ricsim_g2_$i NOTYPE $INSTANCE_ID testdata/STD/pi1_template.json $NUM_INSTANCES
+ fi
+ if [ $interface != "REST" ]; then
+ MR_MESSAGES=$(($MR_MESSAGES+$NUM_INSTANCES))
+ fi
+ sim_equal ricsim_g2_$i num_instances $NUM_INSTANCES
+ INSTANCE_ID=$(($INSTANCE_ID+$NUM_INSTANCES))
+ INSTANCES=$(($INSTANCES+$NUM_INSTANCES))
+ done
+
+ api_equal json:policy_ids $INSTANCES
+
+
+ echo "Delete all instances in each OSC RIC"
+
+ INSTANCE_ID=200000
+ for ((i=1; i<=$NUM_RICS; i++))
+ do
+ if [ $interface == "DMAAP-BATCH" ]; then
+ api_delete_policy_batch 204 $INSTANCE_ID $NUM_INSTANCES
+ else
+ api_delete_policy 204 $INSTANCE_ID $NUM_INSTANCES
+ fi
+ if [ $interface != "REST" ]; then
+ MR_MESSAGES=$(($MR_MESSAGES+$NUM_INSTANCES))
+ fi
+ INSTANCES=$(($INSTANCES-$NUM_INSTANCES))
+ sim_equal ricsim_g1_$i num_instances 0
+ INSTANCE_ID=$(($INSTANCE_ID+$NUM_INSTANCES))
+ done
+
+ api_equal json:policy_ids $INSTANCES
+
+ echo "Delete all instances in each STD RIC"
+
+ for ((i=1; i<=$NUM_RICS; i++))
+ do
+ if [ $interface == "DMAAP-BATCH" ]; then
+ api_delete_policy_batch 204 $INSTANCE_ID $NUM_INSTANCES
+ else
+ api_delete_policy 204 $INSTANCE_ID $NUM_INSTANCES
+ fi
+ if [ $interface != "REST" ]; then
+ MR_MESSAGES=$(($MR_MESSAGES+$NUM_INSTANCES))
+ fi
+ INSTANCES=$(($INSTANCES-$NUM_INSTANCES))
+ sim_equal ricsim_g2_$i num_instances 0
+ INSTANCE_ID=$(($INSTANCE_ID+$NUM_INSTANCES))
+ done
+
+ api_equal json:policy_ids 0
+
+ cr_equal received_callbacks 0
+
+ mr_equal requests_submitted $MR_MESSAGES
+ mr_equal requests_fetched $MR_MESSAGES
+ mr_equal responses_submitted $MR_MESSAGES
+ mr_equal responses_fetched $MR_MESSAGES
+ mr_equal current_requests 0
+ mr_equal current_responses 0
+
+
+ for ((i=1; i<=$NUM_RICS; i++))
+ do
+ sim_contains_str ricsim_g1_$i remote_hosts "a1-controller"
+ sim_contains_str ricsim_g2_$i remote_hosts "a1-controller"
+ done
+
+ done
+
+done
+
+check_policy_agent_logs
+
+#### TEST COMPLETE ####
+
+store_logs END
+
+print_result
+
+auto_clean_containers
\ No newline at end of file
--- /dev/null
+#!/usr/bin/env bash
+
+# ============LICENSE_START===============================================
+# Copyright (C) 2020 Nordix Foundation. All rights reserved.
+# ========================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=================================================
+#
+
+TC_ONELINE_DESCR="Testing of the health check app"
+
+. ../common/testcase_common.sh $@
+. ../common/agent_api_functions.sh
+. ../common/ricsimulator_api_functions.sh
+
+#### TEST BEGIN ####
+
+#Local vars in test script
+##########################
+# Path to callback receiver
+CR_PATH="http://$CR_APP_NAME:$CR_EXTERNAL_PORT/callbacks"
+
+clean_containers
+
+start_ric_simulators ricsim_g1 6 OSC_2.1.0
+
+start_ric_simulators ricsim_g2 5 STD_1.1.3
+
+
+
+start_consul_cbs
+
+prepare_consul_config NOSDNC ".consul_config.json"
+consul_config_app ".consul_config.json"
+
+
+start_policy_agent
+
+
+use_agent_rest_http
+
+api_get_status 200
+
+sim_print ricsim_g1_1 interface
+sim_print ricsim_g1_2 interface
+sim_print ricsim_g1_3 interface
+sim_print ricsim_g1_4 interface
+sim_print ricsim_g1_5 interface
+sim_print ricsim_g1_6 interface
+
+sim_print ricsim_g2_1 interface
+sim_print ricsim_g2_2 interface
+sim_print ricsim_g2_3 interface
+sim_print ricsim_g2_4 interface
+sim_print ricsim_g2_5 interface
+
+sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
+sim_put_policy_type 201 ricsim_g1_2 1 testdata/OSC/sim_1.json
+sim_put_policy_type 201 ricsim_g1_3 1 testdata/OSC/sim_1.json
+sim_put_policy_type 201 ricsim_g1_4 1 testdata/OSC/sim_1.json
+sim_put_policy_type 201 ricsim_g1_5 1 testdata/OSC/sim_1.json
+sim_put_policy_type 201 ricsim_g1_6 1 testdata/OSC/sim_1.json
+
+api_equal json:policy_types 2 120
+
+sleep_wait 30 "Give the agent some extra time...."
+
+# Create policies
+use_agent_rest_http
+
+api_put_service 201 "rapp1" 3600 "$CR_PATH/1"
+
+api_put_policy 201 "rapp1" ricsim_g1_1 1 2010 testdata/OSC/pi1_template.json 1
+api_put_policy 201 "rapp1" ricsim_g1_2 1 2020 testdata/OSC/pi1_template.json 1
+api_put_policy 201 "rapp1" ricsim_g1_3 1 2030 testdata/OSC/pi1_template.json 1
+api_put_policy 201 "rapp1" ricsim_g1_4 1 2040 testdata/OSC/pi1_template.json 1
+api_put_policy 201 "rapp1" ricsim_g1_5 1 2050 testdata/OSC/pi1_template.json 1
+api_put_policy 201 "rapp1" ricsim_g1_6 1 2060 testdata/OSC/pi1_template.json 1
+
+sim_equal ricsim_g1_1 num_instances 1
+sim_equal ricsim_g1_2 num_instances 1
+sim_equal ricsim_g1_3 num_instances 1
+sim_equal ricsim_g1_4 num_instances 1
+sim_equal ricsim_g1_5 num_instances 1
+sim_equal ricsim_g1_6 num_instances 1
+
+api_put_policy 201 "rapp1" ricsim_g2_1 NOTYPE 2110 testdata/STD/pi1_template.json 1
+api_put_policy 201 "rapp1" ricsim_g2_2 NOTYPE 2120 testdata/STD/pi1_template.json 1
+api_put_policy 201 "rapp1" ricsim_g2_3 NOTYPE 2130 testdata/STD/pi1_template.json 1
+api_put_policy 201 "rapp1" ricsim_g2_4 NOTYPE 2140 testdata/STD/pi1_template.json 1
+api_put_policy 201 "rapp1" ricsim_g2_5 NOTYPE 2150 testdata/STD/pi1_template.json 1
+
+sim_equal ricsim_g2_1 num_instances 1
+sim_equal ricsim_g2_2 num_instances 1
+sim_equal ricsim_g2_3 num_instances 1
+sim_equal ricsim_g2_4 num_instances 1
+sim_equal ricsim_g2_5 num_instances 1
+
+
+check_policy_agent_logs
+
+#### TEST COMPLETE ####
+
+store_logs END
+
+print_result
\ No newline at end of file
+++ /dev/null
-#!/usr/bin/env bash
-
-# ============LICENSE_START===============================================
-# Copyright (C) 2020 Nordix Foundation. All rights reserved.
-# ========================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=================================================
-#
-
-TC_ONELINE_DESCR="Create 1 policy with SDNC and 1 policy without SDNC over agent REST"
-
-. ../common/testcase_common.sh $@
-. ../common/agent_api_functions.sh
-. ../common/ricsimulator_api_functions.sh
-. ../common/controller_api_functions.sh
-
-#### TEST BEGIN ####
-
-VARIANTS="NOSDNC SDNC"
-
-for TEST in $VARIANTS ; do
-
-
- clean_containers
-
- start_ric_simulators ricsim_g1 1 OSC_2.1.0
- start_ric_simulators ricsim_g2 1 STD_1.1.3
-
- start_mr
-
- start_cr
-
- start_consul_cbs
-
- prepare_consul_config $TEST ".consul_config.json"
- consul_config_app ".consul_config.json"
-
- start_control_panel
-
- if [ $TEST == "SDNC" ]; then
- start_sdnc
- fi
-
- start_policy_agent
-
-
- set_agent_debug
-
- use_agent_rest_http
-
- echo "Using: "$TEST
-
- api_get_status 200
-
- sim_print ricsim_g1_1 interface
- sim_print ricsim_g2_1 interface
-
- sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json
-
- api_equal json:policy_types 2 120 #Wait for the agent to refresh types from the simulator
-
- api_put_service 201 "rapp1" 3600 "http://callback-receiver:8090/callbacks/1"
-
- api_put_policy 201 "rapp1" ricsim_g1_1 1 2000 testdata/OSC/pi1_template.json 10
-
- api_put_policy 201 "rapp1" ricsim_g2_1 NOTYPE 3000 testdata/STD/pi1_template.json 10
-
- sim_equal ricsim_g1_1 num_instances 10
- sim_equal ricsim_g2_1 num_instances 10
-
-
- check_policy_agent_logs
- check_control_panel_logs
-
- store_logs $TEST
-
- echo ""
- echo -e $BOLD"Test complete for variant: "$TEST $EBOLD
- echo ""
-
-done
-
-#### TEST COMPLETE ####
-
-print_result
-
Discription:
local: test image: POLICY_AGENT_LOCAL_IMAGE=o-ran-sc/nonrtric-policy-agent
remote: test image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-policy-agent
+
```
+### Test case categories
+1-99 - Basic sanity tests
+
+100-199 - API tests
+
+300-399 - Config changes and sync
+
+800-899 - Stability and capacity test
+
+900-999 - Misc test
+
+Suites
+
### Test case file
A test case file contains a number of steps to verify a certain functionality.
A description of the test case should be given to the ``TC_ONELINE_DESCR`` var. The description will be printed in
#!/bin/bash
-TS_ONELINE_DESCR="Test suite - interface testing. Agent REST and SNDC controller resconf"
+TS_ONELINE_DESCR="Test suite - interface testing. Agent REST, DMAAP and SNDC controller resconf"
. ../common/testsuite_common.sh
############# TEST CASES #################
-./FTC10.sh $1
-./FTC500.sh $1
+./FTC100.sh $1
+./FTC110.sh $1
+./FTC150.sh $1
##########################################
# Generic function to query the agent via the REST or DMAAP interface.
# Used by all other agent api test functions
+# If operation prefix is '_BATCH' the the send and get response is split in two sequences,
+# one for sending the requests and one for receiving the response
+# but only when using the DMAAP interface
# REST or DMAAP is controlled of the base url of $ADAPTER
-# arg: GET|PUT|POST|DELETE <url> [<file>]
+# arg: (GET|PUT|POST|DELETE|GET_BATCH|PUT_BATCH|POST_BATCH|DELETE_BATCH <url> [<file>]) | (RESPONSE <correlation-id>)
# (Not for test scripts)
__do_curl_to_agent() {
echo "(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ >> $HTTPLOG
httpcode=" -sw %{http_code}"
accept=''
content=''
-
+ batch=0
+ if [[ $1 == *"_BATCH" ]]; then
+ batch=1
+ fi
if [ $# -gt 2 ]; then
content=" -H Content-Type:application/json"
fi
- if [ $1 == "GET" ]; then
+ if [ $1 == "GET" ] || [ $1 == "GET_BATCH" ]; then
oper="GET"
- if [ $# -ne 2 ];then
+ if [ $# -ne 2 ]; then
paramError=1
fi
- elif [ $1 == "PUT" ]; then
+ elif [ $1 == "PUT" ] || [ $1 == "PUT_BATCH" ]; then
oper="PUT"
if [ $# -eq 3 ]; then
file=" --data-binary @$3"
fi
accept=" -H accept:application/json"
- elif [ $1 == "POST" ]; then
+ elif [ $1 == "POST" ] || [ $1 == "POST_BATCH" ]; then
oper="POST"
accept=" -H accept:*/*"
- if [ $# -ne 2 ];then
+ if [ $# -ne 2 ]; then
paramError=1
fi
- elif [ $1 == "DELETE" ]; then
+ elif [ $1 == "DELETE" ] || [ $1 == "DELETE_BATCH" ]; then
oper="DELETE"
- if [ $# -ne 2 ];then
+ if [ $# -ne 2 ]; then
+ paramError=1
+ fi
+ elif [ $1 == "RESPONSE" ]; then
+ oper="RESPONSE"
+ if [ $# -ne 2 ]; then
+ paramError=1
+ fi
+ if ! [ $ADAPTER == $DMAAPBASE ]; then
paramError=1
fi
else
if [ $paramError -eq 1 ]; then
((RES_CONF_FAIL++))
echo "-Incorrect number of parameters to __do_curl_agent " $@ >> $HTTPLOG
- echo "-Expected: GET|PUT|POST|DELETE <url> [<file>]" >> $HTTPLOG
+ echo "-Expected: (GET|PUT|POST|DELETE|GET_BATCH|PUT_BATCH|POST_BATCH|DELETE_BATCH <url> [<file>]) | (RESPONSE <correlation-id>) [<file>]" >> $HTTPLOG
echo "-Returning response 000" >> $HTTPLOG
echo "-000"
return 1
echo $res
return 0
else
- requestUrl=$2
- if [ $1 == "PUT" ] && [ $# -eq 3 ]; then
- payload="$(cat $3 | tr -d '\n' | tr -d ' ' )"
- echo "payload: "$payload >> $HTTPLOG
- file=" --data-binary "$payload
- fi
- #urlencode the request url since it will be carried by send-request url
- requestUrl=$(python3 -c "from __future__ import print_function; import urllib.parse, sys; print(urllib.parse.quote(sys.argv[1]))" "$2")
- url=" "${ADAPTER}"/send-request?url="${requestUrl}"&operation="${oper}
- curlString="curl -X POST${timeout}${httpcode}${content}${url}${file}"
- echo " CMD: "$curlString >> $HTTPLOG
- res=$($curlString)
- retcode=$?
- if [ $retcode -ne 0 ]; then
- echo " RETCODE: "$retcode >> $HTTPLOG
- echo "000"
- return 1
- fi
- echo " RESP: "$res >> $HTTPLOG
- status=${res:${#res}-3}
- if [ $status -ne 200 ]; then
- echo "000"
- return 1
- fi
- cid=${res:0:${#res}-3}
- url=" "${ADAPTER}"/receive-response?correlationid="${cid}
- curlString="curl -X GET"${timeout}${httpcode}${url}
- echo " CMD: "$curlString >> $HTTPLOG
- res=$($curlString)
- retcode=$?
- if [ $retcode -ne 0 ]; then
- echo " RETCODE: "$retcode >> $HTTPLOG
- echo "000"
- return 1
- fi
- echo " RESP: "$res >> $HTTPLOG
- status=${res:${#res}-3}
- TS=$SECONDS
- # wait of the reply from the agent...
- while [ $status -eq 204 ]; do
- if [ $(($SECONDS - $TS)) -gt 90 ]; then
- echo " RETCODE: (timeout after 90s)" >> $HTTPLOG
- echo "000"
- return 1
+ if [ $oper != "RESPONSE" ]; then
+ requestUrl=$2
+ if [ $1 == "PUT" ] && [ $# -eq 3 ]; then
+ payload="$(cat $3 | tr -d '\n' | tr -d ' ' )"
+ echo "payload: "$payload >> $HTTPLOG
+ file=" --data-binary "$payload
fi
- sleep 1
- echo " CMD: "$curlString >> $HTTPLOG
- res=$($curlString)
- if [ $retcode -ne 0 ]; then
- echo " RETCODE: "$retcode >> $HTTPLOG
- echo "000"
- return 1
- fi
- echo " RESP: "$res >> $HTTPLOG
- status=${res:${#res}-3}
- done
- if [ $status -eq 200 ]; then
- body=${res:0:${#res}-3}
- echo $body
- return 0
- fi
- echo "Status not 200, returning response 000" >> $HTTPLOG
- echo "0000"
- return 1
+ #urlencode the request url since it will be carried by send-request url
+ requestUrl=$(python3 -c "from __future__ import print_function; import urllib.parse, sys; print(urllib.parse.quote(sys.argv[1]))" "$2")
+ url=" "${ADAPTER}"/send-request?url="${requestUrl}"&operation="${oper}
+ curlString="curl -X POST${timeout}${httpcode}${content}${url}${file}"
+ echo " CMD: "$curlString >> $HTTPLOG
+ res=$($curlString)
+ retcode=$?
+ if [ $retcode -ne 0 ]; then
+ echo " RETCODE: "$retcode >> $HTTPLOG
+ echo "000"
+ return 1
+ fi
+ echo " RESP: "$res >> $HTTPLOG
+ status=${res:${#res}-3}
+ if [ $status -ne 200 ]; then
+ echo "000"
+ return 1
+ fi
+ cid=${res:0:${#res}-3}
+ if [[ $batch -eq 1 ]]; then
+ echo $cid"200"
+ return 0
+ fi
+ fi
+ if [ $oper == "RESPONSE" ] || [ $batch -eq 0 ]; then
+ if [ $oper == "RESPONSE" ]; then
+ cid=$2
+ fi
+ url=" "${ADAPTER}"/receive-response?correlationid="${cid}
+ curlString="curl -X GET"${timeout}${httpcode}${url}
+ echo " CMD: "$curlString >> $HTTPLOG
+ res=$($curlString)
+ retcode=$?
+ if [ $retcode -ne 0 ]; then
+ echo " RETCODE: "$retcode >> $HTTPLOG
+ echo "000"
+ return 1
+ fi
+ echo " RESP: "$res >> $HTTPLOG
+ status=${res:${#res}-3}
+ TS=$SECONDS
+ # wait of the reply from the agent...
+ while [ $status -eq 204 ]; do
+ if [ $(($SECONDS - $TS)) -gt 90 ]; then
+ echo " RETCODE: (timeout after 90s)" >> $HTTPLOG
+ echo "000"
+ return 1
+ fi
+ sleep 0.01
+ echo " CMD: "$curlString >> $HTTPLOG
+ res=$($curlString)
+ if [ $retcode -ne 0 ]; then
+ echo " RETCODE: "$retcode >> $HTTPLOG
+ echo "000"
+ return 1
+ fi
+ echo " RESP: "$res >> $HTTPLOG
+ status=${res:${#res}-3}
+ done
+ if [ $status -eq 200 ]; then
+ body=${res:0:${#res}-3}
+ echo $body
+ return 0
+ fi
+ echo "Status not 200, returning response 000" >> $HTTPLOG
+ echo "0000"
+ return 1
+ fi
fi
}
return 0
}
+# API Test function: PUT /policy to run in batch
+# args: <response-code> <service-name> <ric-id> <policytype-id> <policy-id> <template-file> [<count>]
+# (Function for test scripts)
+api_put_policy_batch() {
+ echo -e $BOLD"TEST(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ $EBOLD
+ echo "TEST(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ >> $HTTPLOG
+ ((RES_TEST++))
+
+ if [ $# -lt 6 ] || [ $# -gt 7 ]; then
+ __print_err "<response-code> <service-name> <ric-id> <policytype-id> <policy-id> <template-file> [<count>]" $@
+ return 1
+ fi
+
+ ric=$3
+ count=0
+ max=1
+
+ if [ $# -eq 7 ]; then
+ max=$7
+ fi
+
+ pid=$5
+ file=$6
+ ARR=""
+ while [ $count -lt $max ]; do
+ query="/policy?id=$pid&ric=$ric&service=$2"
+
+ if [ $4 == "NOTYPE" ]; then
+ query="/policy?id=$pid&ric=$ric&service=$2"
+ else
+ query="/policy?id=$pid&ric=$ric&service=$2&type=$4"
+ fi
+
+ file=".p.json"
+ sed 's/XXX/'${pid}'/g' $6 > $file
+ res="$(__do_curl_to_agent PUT_BATCH $query $file)"
+ status=${res:${#res}-3}
+ echo -ne " Requested(batch) "$count"("$max")${SAMELINE}"
+
+ if [ $status -ne 200 ]; then
+ let pid=$pid+1
+ echo " Requested(batch) "$count"?("$max")"
+ echo -e $RED" FAIL. Exepected status 200 (in request), got "$status $ERED
+ ((RES_FAIL++))
+ return 1
+ fi
+ cid=${res:0:${#res}-3}
+ ARR=$ARR" "$cid
+ let pid=$pid+1
+ let count=$count+1
+ echo -ne " Requested(batch) "$count"("$max")${SAMELINE}"
+ done
+
+ echo ""
+ count=0
+ for cid in $ARR; do
+
+ res="$(__do_curl_to_agent RESPONSE $cid)"
+ status=${res:${#res}-3}
+ echo -ne " Created(batch) "$count"("$max")${SAMELINE}"
+
+ if [ $status -ne $1 ]; then
+ let pid=$pid+1
+ echo " Created(batch) "$count"?("$max")"
+ echo -e $RED" FAIL. Exepected status "$1", got "$status $ERED
+ ((RES_FAIL++))
+ return 1
+ fi
+
+ let count=$count+1
+ echo -ne " Created(batch) "$count"("$max")${SAMELINE}"
+ done
+
+ echo ""
+
+ ((RES_PASS++))
+ echo -e $GREEN" PASS"$EGREEN
+ return 0
+}
+
# API Test function: DELETE /policy
# args: <response-code> <policy-id> [count]
return 0
}
+# API Test function: DELETE /policy to run in batch
+# args: <response-code> <policy-id> [count]
+# (Function for test scripts)
+api_delete_policy_batch() {
+ echo -e $BOLD"TEST(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ $EBOLD
+ echo "TEST(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ >> $HTTPLOG
+ ((RES_TEST++))
+
+ if [ $# -lt 2 ] || [ $# -gt 3 ]; then
+ __print_err "<response-code> <policy-id> [count]" $@
+ return 1
+ fi
+
+ count=0
+ max=1
+
+ if [ $# -eq 3 ]; then
+ max=$3
+ fi
+
+ pid=$2
+ ARR=""
+ while [ $count -lt $max ]; do
+ query="/policy?id="$pid
+ res="$(__do_curl_to_agent DELETE_BATCH $query)"
+ status=${res:${#res}-3}
+ echo -ne " Requested(batch) "$count"("$max")${SAMELINE}"
+
+ if [ $status -ne 200 ]; then
+ let pid=$pid+1
+ echo " Requested(batch) "$count"?("$max")"
+ echo -e $RED" FAIL. Exepected status 200 (in request), got "$status $ERED
+ ((RES_FAIL++))
+ return 1
+ fi
+ cid=${res:0:${#res}-3}
+ ARR=$ARR" "$cid
+ let pid=$pid+1
+ let count=$count+1
+ echo -ne " Requested(batch) "$count"("$max")${SAMELINE}"
+ done
+
+ echo ""
+
+ count=0
+ for cid in $ARR; do
+
+ res="$(__do_curl_to_agent RESPONSE $cid)"
+ status=${res:${#res}-3}
+ echo -ne " Deleted(batch) "$count"("$max")${SAMELINE}"
+
+ if [ $status -ne $1 ]; then
+ let pid=$pid+1
+ echo " Deleted(batch) "$count"?("$max")"
+ echo -e $RED" FAIL. Exepected status "$1", got "$status $ERED
+ ((RES_FAIL++))
+ return 1
+ fi
+
+ let count=$count+1
+ echo -ne " Deleted(batch) "$count"("$max")${SAMELINE}"
+ done
+
+ ((RES_PASS++))
+ echo -e $GREEN" PASS"$EGREEN
+ return 0
+}
+
# API Test function: GET /policy_ids
# args: <response-code> <ric-id>|NORIC <service-id>|NOSERVICE <type-id>|NOTYPE ([<policy-instance-id]*|NOID)
# (Function for test scripts)
echo -e $BOLD"TEST(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ $EBOLD
echo "TEST(${BASH_LINENO[0]}): ${FUNCNAME[0]}" $@ >> $HTTPLOG
((RES_TEST++))
-
#Number of accepted parameters: 1, 2, 4, 7, 10, 13,...
paramError=1
if [ $# -eq 1 ]; then
fi
echo "$json" > .sndc.payload.json
echo " FILE: $json" >> $HTTPLOG
- curlString="curl -sw %{http_code} -X POST http://$SDNC_USER:$SDNC_PWD@localhost:$SDNC_EXTERNAL_PORT$SDNC_API_URL$1 -H accept:application/json -H Content-Type:application/json --data-binary @.sndc.payload.json"
+ curlString="curl -skw %{http_code} -X POST $SDNC_HTTPX://$SDNC_USER:$SDNC_PWD@localhost:$SDNC_LOCAL_PORT$SDNC_API_URL$1 -H accept:application/json -H Content-Type:application/json --data-binary @.sndc.payload.json"
echo " CMD: "$curlString >> $HTTPLOG
res=$($curlString)
retcode=$?
return 1
fi
body=${res:0:${#res}-3}
+ echo " JSON: "$body >> $HTTPLOG
echo "$body" > .sdnc-reply.json
res=$(python3 ../common/extract_sdnc_reply.py .sdnc-reply.json)
echo " EXTRACED BODY+CODE: "$res >> $HTTPLOG
resp=status
if ( 'body' in output.keys()):
body=str(output['body'])
- bodyJson=json.loads(body)
- resp=str(json.dumps(bodyJson))+str(status)
+ try:
+ bodyJson=json.loads(body)
+ resp=str(json.dumps(bodyJson))+str(status)
+ except Exception as e1:
+ resp=body+str(status)
+
print(resp)
except Exception as e:
retcode=$?
if [ $retcode -ne 0 ]; then
echo " RETCODE: "$retcode
- echo -e $RED" ERROR - fatal error when executing curl."$ERED
+ echo -e $RED" FAIL - fatal error when executing curl."$ERED
return 1
fi
status=${res:${#res}-3}
echo -e $GREEN" OK"$EGREEN
return 0
fi
- echo -e $RED" ERROR - expected http response: "$1" but got http response: "$status $ERED
+ echo -e $RED" FAIL - expected http response: "$1" but got http response: "$status $ERED
return 1
}
echo -e $BOLD"INFO(${BASH_LINENO[0]}): $app, $2 = $(__do_curl $RIC_SIM_LOCALHOST$port/counter/$2)"$EBOLD
}
+# Tests if a variable value in the RIC simulator contains the target string and and optional timeout
+# Arg: <ric-id> <variable-name> <target-value> - This test set pass or fail depending on if the variable contains
+# the target or not.
+# Arg: <ric-id> <variable-name> <target-value> <timeout-in-sec> - This test waits up to the timeout seconds
+# before setting pass or fail depending on if the variable value contains the target
+# value or not.
+# (Function for test scripts)
+sim_contains_str() {
+
+ if [ $# -eq 3 ] || [ $# -eq 4 ]; then
+ app=$1
+ port=$(__find_sim_port $app)
+ __var_test $app "$RIC_SIM_LOCALHOST$port/counter/" $2 "contain_str" $3 $4
+ return 0
+ else
+ ((RES_CONF_FAIL++))
+ __print_err "needs three or four args: <ric-id> <sim-param> <target-value> [ timeout ]"
+ return 1
+ fi
+}
+
# Simulator API: Put a policy type in a ric
# args: <response-code> <ric-id> <policy-type-id> <policy-type-file>
# (Function for test scripts)
RIC_SIM_REMOTE_IMAGE="nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator"
RIC_SIM_REMOTE_IMAGE_TAG="1.0.1"
-RIC_SIM_REMOTE_IMAGE="a1test"
-RIC_SIM_REMOTE_IMAGE_TAG="latest"
-
#Consul remote image and tag
CONSUL_REMOTE_IMAGE="consul"
export MR_EXTERNAL_SECURE_PORT=3906 # MR stub container external secure port (host -> container)
export MR_INTERNAL_SECURE_PORT=3906 # MR stub container internal secure port (container -> container)
export MR_APP_NAME="message-router" # Name for the MR
+export MR_READ_URL="/events/A1-POLICY-AGENT-READ/users/policy-agent" # Path to read messages from MR
+export MR_WRITE_URL="/events/A1-POLICY-AGENT-WRITE" # Path write messages to MR
export CR_EXTERNAL_PORT=8090 # Callback receiver container external port (host -> container)
export CR_INTERNAL_PORT=8090 # Callback receiver container internal port (container -> container)
export SDNC_APP_NAME="a1-controller" # Name of the SNDC A1 Controller container
export SDNC_EXTERNAL_PORT=8282 # SNDC A1 Controller container external port (host -> container)
export SDNC_INTERNAL_PORT=8181 # SNDC A1 Controller container internal port (container -> container)
+export SDNC_EXTERNAL_SECURE_PORT=8443 # SNDC A1 Controller container external securee port (host -> container)
+export SDNC_INTERNAL_SECURE_PORT=8443 # SNDC A1 Controller container internal secure port (container -> container)
export SDNC_DB_APP_NAME="sdnc-db" # Name of the SDNC DB container
SDNC_USER="admin" # SDNC username
SDNC_PWD="Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U" # SNDC PWD
SDNC_API_URL="/restconf/operations/A1-ADAPTER-API:" # Base url path for SNDC API
+SDNC_ALIVE_URL="/apidoc/explorer/" # Base url path for SNDC API docs (for alive check)
SDNC_KARAF_LOG="/opt/opendaylight/data/log/karaf.log" # Path to karaf log
export SDNC_ONAP_APP_NAME="a1-adapter" # Name of the ONAP A1 Adapter container
export SDNC_ONAP_EXTERNAL_PORT=8282 # ONAP A1 Adapter container external port (host -> container)
export SDNC_ONAP_INTERNAL_PORT=8181 # ONAP A1 Adapter container internal port (container -> container)
+export SDNC_ONAP_EXTERNAL_SECURE_PORT=8443 # SNDC A1 Adapter container external securee port (host -> container)
+export SDNC_ONAP_INTERNAL_SECURE_PORT=8343 # SNDC A1 Adapter container internal secure port (container -> container)
export SDNC_ONAP_DB_APP_NAME="sdnc-onap-db" # Name of the ONAP A1 Adapter DB container
SDNC_ONAP_USER="admin" # ONAP A1 Adapter username
SDNC_ONAP_PWD="Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U" # ONAP A1 Adapter PWD
SDNC_ONAP_API_URL="/restconf/operations/A1-ADAPTER-API:" # Base url path for ONAP A1 Adapter API
+SDNC_ONAP_ALIVE_URL="/apidoc/explorer/" # Base url path for ONAP A1 Adapter API docs (for alive check)
SDNC_ONAP_PROPERTIES_FILE="/opt/onap/ccsdk/data/properties/a1-adapter-api-dg.properties"
SDNC_ONAP_KARAF_LOG="/opt/opendaylight/data/log/karaf.log" # Path to karaf log
fi
# Just resetting any previous echo formatting...
-echo -ne $EBOLD$ERED$EGREEN
+echo -ne $EBOLD
# source test environment variables
. ../common/test_env.sh
G2_COUNT=0
G3_COUNT=0
-# Var to switch between http and https. Extra curl flag needed for https
+# Vars to switch between http and https. Extra curl flag needed for https
export RIC_SIM_HTTPX="http"
export RIC_SIM_LOCALHOST=$RIC_SIM_HTTPX"://localhost:"
export RIC_SIM_PORT=$RIC_SIM_INTERNAL_PORT
export RIC_SIM_CERT_MOUNT_DIR="./fakedir" #Fake dir so that the sim container does not find any cert
+export MR_HTTPX="http"
+export MR_PORT=$MR_INTERNAL_PORT
+export MR_LOCAL_PORT=$MR_EXTERNAL_PORT #When agent is running outside the docker net
+
+export SDNC_HTTPX="http"
+export SDNC_PORT=$SDNC_INTERNAL_PORT
+export SDNC_LOCAL_PORT=$SDNC_EXTERNAL_PORT #When agent is running outside the docker net
+
#Localhost constant
LOCALHOST="http://localhost:"
# Make curl retries for http response codes set in this env var, space separated list of codes
AGENT_RETRY_CODES=""
+# Var to contol if the agent runs in a container (normal = 0) or as application on the local machine ( = 1)
+AGENT_STAND_ALONE=0
+
# Var to hold 'auto' in case containers shall be stopped when test case ends
AUTO_CLEAN=""
RES_PASS=0
RES_FAIL=0
RES_CONF_FAIL=0
+RES_DEVIATION=0
+
+#File to keep deviation messages
+DEVIATION_FILE=".tmp_deviations"
+rm $DEVIATION_FILE &> /dev/null
#Var for measuring execution time
TCTEST_START=$SECONDS
+#File to save timer measurement results
+TIMER_MEASUREMENTS=".timer_measurement.txt"
+echo -e "Activity \t Duration" > $TIMER_MEASUREMENTS
+
+
echo "-------------------------------------------------------------------------------------------------"
echo "----------------------------------- Test case: "$ATC
echo "----------------------------------- Started: "$(date)
app="Consul"; __check_and_pull_image $1 "$app" $CONSUL_APP_NAME $CONSUL_IMAGE
app="CBS"; __check_and_pull_image $1 "$app" $CBS_APP_NAME $CBS_IMAGE
app="SDNC DB"; __check_and_pull_image $1 "$app" $SDNC_APP_NAME $SDNC_DB_IMAGE
-app="SDNC ONAP A1 Adapter"; __check_and_pull_image $1 "$app" $SDNC_ONAP_APP_NAME $SDNC_ONAP_A1_ADAPTER_IMAGE
-app="SDNC ONAP DB"; __check_and_pull_image $1 "$app" $SDNC_ONAP_APP_NAME $SDNC_ONAP_DB_IMAGE
+
+echo -e $YELLOW"SDNC ONAP image is skipped"$EYELLOW
+#app="SDNC ONAP A1 Adapter"; __check_and_pull_image $1 "$app" $SDNC_ONAP_APP_NAME $SDNC_ONAP_A1_ADAPTER_IMAGE
+#app="SDNC ONAP DB"; __check_and_pull_image $1 "$app" $SDNC_ONAP_APP_NAME $SDNC_ONAP_DB_IMAGE
# MR stub image not checked, will be built by this script - only local image
# CR stub image not checked, will be built by this script - only local image
fi
fi
+ if [ $RES_DEVIATION -gt 0 ]; then
+ echo "Test case deviations"
+ echo "===================================="
+ cat $DEVIATION_FILE
+ fi
+ echo ""
+ echo "Timer measurement in the test script"
+ echo "===================================="
+ column -t -s $'\t' $TIMER_MEASUREMENTS
+ echo ""
+
echo "++++ Number of tests: "$RES_TEST
echo "++++ Number of passed tests: "$RES_PASS
echo "++++ Number of failed tests: "$RES_FAIL
echo ""
echo "++++ Number of failed configs: "$RES_CONF_FAIL
+ echo ""
+ echo "++++ Number of test case deviations: "$RES_DEVIATION
+ echo ""
echo "------------------------------------- Test case complete ---------------------------------"
echo "-------------------------------------------------------------------------------------------------"
echo ""
###### Functions for start, configuring, stoping, cleaning etc ######
#####################################################################
+# Start timer for time measurement
+# args - (any args will be printed though)
+start_timer() {
+ echo -e $BOLD"INFO(${BASH_LINENO[0]}): "${FUNCNAME[0]}"," $@ $EBOLD
+ TC_TIMER=$SECONDS
+ echo " Timer started"
+}
+
+# Print the value of the time (in seconds)
+# args - <timer message to print> - timer value and message will be printed both on screen
+# and in the timer measurement report
+print_timer() {
+ echo -e $BOLD"INFO(${BASH_LINENO[0]}): "${FUNCNAME[0]}"," $@ $EBOLD
+ if [ $# -lt 1 ]; then
+ ((RES_CONF_FAIL++))
+ __print_err "need 1 or more args, <timer message to print>" $@
+ exit 1
+ fi
+ duration=$(($SECONDS-$TC_TIMER))
+ if [ $duration -eq 0 ]; then
+ duration="<1 second"
+ else
+ duration=$duration" seconds"
+ fi
+ echo " Timer duration :" $duration
+
+ echo -e "${@:1} \t $duration" >> $TIMER_MEASUREMENTS
+}
+
+# Print the value of the time (in seconds) and reset the timer
+# args - <timer message to print> - timer value and message will be printed both on screen
+# and in the timer measurement report
+print_and_reset_timer() {
+ echo -e $BOLD"INFO(${BASH_LINENO[0]}): "${FUNCNAME[0]}"," $@ $EBOLD
+ if [ $# -lt 1 ]; then
+ ((RES_CONF_FAIL++))
+ __print_err "need 1 or more args, <timer message to print>" $@
+ exit 1
+ fi
+ duration=$(($SECONDS-$TC_TIMER))" seconds"
+ if [ $duration -eq 0 ]; then
+ duration="<1 second"
+ else
+ duration=$duration" seconds"
+ fi
+ echo " Timer duration :" $duration
+ TC_TIMER=$SECONDS
+ echo " Timer reset"
+
+ echo -e "${@:1} \t $duration" >> $TIMER_MEASUREMENTS
+
+}
+# Print info about a deviations from intended tests
+# Each deviation counted is also printed in the testreport
+# args <deviation message to print>
+deviation() {
+ echo -e $BOLD"DEVIATION(${BASH_LINENO[0]}): "${FUNCNAME[0]} $EBOLD
+ if [ $# -lt 1 ]; then
+ ((RES_CONF_FAIL++))
+ __print_err "need 1 or more args, <deviation message to print>" $@
+ exit 1
+ fi
+ ((RES_DEVIATION++))
+ echo -e $BOLD$YELLOW" Test case deviation: ${@:1}"$EYELLOW$EBOLD
+ echo "Line: ${BASH_LINENO[0]} - ${@:1}" >> $DEVIATION_FILE
+ echo ""
+}
# Stop and remove all containers
# args: -
__find_sim_port() {
name=$1" " #Space appended to prevent matching 10 if 1 is desired....
cmdstr="docker ps --filter name=${name} --format \"{{.Names}} {{.Ports}}\" | grep '${name}' | sed s/0.0.0.0:// | cut -f 2 -d ' ' | cut -f 1 -d '-'"
+ cmdstr="docker ps --filter name=${name} --format \"{{.Names}} {{.Ports}}\" | grep '${name}' | cut -f 3 -d ',' | sed s/0.0.0.0:// | cut -f 2 -d ' ' | cut -f 1 -d '-'"
+
res=$(eval $cmdstr)
if [[ "$res" =~ ^[0-9]+$ ]]; then
echo $res
appname=$1
localport=$2
url=$3
- app_started=0
- for i in {1..10}; do
- if [ "$(docker inspect --format '{{ .State.Running }}' $appname)" == "true" ]; then
- echo -e " Container $BOLD$1$EBOLD$GREEN running$EGREEN on$BOLD image $(docker inspect --format '{{ .Config.Image }}' ${appname}) $EBOLD"
- app_started=1
- break
- else
- sleep $i
- fi
- done
- if [ $app_started -eq 0 ]; then
- ((RES_CONF_FAIL++))
- echo ""
- echo -e $RED" Container $BOLD${appname}$EBOLD could not be started"$ERED
- return 1
- fi
- if [ $localport -eq 0 ]; then
- while [ $localport -eq 0 ]; do
- echo -ne " Waiting for container ${appname} to publish its ports...${SAMELINE}"
- localport=$(__find_sim_port $appname)
- sleep 1
- echo -ne " Waiting for container ${appname} to publish its ports...retrying....${SAMELINE}"
+ if [[ $appname != "STANDALONE_"* ]] ; then
+ app_started=0
+ for i in {1..10}; do
+ if [ "$(docker inspect --format '{{ .State.Running }}' $appname)" == "true" ]; then
+ echo -e " Container $BOLD$1$EBOLD$GREEN running$EGREEN on$BOLD image $(docker inspect --format '{{ .Config.Image }}' ${appname}) $EBOLD"
+ app_started=1
+ break
+ else
+ sleep $i
+ fi
done
- echo -ne " Waiting for container ${appname} to publish its ports...retrying....$GREEN OK $EGREEN"
- echo ""
+ if [ $app_started -eq 0 ]; then
+ ((RES_CONF_FAIL++))
+ echo ""
+ echo -e $RED" Container $BOLD${appname}$EBOLD could not be started"$ERED
+ return 1
+ fi
+ if [ $localport -eq 0 ]; then
+ while [ $localport -eq 0 ]; do
+ echo -ne " Waiting for container ${appname} to publish its ports...${SAMELINE}"
+ localport=$(__find_sim_port $appname)
+ sleep 1
+ echo -ne " Waiting for container ${appname} to publish its ports...retrying....${SAMELINE}"
+ done
+ echo -ne " Waiting for container ${appname} to publish its ports...retrying....$GREEN OK $EGREEN"
+ echo ""
+ fi
fi
pa_st=false
echo -e $RED"Problem to launch container(s) with docker-compose"$ERED
cat .dockererr
fi
+ elif [ "$2" == "STANDALONE" ]; then
+ echo "Skipping docker-compose"
else
docker-compose up -d $2 &> .dockererr
if [ $? -ne 0 ]; then
cat .dockererr
fi
fi
-
+ app_prefix=""
+ if [ "$2" == "STANDALONE" ]; then
+ app_prefix="STANDALONE_"
+ fi
shift; shift;
cntr=0
while [ $cntr -lt $variableArgCount ]; do
- app=$1; shift;
+ app=$app_prefix$1; shift;
port=$1; shift;
url=$1; shift;
httpx=$1; shift;
return 1
fi
body="$(__do_curl $LOCALHOST$CBS_EXTERNAL_PORT/service_component_all/$POLICY_AGENT_APP_NAME)"
+ echo $body > ".output"$1
if [ $? -ne 0 ]; then
echo -e $RED" FAIL - json config could not be loaded from consul/cbs, contents cannot be checked." $ERED
config_json=$config_json"\n \"controller\": ["
config_json=$config_json"\n {"
config_json=$config_json"\n \"name\": \"$SDNC_APP_NAME\","
- config_json=$config_json"\n \"baseUrl\": \"http://$SDNC_APP_NAME:$SDNC_INTERNAL_PORT\","
+ if [ $AGENT_STAND_ALONE -eq 0 ]; then
+ config_json=$config_json"\n \"baseUrl\": \"$SDNC_HTTPX://$SDNC_APP_NAME:$SDNC_PORT\","
+ else
+ config_json=$config_json"\n \"baseUrl\": \"$SDNC_HTTPX://localhost:$SDNC_LOCAL_PORT\","
+ fi
config_json=$config_json"\n \"userName\": \"$SDNC_USER\","
config_json=$config_json"\n \"password\": \"$SDNC_PWD\""
config_json=$config_json"\n }"
config_json=$config_json"\n \"controller\": ["
config_json=$config_json"\n {"
config_json=$config_json"\n \"name\": \"$SDNC_ONAP_APP_NAME\","
- config_json=$config_json"\n \"baseUrl\": \"http://$SDNC_ONAP_APP_NAME:$SDNC_ONAP_INTERNAL_PORT\","
+ if [ $AGENT_STAND_ALONE -eq 0 ]; then
+ config_json=$config_json"\n \"baseUrl\": \"http://$SDNC_ONAP_APP_NAME:$SDNC_ONAP_INTERNAL_PORT\","
+ else
+ config_json=$config_json"\n \"baseUrl\": \"http://localhost:$SDNC_ONAP_EXTERNAL_PORT\","
+ fi
config_json=$config_json"\n \"userName\": \"$SDNC_ONAP_USER\","
config_json=$config_json"\n \"password\": \"$SDNC_ONAP_PWD\""
config_json=$config_json"\n }"
config_json=$config_json"\n \"dmaap_publisher\": {"
config_json=$config_json"\n \"type\": \"$MR_APP_NAME\","
config_json=$config_json"\n \"dmaap_info\": {"
- config_json=$config_json"\n \"topic_url\": \"http://$MR_APP_NAME:$MR_INTERNAL_PORT/events/A1-POLICY-AGENT-WRITE\""
+ if [ $AGENT_STAND_ALONE -eq 0 ]; then
+ config_json=$config_json"\n \"topic_url\": \"$MR_HTTPX://$MR_APP_NAME:$MR_PORT$MR_WRITE_URL\""
+ else
+ config_json=$config_json"\n \"topic_url\": \"$MR_HTTPX://localhost:$MR_LOCAL_PORT$MR_WRITE_URL\""
+ fi
config_json=$config_json"\n }"
config_json=$config_json"\n }"
config_json=$config_json"\n },"
config_json=$config_json"\n \"dmaap_subscriber\": {"
config_json=$config_json"\n \"type\": \"$MR_APP_NAME\","
config_json=$config_json"\n \"dmaap_info\": {"
- config_json=$config_json"\n \"topic_url\": \"http://$MR_APP_NAME:$MR_INTERNAL_PORT/events/A1-POLICY-AGENT-READ/users/policy-agent\""
+ if [ $AGENT_STAND_ALONE -eq 0 ]; then
+ config_json=$config_json"\n \"topic_url\": \"$MR_HTTPX://$MR_APP_NAME:$MR_PORT$MR_READ_URL\""
+ else
+ config_json=$config_json"\n \"topic_url\": \"$MR_HTTPX://localhost:$MR_LOCAL_PORT$MR_READ_URL\""
+ fi
config_json=$config_json"\n }"
config_json=$config_json"\n }"
config_json=$config_json"\n },"
fi
config_json=$config_json"\n {"
config_json=$config_json"\n \"name\": \"$ric\","
- config_json=$config_json"\n \"baseUrl\": \"$RIC_SIM_HTTPX://$ric:$RIC_SIM_PORT\","
+ if [ $AGENT_STAND_ALONE -eq 0 ]; then
+ config_json=$config_json"\n \"baseUrl\": \"$RIC_SIM_HTTPX://$ric:$RIC_SIM_PORT\","
+ else
+ config_json=$config_json"\n \"baseUrl\": \"$RIC_SIM_HTTPX://localhost:$(__find_sim_port $ric)\","
+ fi
if [ $1 == "SDNC" ]; then
config_json=$config_json"\n \"controller\": \"$SDNC_APP_NAME\","
elif [ $1 == "SDNC_ONAP" ]; then
echo -e $BOLD"Starting SDNC A1 Controller"$EBOLD
- __start_container sdnc NODOCKERARGS $SDNC_APP_NAME $SDNC_EXTERNAL_PORT "/apidoc/explorer" "http"
+ __start_container sdnc NODOCKERARGS $SDNC_APP_NAME $SDNC_EXTERNAL_PORT $SDNC_ALIVE_URL "http"
+
+}
+
+use_sdnc_http() {
+ echo -e $BOLD"Using http between agent and SDNC"$EBOLD
+ export SDNC_HTTPX="http"
+ export SDNC_PORT=$SDNC_INTERNAL_PORT
+ export SDNC_LOCAL_PORT=$SDNC_EXTERNAL_PORT
+ echo ""
+}
+use_sdnc_https() {
+ echo -e $BOLD"Using https between agent and SDNC"$EBOLD
+ export SDNC_HTTPX="https"
+ export SDNC_PORT=$SDNC_INTERNAL_SECURE_PORT
+ export SDNC_LOCAL_PORT=$SDNC_EXTERNAL_SECURE_PORT
+ echo ""
}
#######################
echo -e $BOLD"Starting SDNC ONAP A1 Adapter"$EBOLD
- __start_container sdnc_onap NODOCKERARGS $SDNC_ONAP_APP_NAME $SDNC_ONAP_EXTERNAL_PORT "/apidoc/explorer" "http"
+ __start_container sdnc_onap NODOCKERARGS $SDNC_ONAP_APP_NAME $SDNC_ONAP_EXTERNAL_PORT $SDNC_ONAP_ALIVE_URL "http"
}
exit 1
fi
+
#Config of the prop file shall be inserted here
#Copy file to /tmp and then to final destination, a trick to get correct permission of the file.
echo -e $BOLD"Starting Message Router 'mrstub'"$EBOLD
export MR_CERT_MOUNT_DIR="./cert"
__start_container mr NODOCKERARGS $MR_APP_NAME $MR_EXTERNAL_PORT "/" "http"
+}
+use_mr_http() {
+ echo -e $BOLD"Using http between agent and MR"$EBOLD
+ export MR_HTTPX="http"
+ export MR_PORT=$MR_INTERNAL_PORT
+ export MR_LOCAL_PORT=$MR_EXTERNAL_PORT
+ echo ""
+}
+
+use_mr_https() {
+ echo -e $BOLD"Using https between agent and MR"$EBOLD
+ export MR_HTTPX="https"
+ export MR_PORT=$MR_INTERNAL_SECURE_PORT
+ export MR_LOCAL_PORT=$MR_EXTERNAL_SECURE_PORT
+ echo ""
}
+
################
### CR functions
################
### Policy Agents functions
###########################
-# Start the policy agwent
+# Use an agent on the local machine instead of container
+use_agent_stand_alone() {
+ AGENT_STAND_ALONE=1
+}
+
+# Start the policy agent
# args: -
# (Function for test scripts)
start_policy_agent() {
echo -e $BOLD"Starting Policy Agent"$EBOLD
- __start_container policy_agent NODOCKERARGS $POLICY_AGENT_APP_NAME $POLICY_AGENT_EXTERNAL_PORT "/status" "http"
+ if [ $AGENT_STAND_ALONE -eq 0 ]; then
+ __start_container policy_agent NODOCKERARGS $POLICY_AGENT_APP_NAME $POLICY_AGENT_EXTERNAL_PORT "/status" "http"
+ else
+ echo -e $RED"The consul config produced by this test script (filename '<fullpath-to-autotest-dir>.output<file-name>"$ERED
+ echo -e $RED"where the file name is the file in the consul_config_app command in this script) must be pointed out by the agent "$ERED
+ echo -e $RED"application.yaml"$ERED
+ echo -e $RED"The application jar may need to be built beforefor continuing"$ERED
+ echo -e $RED"The agent shall now be running on port $POLICY_AGENT_EXTERNAL_PORT for http"$ERED
+
+ read -p "<press any key to continue>"
+ __start_container policy_agent "STANDALONE" $POLICY_AGENT_APP_NAME $POLICY_AGENT_EXTERNAL_PORT "/status" "http"
+ fi
}
echo -e $BOLD"Using agent REST interface with https"$EBOLD
export ADAPTER=$RESTBASE_SECURE
echo ""
+ return 0
}
# All calls to the agent will be directed to the agent dmaap interface from now on
# args: -
# (Function for test scripts)
use_agent_dmaap() {
- echo -e $BOLD"Using agent DMAAP interface"$EBOLD
+ echo -e $BOLD"Agent using DMAAP interface"$EBOLD
export ADAPTER=$DMAAPBASE
echo ""
-
+ return 0
}
+
# Turn on debug level tracing in the agent
# args: -
# (Function for test scripts)
__print_err "could not set debug mode" $@
return 1
fi
- return 0
echo ""
+ return 0
}
# Perform curl retries when making direct call to the agent for the specified http response codes
echo -e $BOLD"Do curl retries to the agent REST inteface for these response codes:$@"$EBOLD
AGENT_RETRY_CODES=$@
echo ""
+ return
}
#################
__print_err "need one arg, <file-prefix>" $@
exit 1
fi
- echo -e $BOLD"Storing all container logs, Policy Agent app log and consul config using prefix: "$1
+ echo -e $BOLD"Storing all container logs, Policy Agent app log and consul config using prefix: "$1$EBOLD
docker logs $CONSUL_APP_NAME > $TESTLOGS/$ATC/$1_consul.log 2>&1
docker logs $CBS_APP_NAME > $TESTLOGS/$ATC/$1_cbs.log 2>&1
fi
#echo -e "---- ${1} sim test criteria: \033[1m ${3} \033[0m ${4} ${5} within ${6} seconds ----"
- echo -e $BOLD"TEST(${BASH_LINENO[1]}): ${1}, ${3} ${4} ${5} within ${6} seconds"
+ echo -e $BOLD"TEST(${BASH_LINENO[1]}): ${1}, ${3} ${4} ${5} within ${6} seconds"$EBOLD
((RES_TEST++))
start=$SECONDS
ctr=0
fi
echo -e $BOLD"INFO(${BASH_LINENO[0]}): mrstub, $1 = $(__do_curl $LOCALHOST$MR_EXTERNAL_PORT/counter/$1)"$EBOLD
}
-
-
try:
print("Received callback for id: "+id +", content-type="+request.content_type)
try:
- print("data:"+request.get_data)
if (request.content_type == MIME_JSON):
msg = request.json
print("Payload(json): "+str(msg))
print("Payload(content-type="+request.content_type+"). Setting data to empty, quoted, string")
except:
msg="\"\""
- print("Payload does not contain any json or text data, setting empty string as payload")
+ print("(Exception) Payload does not contain any json or text data, setting empty string as payload")
cntr_msg_callbacks += 1
if (id in msg_callbacks.keys()):
entrypoint: ["/opt/onap/sdnc/bin/startODL.sh"]
ports:
- ${SDNC_EXTERNAL_PORT}:${SDNC_INTERNAL_PORT}
+ - ${SDNC_EXTERNAL_SECURE_PORT}:${SDNC_INTERNAL_SECURE_PORT}
links:
- db:dbhost
- db:sdnctldb01
--- /dev/null
+.dockererr
\ No newline at end of file
entrypoint: ["/opt/onap/sdnc/bin/startODL.sh"]
ports:
- ${SDNC_ONAP_EXTERNAL_PORT}:${SDNC_ONAP_INTERNAL_PORT}
+ - ${SDNC_ONAP_EXTERNAL_SECURE_PORT}:${SDNC_ONAP_INTERNAL_SECURE_PORT}
links:
- db:dbhost
- db:sdnctldb01