Add CSIT option to run xacml-pdp against postgres database 09/138509/2
authoradheli.tavares <adheli.tavares@est.tech>
Fri, 19 Jul 2024 12:50:04 +0000 (13:50 +0100)
committeradheli.tavares <adheli.tavares@est.tech>
Fri, 19 Jul 2024 14:58:32 +0000 (15:58 +0100)
Issue-ID: POLICY-5087
Change-Id: Icfece3dbb9263e09a4d59edbea8acad5a4ea7ce3
Signed-off-by: adheli.tavares <adheli.tavares@est.tech>
compose/docker-compose.gui.yml [deleted file]
compose/docker-compose.postgres.yml
compose/export-ports.sh
compose/get-versions.sh
compose/start-compose.sh
compose/start-postgres-tests.sh
csit/run-project-csit.sh

diff --git a/compose/docker-compose.gui.yml b/compose/docker-compose.gui.yml
deleted file mode 100644 (file)
index e2e98b5..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#
-# ===========LICENSE_START====================================================
-#  Copyright 2023-2024 Nordix Foundation.
-# ============================================================================
-# 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=====================================================
-#
-
-services:
-  policy-gui:
-    image: ${CONTAINER_LOCATION}onap/policy-gui:latest
-    container_name: policy-gui
-    depends_on:
-      - policy-clamp-backend
-    hostname: policy-gui
-    environment:
-      CLAMP_URL: http://policy-clamp-backend:8445
-      CLAMP_DISABLE_SSL_VALIDATION: "true"
-    ports:
-      - "2445:2445"
-    volumes:
-      - ./config/policy-gui/application.yaml:/opt/app/policy/gui/etc/application.yml
-      - ./config/policy-gui/logback.xml:/opt/app/policy/gui/etc/logback.xml:ro
-      - ./wait_for_port.sh:/opt/app/policy/gui/bin/wait_for_port.sh:ro
-    entrypoint: ./policy-gui.sh
-    working_dir: /opt/app/policy/gui/bin
-    command: ./policy-gui.sh
-  policy-clamp-backend:
-    image: ${CONTAINER_LOCATION}onap/policy-clamp-backend:latest
-    container_name: policy-clamp-backend
-    depends_on:
-      - policy-clamp-runtime-acm
-      - distribution
-    hostname: policy-clamp-backend
-    environment:
-      POLICY_API_HOST: api
-      POLICY_PAP_HOST: pap
-      MARIADB_HOST: mariadb
-      RUNTIME_HOST: policy-clamp-runtime-acm
-    ports:
-      - "8445:8445"
-    volumes:
-      - ./config/clamp/ClampBackend.properties:/opt/policy/clamp/config/ClampBackend.properties:ro
-      - ./config/clamp/logback-backend.xml:/opt/policy/clamp/config/logback.xml:ro
-    working_dir: /opt/policy/clamp
-    command: java
-      -Djava.security.egd=file:/dev/./urandom
-      -XX:MinRAMPercentage=50
-      -XX:MaxRAMPercentage=75
-      -jar ./policy-clamp-backend.jar
-      --spring.config.name=ClampBackend
-      --spring.config.location=/opt/policy/clamp/config/ClampBackend.properties
\ No newline at end of file
index fee55d9..ca96f56 100644 (file)
@@ -104,7 +104,7 @@ services:
       - ${PAP_PORT}:6969
     volumes:
       - ./config/pap/papParametersPostgres.yaml:/opt/app/policy/pap/etc/papParameters.yaml:ro
-      - ./config/${PROJECT}/groups.json:/opt/app/policy/pap/etc/mounted/groups.json:ro
+      - ./config/${component}/groups.json:/opt/app/policy/pap/etc/mounted/groups.json:ro
       - ./config/pap/logback.xml:/opt/app/policy/pap/etc/logback.xml:ro
       - ./wait_for_port.sh:/opt/app/policy/pap/bin/wait_for_port.sh:ro
     entrypoint: ./wait_for_port.sh
@@ -137,6 +137,28 @@ services:
       'kafka', '9092',
       'pap', '6969'
     ]
