X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2Fauto-test%2FFTC1100.sh;h=b8c304516f47b3ff2c73537fedb7366a1400a70b;hb=refs%2Fchanges%2F62%2F8262%2F1;hp=ce95a7745a15cb63a47095cafb88634b91455af9;hpb=d2aeca8843fe3ffca2e73dec5b64daeef0dda938;p=nonrtric.git diff --git a/test/auto-test/FTC1100.sh b/test/auto-test/FTC1100.sh index ce95a774..b8c30451 100755 --- a/test/auto-test/FTC1100.sh +++ b/test/auto-test/FTC1100.sh @@ -18,13 +18,19 @@ # -TC_ONELINE_DESCR="ICS full interfaces walkthrough" +TC_ONELINE_DESCR="ICS full interfaces walkthrough - with or without istio enabled" + +USE_ISTIO=1 #App names to include in the test when running docker, space separated list DOCKER_INCLUDED_IMAGES="ICS PRODSTUB CR RICSIM CP HTTPPROXY NGW KUBEPROXY" #App names to include in the test when running kubernetes, space separated list -KUBE_INCLUDED_IMAGES="PRODSTUB CR ICS RICSIM CP HTTPPROXY KUBEPROXY NGW" +if [ $USE_ISTIO -eq 0 ]; then + KUBE_INCLUDED_IMAGES="PRODSTUB CR ICS RICSIM CP HTTPPROXY KUBEPROXY NGW" +else + KUBE_INCLUDED_IMAGES="PRODSTUB CR ICS RICSIM CP HTTPPROXY KUBEPROXY NGW KEYCLOAK ISTIO AUTHSIDECAR" +fi #Prestarted app (not started by script) to include in the test when running kubernetes, space separated list KUBE_PRESTARTED_IMAGES="" @@ -48,18 +54,86 @@ FLAT_A1_EI="1" clean_environment +if [ $RUNMODE != "KUBE" ]; then + USE_ISTIO=0 + echo "ISTIO not supported by docker - setting USE-ISTIO=0" +fi + +if [ $USE_ISTIO -eq 1 ]; then + echo -e $RED"#########################################"$ERED + echo -e $RED"# Work around istio jwks cache"$ERED + echo -e $RED"# Cycle istiod down and up to clear cache"$ERED + echo "" + __kube_scale deployment istiod istio-system 0 + __kube_scale deployment istiod istio-system 1 + echo -e $RED"# Cycle istiod done" + echo -e $RED"#########################################"$ERED + echo "" + + istio_enable_istio_namespace $KUBE_SIM_NAMESPACE + istio_enable_istio_namespace $KUBE_NONRTRIC_NAMESPACE + istio_enable_istio_namespace $KUBE_A1SIM_NAMESPACE +fi + start_kube_proxy +set_kubeproxy_debug + +if [ $USE_ISTIO -eq 1 ]; then + use_ics_rest_http -use_ics_rest_https + use_prod_stub_http -use_prod_stub_https + use_simulator_http -use_simulator_https + use_cr_http +else + use_ics_rest_https + + use_prod_stub_https -use_cr_https + use_simulator_https + + use_cr_https +fi start_http_proxy +if [ $USE_ISTIO -eq 1 ]; then + start_keycloak + + keycloak_api_obtain_admin_token + + keycloak_api_create_realm nrtrealm true 60 + keycloak_api_create_confidential_client nrtrealm icsc + keycloak_api_generate_client_secret nrtrealm icsc + keycloak_api_get_client_secret nrtrealm icsc + keycloak_api_create_client_roles nrtrealm icsc nrtrole + keycloak_api_map_client_roles nrtrealm icsc nrtrole + + keycloak_api_get_client_token nrtrealm icsc + + CLIENT_TOKEN=$(keycloak_api_read_client_token nrtrealm icsc) + echo "CLIENT_TOKEN: "$CLIENT_TOKEN + + ICS_SEC=$(keycloak_api_read_client_secret nrtrealm icsc) + echo "ICS_SEC: "$ICS_SEC + + istio_req_auth_by_jwks $PROD_STUB_APP_NAME $KUBE_SIM_NAMESPACE KUBEPROXY "$KUBE_PROXY_ISTIO_JWKS_KEYS" + istio_auth_policy_by_issuer $PROD_STUB_APP_NAME $KUBE_SIM_NAMESPACE KUBEPROXY + + istio_req_auth_by_jwksuri $PROD_STUB_APP_NAME $KUBE_SIM_NAMESPACE nrtrealm + istio_auth_policy_by_realm $PROD_STUB_APP_NAME $KUBE_SIM_NAMESPACE nrtrealm icsc nrtrole + + istio_req_auth_by_jwks $CR_APP_NAME $KUBE_SIM_NAMESPACE KUBEPROXY "$KUBE_PROXY_ISTIO_JWKS_KEYS" + istio_auth_policy_by_issuer $CR_APP_NAME $KUBE_SIM_NAMESPACE KUBEPROXY + + istio_req_auth_by_jwksuri $CR_APP_NAME $KUBE_SIM_NAMESPACE nrtrealm + istio_auth_policy_by_realm $CR_APP_NAME $KUBE_SIM_NAMESPACE nrtrealm icsc nrtrole + + ics_configure_sec nrtrealm icsc $ICS_SEC + +fi + start_ics NOPROXY $SIM_GROUP/$ICS_COMPOSE_DIR/$ICS_CONFIG_FILE #Change NOPROXY to PROXY to run with http proxy if [ $RUNMODE == "KUBE" ]; then @@ -82,14 +156,27 @@ fi start_cr 1 +if [ $USE_ISTIO -eq 1 ]; then + echo "Sleep 120 to let istio settle - enabling istio on workloads may cause initial dns disturbances - temporary unavailable dns names" + sleep 120 +fi + CB_JOB="$PROD_STUB_SERVICE_PATH$PROD_STUB_JOB_CALLBACK" CB_SV="$PROD_STUB_SERVICE_PATH$PROD_STUB_SUPERVISION_CALLBACK" #Targets for ei jobs -TARGET1="$RIC_SIM_HTTPX://ricsim_g3_1:$RIC_SIM_PORT/datadelivery" -TARGET2="$RIC_SIM_HTTPX://ricsim_g3_2:$RIC_SIM_PORT/datadelivery" -TARGET3="$RIC_SIM_HTTPX://ricsim_g3_3:$RIC_SIM_PORT/datadelivery" -TARGET8="$RIC_SIM_HTTPX://ricsim_g3_4:$RIC_SIM_PORT/datadelivery" -TARGET10="$RIC_SIM_HTTPX://ricsim_g3_4:$RIC_SIM_PORT/datadelivery" +if [ $RUNMODE == "KUBE" ]; then + TARGET1="$RIC_SIM_HTTPX://ricsim-g3-1.ricsim-g3.$KUBE_A1SIM_NAMESPACE:$RIC_SIM_PORT/datadelivery" + TARGET2="$RIC_SIM_HTTPX://ricsim-g3-2.ricsim-g3.$KUBE_A1SIM_NAMESPACE:$RIC_SIM_PORT/datadelivery" + TARGET3="$RIC_SIM_HTTPX://ricsim-g3-3.ricsim-g3.$KUBE_A1SIM_NAMESPACE:$RIC_SIM_PORT/datadelivery" + TARGET8="$RIC_SIM_HTTPX://ricsim-g3-4.ricsim-g3.$KUBE_A1SIM_NAMESPACE:$RIC_SIM_PORT/datadelivery" + TARGET10="$RIC_SIM_HTTPX://ricsim-g3-4.ricsim-g3.$KUBE_A1SIM_NAMESPACE:$RIC_SIM_PORT/datadelivery" +else + TARGET1="$RIC_SIM_HTTPX://ricsim_g3_1:$RIC_SIM_PORT/datadelivery" + TARGET2="$RIC_SIM_HTTPX://ricsim_g3_2:$RIC_SIM_PORT/datadelivery" + TARGET3="$RIC_SIM_HTTPX://ricsim_g3_3:$RIC_SIM_PORT/datadelivery" + TARGET8="$RIC_SIM_HTTPX://ricsim_g3_4:$RIC_SIM_PORT/datadelivery" + TARGET10="$RIC_SIM_HTTPX://ricsim_g3_4:$RIC_SIM_PORT/datadelivery" +fi #Targets for info jobs TARGET101="http://localhost:80/target" # Dummy target, no target for info data in this env... @@ -1367,7 +1454,7 @@ ics_api_edp_get_type_2 200 type101 testdata/ics/info-type-1.json ics_api_edp_put_producer_2 201 prod-ia $CB_JOB/prod-ia $CB_SV/prod-ia type101 ics_api_edp_put_producer_2 200 prod-ia $CB_JOB/prod-ia $CB_SV/prod-ia type101 -if [[ "$ICS_FEATURE_LEVEL" == *"RESP_CODE_CHANGE_1" ]]; then +if [[ "$ICS_FEATURE_LEVEL" == *"RESP_CODE_CHANGE_1"* ]]; then ics_api_edp_delete_type_2 409 type101 else ics_api_edp_delete_type_2 406 type101 @@ -1887,25 +1974,44 @@ else cr_equal 0 received_callbacks 12 fi ### Test of pre and post validation +if [[ "$ICS_FEATURE_LEVEL" != *"DEFAULT_TYPE_VALIDATION"* ]]; then + ics_api_idc_get_type_ids 200 type1 type2 type4 type6 type101 type102 type104 type106 + ics_api_idc_put_job 404 job150 type150 $TARGET150 info-owner-1 $INFOSTATUS150 testdata/ics/job-template.json VALIDATE + ics_api_idc_put_job 201 job160 type160 $TARGET160 info-owner-1 $INFOSTATUS160 testdata/ics/job-template.json -ics_api_idc_get_type_ids 200 type1 type2 type4 type6 type101 type102 type104 type106 -ics_api_idc_put_job 404 job150 type150 $TARGET150 info-owner-1 $INFOSTATUS150 testdata/ics/job-template.json VALIDATE -ics_api_idc_put_job 201 job160 type160 $TARGET160 info-owner-1 $INFOSTATUS160 testdata/ics/job-template.json -ics_api_idc_get_job_status2 404 job150 -ics_api_idc_get_job_status2 200 job160 DISABLED EMPTYPROD 60 + ics_api_idc_get_job_status2 404 job150 + ics_api_idc_get_job_status2 200 job160 DISABLED EMPTYPROD 60 -prodstub_arm_producer 200 prod-ig -prodstub_arm_job_create 200 prod-ig job150 -prodstub_arm_job_create 200 prod-ig job160 + prodstub_arm_producer 200 prod-ig + prodstub_arm_job_create 200 prod-ig job150 + prodstub_arm_job_create 200 prod-ig job160 -ics_api_edp_put_producer_2 201 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig NOTYPE -ics_api_edp_get_producer_status 200 prod-ig ENABLED 360 + ics_api_edp_put_producer_2 201 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig NOTYPE + ics_api_edp_get_producer_status 200 prod-ig ENABLED 360 -ics_api_edp_get_producer_2 200 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig EMPTY + ics_api_edp_get_producer_2 200 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig EMPTY -ics_api_idc_get_job_status2 404 job150 -ics_api_idc_get_job_status2 200 job160 DISABLED EMPTYPROD 60 + ics_api_idc_get_job_status2 404 job150 + ics_api_idc_get_job_status2 200 job160 DISABLED EMPTYPROD 60 +else + ics_api_idc_get_type_ids 200 type1 type2 type4 type6 type101 type102 type104 type106 + ics_api_idc_put_job 404 job150 type150 $TARGET150 info-owner-1 $INFOSTATUS150 testdata/ics/job-template.json VALIDATE + + ics_api_idc_get_job_status2 404 job150 + + prodstub_arm_producer 200 prod-ig + prodstub_arm_job_create 200 prod-ig job150 + prodstub_arm_job_create 200 prod-ig job160 + + ics_api_edp_put_producer_2 201 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig NOTYPE + ics_api_edp_get_producer_status 200 prod-ig ENABLED 360 + + ics_api_edp_get_producer_2 200 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig EMPTY + + ics_api_idc_get_job_status2 404 job150 + #ics_api_idc_get_job_status2 200 job160 DISABLED EMPTYPROD 60 +fi prodstub_arm_type 200 prod-ig type160 @@ -1919,12 +2025,14 @@ ics_api_edp_get_producer_2 200 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig type160 ics_api_idc_put_job 404 job150 type150 $TARGET150 info-owner-1 $INFOSTATUS150 testdata/ics/job-template.json VALIDATE ics_api_idc_get_job_status2 404 job150 -ics_api_idc_get_job_status2 200 job160 ENABLED 1 prod-ig 60 +if [[ "$ICS_FEATURE_LEVEL" != *"DEFAULT_TYPE_VALIDATION"* ]]; then + ics_api_idc_get_job_status2 200 job160 ENABLED 1 prod-ig 60 -prodstub_check_jobdata_3 200 prod-ig job160 type160 $TARGET160 info-owner-1 testdata/ics/job-template.json + prodstub_check_jobdata_3 200 prod-ig job160 type160 $TARGET160 info-owner-1 testdata/ics/job-template.json -prodstub_equal create/prod-ig/job160 1 -prodstub_equal delete/prod-ig/job160 0 + prodstub_equal create/prod-ig/job160 1 + prodstub_equal delete/prod-ig/job160 0 +fi prodstub_arm_type 200 prod-ig type150 @@ -1944,6 +2052,10 @@ ics_api_edp_get_producer_status 200 prod-ig ENABLED 360 ics_api_edp_get_producer_2 200 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig type160 type150 +if [[ "$ICS_FEATURE_LEVEL" == *"DEFAULT_TYPE_VALIDATION"* ]]; then + ics_api_idc_put_job 201 job160 type160 $TARGET160 info-owner-1 $INFOSTATUS160 testdata/ics/job-template.json +fi + ics_api_idc_get_job_status2 404 job150 ics_api_idc_get_job_status2 200 job160 ENABLED 1 prod-ig @@ -1963,7 +2075,7 @@ fi if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then - if [[ "$ICS_FEATURE_LEVEL" == *"RESP_CODE_CHANGE_1" ]]; then + if [[ "$ICS_FEATURE_LEVEL" == *"RESP_CODE_CHANGE_1"* ]]; then ics_api_edp_delete_type_2 409 type104 else ics_api_edp_delete_type_2 406 type104