#!/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="Testing of service registration timeouts and keepalive"

#App names to include in the test when running docker, space separated list
DOCKER_INCLUDED_IMAGES="CBS CONSUL CP CR MR PA RICSIM NGW KUBEPROXY"

#App names to include in the test when running kubernetes, space separated list
KUBE_INCLUDED_IMAGES="CP CR MR PA RICSIM KUBEPROXY NGW"
#Prestarted app (not started by script) to include in the test when running kubernetes, space separated list
KUBE_PRESTARTED_IMAGES=""

#Ignore image in DOCKER_INCLUDED_IMAGES, KUBE_INCLUDED_IMAGES if
#the image is not configured in the supplied env_file
#Used for images not applicable to all supported profile
CONDITIONALLY_IGNORED_IMAGES="NGW"

#Supported test environment profiles
SUPPORTED_PROFILES="ONAP-GUILIN ONAP-HONOLULU ONAP-ISTANBUL ORAN-CHERRY ORAN-D-RELEASE ORAN-E-RELEASE"
#Supported run modes
SUPPORTED_RUNMODES="DOCKER KUBE"

. ../common/testcase_common.sh  $@
. ../common/agent_api_functions.sh
. ../common/consul_cbs_functions.sh
. ../common/control_panel_api_functions.sh
. ../common/cr_api_functions.sh
. ../common/mr_api_functions.sh
. ../common/ricsimulator_api_functions.sh
. ../common/kube_proxy_api_functions.sh
. ../common/gateway_api_functions.sh

setup_testenvironment

#### TEST BEGIN ####

generate_policy_uuid

use_cr_http
use_simulator_http
use_mr_http
use_agent_rest_http

clean_environment

start_kube_proxy

start_ric_simulators ricsim_g1 1  OSC_2.1.0
start_ric_simulators ricsim_g2 1  STD_1.1.3
if [ "$PMS_VERSION" == "V2" ]; then
    start_ric_simulators ricsim_g3 1  STD_2.0.0
fi

start_mr

start_cr

if [ $RUNMODE == "DOCKER" ]; then
    start_consul_cbs
fi

start_control_panel $SIM_GROUP/$CONTROL_PANEL_COMPOSE_DIR/$CONTROL_PANEL_CONFIG_FILE

if [ ! -z "$NRT_GATEWAY_APP_NAME" ]; then
    start_gateway $SIM_GROUP/$NRT_GATEWAY_COMPOSE_DIR/$NRT_GATEWAY_CONFIG_FILE
fi

start_policy_agent NORPOXY $SIM_GROUP/$POLICY_AGENT_COMPOSE_DIR/$POLICY_AGENT_CONFIG_FILE

prepare_consul_config      NOSDNC  ".consul_config.json"

if [ $RUNMODE == "KUBE" ]; then
    agent_load_config                       ".consul_config.json"
else
    consul_config_app                      ".consul_config.json"
fi

set_agent_debug

mr_equal requests_submitted 0

#Check agent alive
api_get_status 200

#Print simulator interface version
sim_print ricsim_g1_1 interface
sim_print ricsim_g2_1 interface
if [ "$PMS_VERSION" == "V2" ]; then
    sim_print ricsim_g3_1 interface
fi

api_put_service 201 "service1" 15 "$CR_SERVICE_APP_PATH/service1"

api_get_services 200 "service1" "service1" 15 "$CR_SERVICE_APP_PATH/service1"

api_put_service 201 "service2" 120 "$CR_SERVICE_APP_PATH/service2"

api_get_services 200 "service2" "service2" 120 "$CR_SERVICE_APP_PATH/service2"

api_put_service 200 "service1" 50 "$CR_SERVICE_APP_PATH/service1"
api_put_service 200 "service2" 180 "$CR_SERVICE_APP_PATH/service2"

api_get_services 200 "service1" "service1" 50 "$CR_SERVICE_APP_PATH/service1"
api_get_services 200 "service2" "service2" 180 "$CR_SERVICE_APP_PATH/service2"

api_get_service_ids 200 "service1" "service2"

sleep_wait 30 "Waiting for keep alive timeout"

api_get_services 200 "service1" "service1" 50 "$CR_SERVICE_APP_PATH/service1"
api_get_services 200 "service2" "service2" 180 "$CR_SERVICE_APP_PATH/service2"

sleep_wait 100 "Waiting for keep alive timeout"

api_get_services 404 "service1"
api_get_services 200 "service2" "service2" 180 "$CR_SERVICE_APP_PATH/service2"

api_delete_services 204 "service2"

api_get_services 404 "service1"
api_get_services 404 "service2"

api_put_service 201 "service3" 60 "$CR_SERVICE_APP_PATH/service3"

api_get_services 200 "service3" "service3" 60 "$CR_SERVICE_APP_PATH/service3"