+  xacml-pdp:
+    image: ${CONTAINER_LOCATION}onap/policy-xacml-pdp:${POLICY_XACML_PDP_VERSION}
+    container_name: policy-xacml-pdp
+    hostname: policy-xacml-pdp
+    depends_on:
+      - postgres
+      - kafka
+      - pap
+    ports:
+      - ${XACML_PORT}:6969
+      - "30999:3904"
+    volumes:
+      - ./config/xacml-pdp/defaultConfig.json:/opt/app/policy/pdpx/etc/defaultConfig.json:ro
+      - ./config/xacml-pdp/logback.xml:/opt/app/policy/pdpx/etc/logback.xml:ro
+      - ./wait_for_port.sh:/opt/app/policy/pdpx/bin/wait_for_port.sh:ro
+    entrypoint: ./wait_for_port.sh
+    command: [
+      '-c', './policy-pdpx-pg.sh',
+      'postgres', '5432',
+      'kafka', '9092',
+      'pap', '6969'
+    ]
   prometheus:
     image: nexus3.onap.org:10001/prom/prometheus:latest
     container_name: prometheus
@@ -148,6 +170,7 @@ services:
 
   zookeeper:
     image: confluentinc/cp-zookeeper:latest
+    container_name: zookeeper
     environment:
       ZOOKEEPER_CLIENT_PORT: 2181
       ZOOKEEPER_TICK_TIME: 2000
index a3422da..aa97f49 100755 (executable)
@@ -25,6 +25,7 @@ then
         head -1 |
         sed 's/onap\/policy-api.*$//'
     )
+    export LOCAL_IMAGES="true"
 else
     export CONTAINER_LOCATION="nexus3.onap.org:10001/"
 fi
index 13dc365..a51ccef 100755 (executable)
@@ -25,115 +25,129 @@ if [ -z "${WORKSPACE}" ]; then
     export WORKSPACE
 fi
 
-GERRIT_BRANCH=$(awk -F= '$1 == "defaultbranch" { print $2 }' \
-                    "${WORKSPACE}"/.gitreview)
-
-echo GERRIT_BRANCH="${GERRIT_BRANCH}"
-
+#default values
 export POLICY_MARIADB_VER=10.10.2
 echo POLICY_MARIADB_VER=${POLICY_MARIADB_VER}
 
 export POLICY_POSTGRES_VER=11.1
 echo POLICY_POSTGRES_VER=${POLICY_POSTGRES_VER}
 
