X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2Fcommon%2Fsdnc_api_functions.sh;h=eb80d400517569c86b8710a52c71d3d816421d67;hb=7f8b77b648ea7b36fe7a785b642a08f67d51f2a6;hp=3ac0a6c7a038b0c74319feae8d2064b523ce0eeb;hpb=36ff34cc560eab1814621d24f90e637dbd07373f;p=nonrtric.git diff --git a/test/common/sdnc_api_functions.sh b/test/common/sdnc_api_functions.sh index 3ac0a6c7..eb80d400 100644 --- a/test/common/sdnc_api_functions.sh +++ b/test/common/sdnc_api_functions.sh @@ -1,7 +1,7 @@ #!/bin/bash # ============LICENSE_START=============================================== -# Copyright (C) 2020 Nordix Foundation. All rights reserved. +# Copyright (C) 2020-2023 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. @@ -33,8 +33,8 @@ __SDNC_imagesetup() { sdnc_suffix_tag="REMOTE_RELEASE_ONAP" fi done - __check_and_create_image_var SDNC "SDNC_A1_CONTROLLER_IMAGE" "SDNC_A1_CONTROLLER_IMAGE_BASE" "SDNC_A1_CONTROLLER_IMAGE_TAG" $sdnc_suffix_tag "$SDNC_DISPLAY_NAME" - __check_and_create_image_var SDNC "SDNC_DB_IMAGE" "SDNC_DB_IMAGE_BASE" "SDNC_DB_IMAGE_TAG" REMOTE_PROXY "SDNC DB" + __check_and_create_image_var SDNC "SDNC_A1_CONTROLLER_IMAGE" "SDNC_A1_CONTROLLER_IMAGE_BASE" "SDNC_A1_CONTROLLER_IMAGE_TAG" $sdnc_suffix_tag "$SDNC_DISPLAY_NAME" "" + __check_and_create_image_var SDNC "SDNC_DB_IMAGE" "SDNC_DB_IMAGE_BASE" "SDNC_DB_IMAGE_TAG" REMOTE_PROXY "SDNC DB" "" } @@ -77,12 +77,12 @@ __SDNC_kube_scale_zero() { } # Scale kubernetes resources to zero and wait until this has been accomplished, if relevant. If not relevant to scale, then do no action. -# This function is called for prestarted apps not managed by the test script. +# This function is called for pre-started apps not managed by the test script. __SDNC_kube_scale_zero_and_wait() { echo -e " SDNC replicas kept as is" } -# Delete all kube resouces for the app +# Delete all kube resources for the app # This function is called for apps managed by the test script. __SDNC_kube_delete_all() { __kube_delete_all_resources $KUBE_SDNC_NAMESPACE autotest SDNC @@ -90,12 +90,12 @@ __SDNC_kube_delete_all() { # Store docker logs # This function is called for apps managed by the test script. -# args: +# args: __SDNC_store_docker_logs() { if [ $RUNMODE == "KUBE" ]; then - kubectl logs -l "autotest=SDNC" -n $KUBE_SDNC_NAMESPACE --tail=-1 > $1$2_SDNC.log 2>&1 - podname=$(kubectl get pods -n $KUBE_SDNC_NAMESPACE -l "autotest=SDNC" -o custom-columns=":metadata.name") - kubectl exec -t -n $KUBE_SDNC_NAMESPACE $podname -- cat $SDNC_KARAF_LOG> $1$2_SDNC_karaf.log 2>&1 + kubectl $KUBECONF logs -l "autotest=SDNC" -n $KUBE_SDNC_NAMESPACE --tail=-1 > $1$2_SDNC.log 2>&1 + podname=$(kubectl $KUBECONF get pods -n $KUBE_SDNC_NAMESPACE -l "autotest=SDNC" -o custom-columns=":metadata.name") + kubectl $KUBECONF exec -t -n $KUBE_SDNC_NAMESPACE $podname -- cat $SDNC_KARAF_LOG> $1$2_SDNC_karaf.log 2>&1 else docker exec -t $SDNC_APP_NAME cat $SDNC_KARAF_LOG> $1$2_SDNC_karaf.log 2>&1 fi @@ -108,11 +108,11 @@ __SDNC_initial_setup() { use_sdnc_http } -# Set app short-name, app name and namespace for logging runtime statistics of kubernets pods or docker containers +# Set app short-name, app name and namespace for logging runtime statistics of kubernetes pods or docker containers # For docker, the namespace shall be excluded -# This function is called for apps managed by the test script as well as for prestarted apps. +# This function is called for apps managed by the test script as well as for pre-started apps. # args: - -__SDNC_statisics_setup() { +__SDNC_statistics_setup() { if [ $RUNMODE == "KUBE" ]; then echo "SDNC $SDNC_APP_NAME $KUBE_SDNC_NAMESPACE" else @@ -120,6 +120,12 @@ __SDNC_statisics_setup() { fi } +# Check application requirements, e.g. helm, the the test needs. Exit 1 if req not satisfied +# args: - +__SDNC_test_requirements() { + : +} + ####################################################### # Set http as the protocol to use for all communication to SDNC @@ -192,7 +198,7 @@ start_sdnc() { __check_included_image "SDNC" retcode_i=$? - # Check if app shall only be used by the testscipt + # Check if app shall only be used by the test script __check_prestarted_image "SDNC" retcode_p=$? @@ -242,7 +248,7 @@ start_sdnc() { __check_included_image 'SDNC' if [ $? -eq 1 ]; then echo -e $RED"The SDNC A1 Controller app is not included in this test script"$ERED - echo -e $RED"The Policy Agent will not be started"$ERED + echo -e $RED"The A1PMS will not be started"$ERED exit fi @@ -307,7 +313,7 @@ start_stopped_sdnc() { return 0 } -# Check the agent logs for WARNINGs and ERRORs +# Check the sdnc logs for WARNINGs and ERRORs # args: - # (Function for test scripts) check_sdnc_logs() { @@ -582,9 +588,14 @@ controller_api_get_A1_policy_status() { if [ $# -ge 5 ] && [ $2 == "OSC" ]; then url="$ric_id/a1-p/policytypes/$4/policies/$UUID$5/status" if [ $# -gt 5 ]; then - targetJson="{\"instance_status\":\"$6\"" - targetJson=$targetJson",\"has_been_deleted\":\"$7\"" - targetJson=$targetJson",\"created_at\":\"????\"}" + if [[ $TEST_ENV_PROFILE =~ ^ORAN-[A-I] ]] || [[ $TEST_ENV_PROFILE =~ ^ONAP-[A-M] ]]; then + targetJson="{\"instance_status\":\"$6\"" + targetJson=$targetJson",\"has_been_deleted\":\"$7\"" + targetJson=$targetJson",\"created_at\":\"????\"}" + else + targetJson="{\"enforceStatus\":\"$6\"" + targetJson=$targetJson",\"enforceReason\":\"$7\"}" + fi fi paramError=0 elif [ $# -ge 4 ] && [ $2 == "STD" ]; then @@ -632,4 +643,37 @@ controller_api_get_A1_policy_status() { __log_test_pass return 0 -} \ No newline at end of file +} + +# Wait for http status on url +# args: +# (Function for test scripts) +controller_api_wait_for_status_ok() { + __log_conf_start $@ + + if [ $# -ne 2 ]; then + __print_err " " $@ + return 1 + fi + ric_id=$(__find_sim_host $2) + url="$ric_id/" + + TS_START=$SECONDS + while [ $(($TS_START+500)) -gt $SECONDS ]; do + echo -ne " Waiting for http status $1 on $url via sdnc, waited: $(($SECONDS-$TS_START))"$SAMELINE + res=$(__do_curl_to_controller getA1Policy "$url") + retcode=$? + status=${res:${#res}-3} + if [ $retcode -eq 0 ]; then + if [ $status -eq $1 ]; then + echo "" + __log_conf_ok + return 0 + fi + fi + sleep 5 + done + echo "" + __log_conf_fail_general + return 1 +}