sleep_wait 30 "Waiting for keep alive timeout"

api_put_service 200 "service3" 60 "$CR_SERVICE_APP_PATH/service3"

sleep_wait 100 "Waiting for keep alive timeout"

api_get_services 404 "service3"

api_put_service 201 "service4" 120 "$CR_SERVICE_APP_PATH/service4"

sleep_wait 60 "Waiting for keep alive timeout"

api_get_services 200 "service4" "service4" 120 "$CR_SERVICE_APP_PATH/service4"

api_put_services_keepalive 200 "service4"

sleep_wait 90 "Waiting for keep alive timeout"

api_get_services 200 "service4" "service4" 120 "$CR_SERVICE_APP_PATH/service4"

api_delete_services 204 "service4"

api_get_services 404 "service4"

api_get_services 404 "service1"
api_get_services 404 "service2"
api_get_services 404 "service3"

api_get_service_ids 200

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 "service1"
api_put_services_keepalive 404 "service2"
api_put_services_keepalive 404 "service3"
api_put_services_keepalive 404 "service4"

# Policy delete after timeout
api_put_service 201 "service10" 600 "$CR_SERVICE_APP_PATH/service10"

sim_put_policy_type 201 ricsim_g1_1 1 testdata/OSC/sim_1.json

if [ "$PMS_VERSION" == "V2" ]; then

    sim_put_policy_type 201 ricsim_g3_1 STD_QOS2_0.1.0 testdata/STD2/sim_qos2.json

    api_equal json:rics 3 300

    #api_equal json:policy_schemas 2 120

    api_equal json:policy-types 3 120

    api_equal json:policies 0
else
    api_equal json:rics 2 300

    api_equal json:policy_schemas 2 120

    api_equal json:policy_types 2

    api_equal json:policies 0
fi

if [ "$PMS_VERSION" == "V2" ]; then
    notificationurl=$CR_SERVICE_APP_PATH"/test"
else
    notificationurl=""
fi

api_put_policy 201 "service10" ricsim_g1_1 1 5000 NOTRANSIENT $notificationurl testdata/OSC/pi1_template.json
api_put_policy 201 "service10" ricsim_g2_1 NOTYPE 5100 NOTRANSIENT $notificationurl testdata/STD/pi1_template.json

if [ "$PMS_VERSION" == "V2" ]; then
    api_put_policy 201 "service10" ricsim_g3_1 STD_QOS2_0.1.0 5200 NOTRANSIENT $notificationurl testdata/STD2/pi_qos2_template.json
    api_equal json:policies 3
else
    api_equal json:policies 2
fi

sim_equal ricsim_g1_1 num_instances 1
sim_equal ricsim_g2_1 num_instances 1

api_put_policy 201 "service10" ricsim_g1_1 1 5001 true $notificationurl testdata/OSC/pi1_template.json
api_put_policy 201 "service10" ricsim_g2_1 NOTYPE 5101 true $notificationurl testdata/STD/pi1_template.json

if [ "$PMS_VERSION" == "V2" ]; then
    api_put_policy 201 "service10" ricsim_g3_1 STD_QOS2_0.1.0 5201 true $notificationurl testdata/STD2/pi_qos2_template.json
    api_equal json:policies 6
else
    api_equal json:policies 4
fi

sim_equal ricsim_g1_1 num_instances 2
sim_equal ricsim_g2_1 num_instances 2
if [ "$PMS_VERSION" == "V2" ]; then
    sim_equal ricsim_g3_1 num_instances 2
fi

sim_post_delete_instances 200 ricsim_g1_1
sim_post_delete_instances 200 ricsim_g2_1

if [ "$PMS_VERSION" == "V2" ]; then
    sim_post_delete_instances 200 ricsim_g3_1
fi

#Wait for recreate of non transient policy
if [ "$PMS_VERSION" == "V2" ]; then
    api_equal json:policies 3 180
else
    api_equal json:policies 2 180
fi

sim_equal ricsim_g1_1 num_instances 1
sim_equal ricsim_g2_1 num_instances 1
if [ "$PMS_VERSION" == "V2" ]; then
    sim_equal ricsim_g3_1 num_instances 1
fi

api_put_service 200 "service10" 10 "$CR_SERVICE_APP_PATH/service10"

#Wait for service expiry
api_equal json:policies 0 120

sim_equal ricsim_g1_1 num_instances 0
sim_equal ricsim_g2_1 num_instances 0
if [ "$PMS_VERSION" == "V2" ]; then
    sim_equal ricsim_g3_1 num_instances 0
fi

api_get_service_ids 200

mr_equal requests_submitted 0

check_policy_agent_logs

#### TEST COMPLETE ####

store_logs          END

print_result

auto_clean_environment