-function getDockerVersion
-{
-    REPO=${1}
-    DEFAULT_DOCKER_IMAGE_NAME=${2:-}
-    DEFAULT_DOCKER_IMAGE_VERSION=${3:-}
-
-    REPO_RELEASE_DATA=$(
-        curl -qL --silent \
-            "https://github.com/onap/policy-parent/raw/$GERRIT_BRANCH/integration/src/main/resources/release/pf_release_data.csv" |
-        grep "^policy/$REPO"
-    )
-
-    # shellcheck disable=SC2034
-    read -r repo \
-        latest_released_tag \
-        latest_snapshot_tag \
-        changed_files \
-        docker_images \
-        <<< "$(echo "$REPO_RELEASE_DATA" | tr ',' ' ' )"
-
-    if [[ -z "$docker_images" ]]
-    then
-        if [[ -z "$DEFAULT_DOCKER_IMAGE_NAME" ]]
+if [ -n "$LOCAL_IMAGES" ] && [ "$LOCAL_IMAGES" = "true" ]; then
+    echo "Running with local images."
+    export POLICY_DOCKER_VERSION="latest"
+    export POLICY_MODELS_VERSION="latest"
+    export POLICY_API_VERSION="latest"
+    export POLICY_PAP_VERSION="latest"
+    export POLICY_APEX_PDP_VERSION="latest"
+    export POLICY_DROOLS_PDP_VERSION="latest"
+    export POLICY_XACML_PDP_VERSION="latest"
+    export POLICY_DISTRIBUTION_VERSION="latest"
+    export POLICY_CLAMP_VERSION="latest"
+    export POLICY_CLAMP_PPNT_VERSION=$POLICY_CLAMP_VERSION
+    export POLICY_DROOLS_APPS_VERSION="latest"
+
+else
+    GERRIT_BRANCH=$(awk -F= '$1 == "defaultbranch" { print $2 }' \
+                        "${WORKSPACE}"/.gitreview)
+
+    echo GERRIT_BRANCH="${GERRIT_BRANCH}"
+
+    function getDockerVersion
+    {
+        REPO=${1}
+        DEFAULT_DOCKER_IMAGE_NAME=${2:-}
+        DEFAULT_DOCKER_IMAGE_VERSION=${3:-}
+
+        REPO_RELEASE_DATA=$(
+            curl -qL --silent \
+                "https://github.com/onap/policy-parent/raw/$GERRIT_BRANCH/integration/src/main/resources/release/pf_release_data.csv" |
+            grep "^policy/$REPO"
+        )
+
+        # shellcheck disable=SC2034
+        read -r repo \
+            latest_released_tag \
+            latest_snapshot_tag \
+            changed_files \
+            docker_images \
+            <<< "$(echo "$REPO_RELEASE_DATA" | tr ',' ' ' )"
+
+        if [[ -z "$docker_images" ]]
         then
-            echo "repo $REPO does not produce a docker image, execution terminated"
-            exit 1
+            if [[ -z "$DEFAULT_DOCKER_IMAGE_NAME" ]]
+            then
+                echo "repo $REPO does not produce a docker image, execution terminated"
+                exit 1
+            else
+                docker_images="$DEFAULT_DOCKER_IMAGE_NAME"
+            fi
+        fi
+
+        # docker_image_version=$(echo "$latest_snapshot_tag" | awk -F \. '{print $1"."$2"-SNAPSHOT-latest"}')
+        docker_image_version=$latest_snapshot_tag
+        docker_image_name=$(echo "$docker_images" | sed -e "s/^.*://" -e "s/^.//" -e "s/.$//")
+
+        if \
+            curl -qL --silent \
+                "https://nexus3.onap.org/service/rest/repository/browse/docker.snapshot/v2/onap/$docker_image_name/tags/" |
+                grep -q "$docker_image_version"
+        then
+            echo "using \"$docker_image_name:$docker_image_version\" docker image for repo \"$repo\""
+            return
+        fi
+
+        docker_image_version="$latest_released_tag"
+        if \
+            curl -qL --silent \
+                "https://nexus3.onap.org/service/rest/repository/browse/docker.release/v2/onap/$docker_image_name/tags/" |
+                grep -q "$docker_image_version"
+        then
+            echo "using \"$docker_image_name:$docker_image_version\" docker image for repo \"$repo\""
+            return
+        fi
+
+        docker_image_version="$DEFAULT_DOCKER_IMAGE_VERSION"
+        if \
+            curl -qL --silent \
+                "https://nexus3.onap.org/service/rest/repository/browse/docker.release/v2/onap/$docker_image_name/tags/" |
+                grep -q "$docker_image_version"
+        then
+            echo "using \"$docker_image_name:$docker_image_version\" docker image for repo \"$repo\""
+            return
         else
-            docker_images="$DEFAULT_DOCKER_IMAGE_NAME"
+            echo "docker image \"$docker_image_name:$docker_image_version\" not found for repo \"$repo\""
+            exit 1
         fi
-    fi
-
-    # docker_image_version=$(echo "$latest_snapshot_tag" | awk -F \. '{print $1"."$2"-SNAPSHOT-latest"}')
-    docker_image_version=$latest_snapshot_tag
-    docker_image_name=$(echo "$docker_images" | sed -e "s/^.*://" -e "s/^.//" -e "s/.$//")
-
-    if \
-        curl -qL --silent \
-            "https://nexus3.onap.org/service/rest/repository/browse/docker.snapshot/v2/onap/$docker_image_name/tags/" |
-            grep -q "$docker_image_version"
-    then
-        echo "using \"$docker_image_name:$docker_image_version\" docker image for repo \"$repo\""
-        return
-    fi
-
-    docker_image_version="$latest_released_tag"
-    if \
-        curl -qL --silent \
-            "https://nexus3.onap.org/service/rest/repository/browse/docker.release/v2/onap/$docker_image_name/tags/" |
-            grep -q "$docker_image_version"
-    then
-        echo "using \"$docker_image_name:$docker_image_version\" docker image for repo \"$repo\""
-        return
-    fi
-
-    docker_image_version="$DEFAULT_DOCKER_IMAGE_VERSION"
-    if \
-        curl -qL --silent \
-            "https://nexus3.onap.org/service/rest/repository/browse/docker.release/v2/onap/$docker_image_name/tags/" |
-            grep -q "$docker_image_version"
-    then
-        echo "using \"$docker_image_name:$docker_image_version\" docker image for repo \"$repo\""
-        return
-    else
-        echo "docker image \"$docker_image_name:$docker_image_version\" not found for repo \"$repo\""
-        exit 1
-    fi
-}
-
-getDockerVersion docker
-export POLICY_DOCKER_VERSION="$docker_image_version"
-
-getDockerVersion models "'policy-models-simulator'" 3.0.1
-export POLICY_MODELS_VERSION="$docker_image_version"
-
-getDockerVersion api
-export POLICY_API_VERSION="$docker_image_version"
-
-getDockerVersion pap
-export POLICY_PAP_VERSION="$docker_image_version"
-
-getDockerVersion apex-pdp
-export POLICY_APEX_PDP_VERSION="$docker_image_version"
-
-getDockerVersion drools-pdp
-export POLICY_DROOLS_PDP_VERSION="$docker_image_version"
-
-getDockerVersion xacml-pdp
-export POLICY_XACML_PDP_VERSION="$docker_image_version"
-
-getDockerVersion distribution
-export POLICY_DISTRIBUTION_VERSION="$docker_image_version"
-
-getDockerVersion clamp
-export POLICY_CLAMP_VERSION="$docker_image_version"
-export POLICY_CLAMP_PPNT_VERSION=$POLICY_CLAMP_VERSION
-
-getDockerVersion gui
-export POLICY_GUI_VERSION="$docker_image_version"
-
-getDockerVersion drools-applications
-export POLICY_DROOLS_APPS_VERSION="$docker_image_version"
+    }
+
+    getDockerVersion docker
+    export POLICY_DOCKER_VERSION="$docker_image_version"
+
+    getDockerVersion models "'policy-models-simulator'" 3.0.1
+    export POLICY_MODELS_VERSION="$docker_image_version"
+
+    getDockerVersion api
+    export POLICY_API_VERSION="$docker_image_version"
+
+    getDockerVersion pap
+    export POLICY_PAP_VERSION="$docker_image_version"
+
+    getDockerVersion apex-pdp
+    export POLICY_APEX_PDP_VERSION="$docker_image_version"
+
+    getDockerVersion drools-pdp
+    export POLICY_DROOLS_PDP_VERSION="$docker_image_version"
+
+    getDockerVersion xacml-pdp
+    export POLICY_XACML_PDP_VERSION="$docker_image_version"
+
+    getDockerVersion distribution
+    export POLICY_DISTRIBUTION_VERSION="$docker_image_version"
+
+    getDockerVersion clamp
+    export POLICY_CLAMP_VERSION="$docker_image_version"
+    export POLICY_CLAMP_PPNT_VERSION=$POLICY_CLAMP_VERSION
+
+    getDockerVersion drools-applications
+    export POLICY_DROOLS_APPS_VERSION="$docker_image_version"
+fi
\ No newline at end of file
index a6ada29..671927b 100755 (executable)
@@ -32,7 +32,6 @@ COMPOSE_FOLDER="${WORKSPACE}"/compose
 
 # Set default values for the options
 grafana=false
-gui=false
 
 # Parse the command-line arguments
 while [[ $# -gt 0 ]]
@@ -44,11 +43,6 @@ do
       grafana=true
       shift
       ;;
-    --gui)
-      gui=true
-      shift 2
-      break;
-      ;;
     *)
       component="$1"
       shift
@@ -84,24 +78,14 @@ if [ -n "$component" ]; then
     docker compose up -d "${component}" grafana
     echo "Prometheus server: http://localhost:${PROMETHEUS_PORT}"
     echo "Grafana server: http://localhost:${GRAFANA_PORT}"
-  elif [ "$gui" = true ]; then
-    echo "Starting application with gui..."
-    docker compose -f docker-compose.yml -f docker-compose.gui.yml up -d "${component}" policy-gui
-    echo "Clamp GUI: https://localhost:2445/clamp"
   else
     echo "Starting ${component} application"
     docker compose up -d "${component}"
   fi
 else
   export PROJECT=api # api has groups.json complete with all 3 pdps
-  if [ "$gui" = true ]; then
-    echo "Starting application with gui..."
-    docker compose -f docker-compose.yml -f docker-compose.gui.yml up -d
-    echo "Clamp GUI: https://localhost:2445/clamp"
-  else
-    echo "Starting all components..."
-    docker compose up -d
-  fi
+  echo "Starting all components..."
+  docker compose up -d
 fi
 
 cd ${WORKSPACE}
index 1c08600..2d69591 100644 (file)
@@ -1,7 +1,7 @@
 #!/bin/bash
 #
 # ============LICENSE_START====================================================
-#  Copyright (C) 2023 Nordix Foundation.
+#  Copyright (C) 2023-2024 Nordix Foundation.
 # =============================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -30,7 +30,8 @@ echo "Configuring docker compose..."
 source export-ports.sh > /dev/null 2>&1
 source get-versions.sh > /dev/null 2>&1
 
-export REPLICAS=${1}
-docker-compose -f docker-compose.postgres.yml up -d apex-pdp prometheus
+export component=${1}
+export REPLICAS=${2}
+docker-compose -f docker-compose.postgres.yml up -d ${component} prometheus
 
 cd ${WORKSPACE}
\ No newline at end of file
index aa19b25..36bad1f 100755 (executable)
@@ -80,7 +80,7 @@ function setup_apex() {
 
 function setup_apex_postgres() {
     export ROBOT_FILES="apex-pdp-test.robot"
-    source "${WORKSPACE}"/compose/start-postgres-tests.sh 1
+    source "${WORKSPACE}"/compose/start-postgres-tests.sh apex-pdp 1
     sleep 10
     bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT}
     bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT}
@@ -141,6 +141,13 @@ function setup_xacml_pdp() {
     bash "${SCRIPTS}"/wait_for_rest.sh localhost "${XACML_PORT}"
 }
 
+function setup_xacml_pdp_postgres() {
+    export ROBOT_FILES="xacml-pdp-test.robot"
+    source "${WORKSPACE}"/compose/start-postgres-tests.sh xacml-pdp 1
+    sleep 10
+    bash "${SCRIPTS}"/wait_for_rest.sh localhost "${XACML_PORT}"
+}
+
 function setup_drools_pdp() {
     export ROBOT_FILES="drools-pdp-test.robot"
     source "${WORKSPACE}"/compose/start-compose.sh drools-pdp
@@ -197,7 +204,7 @@ function set_project_config() {
         ;;
 
     apex-pdp-postgres | policy-apex-pdp-postgres)
-        setup_apex
+        setup_apex_postgres
         ;;
 
     apex-pdp-medium | policy-apex-pdp-medium)
@@ -212,6 +219,10 @@ function set_project_config() {
         setup_xacml_pdp
         ;;
 
+    xacml-pdp-postgres | policy-xacml-pdp-postgres)
+        setup_xacml_pdp_postgres
+        ;;
+
     drools-pdp | policy-drools-pdp)
         setup_drools_pdp
         ;;
@@ -253,6 +264,8 @@ export PROJECT="${1}"
 export ROBOT_LOG_DIR=${WORKSPACE}/csit/archives/${PROJECT}
 export SCRIPTS="${WORKSPACE}/csit/resources/scripts"
 export ROBOT_FILES=""
+# always 'docker' if running docker compose
+export TEST_ENV="docker"
 
 cd "${WORKSPACE}"