aboutsummaryrefslogtreecommitdiffstats
path: root/csit
diff options
context:
space:
mode:
Diffstat (limited to 'csit')
-rw-r--r--csit/resources/Dockerfile12
-rwxr-xr-xcsit/resources/scripts/build-csit-docker-image.sh53
-rwxr-xr-xcsit/resources/scripts/prepare-robot-env.sh60
-rw-r--r--csit/resources/scripts/pylibs.txt25
-rwxr-xr-xcsit/resources/scripts/run-test.sh54
-rw-r--r--csit/resources/scripts/setup-apex-pdp-large.sh53
-rw-r--r--csit/resources/scripts/setup-apex-pdp-medium.sh53
-rwxr-xr-xcsit/resources/scripts/setup-apex-pdp-postgres.sh53
-rwxr-xr-xcsit/resources/scripts/setup-apex-pdp.sh34
-rwxr-xr-xcsit/resources/scripts/setup-api.sh35
-rwxr-xr-xcsit/resources/scripts/setup-clamp.sh36
-rwxr-xr-xcsit/resources/scripts/setup-distribution.sh43
-rwxr-xr-xcsit/resources/scripts/setup-drools-applications.sh41
-rwxr-xr-xcsit/resources/scripts/setup-drools-pdp.sh34
-rwxr-xr-xcsit/resources/scripts/setup-pap.sh36
-rwxr-xr-xcsit/resources/scripts/setup-xacml-pdp.sh36
-rw-r--r--csit/resources/tests/distribution-test.robot8
-rw-r--r--csit/resources/tests/drools-applications-test.robot42
-rw-r--r--csit/resources/tests/pap-test.robot12
-rwxr-xr-xcsit/run-k8s-csit.sh13
-rwxr-xr-xcsit/run-project-csit.sh326
21 files changed, 339 insertions, 720 deletions
diff --git a/csit/resources/Dockerfile b/csit/resources/Dockerfile
index 9a43663a..786293d3 100644
--- a/csit/resources/Dockerfile
+++ b/csit/resources/Dockerfile
@@ -1,12 +1,12 @@
FROM nexus3.onap.org:10001/library/python:3.10-slim-bullseye
ARG CSIT_SCRIPT=${CSIT_SCRIPT}
ARG ROBOT_FILE=${ROBOT_FILE}
-ENV ROBOT_WORKSPACE=/opt/robotworkspace ROBOT_FILE=$ROBOT_FILE
-RUN python3 -m pip install --upgrade pip && \
- python3 -m pip install --upgrade --extra-index-url="https://nexus3.onap.org/repository/PyPi.staging/simple" 'robotframework-onap==0.6.0.*' --pre && \
- python3 -m pip install --upgrade confluent-kafka && \
+ENV ROBOT_WORKSPACE=/opt/robotworkspace ROBOT_FILE=$ROBOT_FILE CLAMP_K8S_TEST=$CLAMP_K8S_TEST
+RUN python3 -m pip -qq install --upgrade pip && \
+ python3 -m pip -qq install --upgrade --extra-index-url="https://nexus3.onap.org/repository/PyPi.staging/simple" 'robotframework-onap==0.6.0.*' --pre && \
+ python3 -m pip -qq install --upgrade confluent-kafka && \
python3 -m pip freeze
RUN mkdir -p ${ROBOT_WORKSPACE}
-COPY ${CSIT_SCRIPT} tests/ ${ROBOT_WORKSPACE}/
+COPY scripts/run-test.sh tests/ ${ROBOT_WORKSPACE}/
WORKDIR ${ROBOT_WORKSPACE}
-CMD ["sh", "-c", "./run-test.sh" , "${ROBOT_FILE}"]
+CMD ["sh", "-c", "./run-test.sh" ]
diff --git a/csit/resources/scripts/build-csit-docker-image.sh b/csit/resources/scripts/build-csit-docker-image.sh
new file mode 100755
index 00000000..d4686422
--- /dev/null
+++ b/csit/resources/scripts/build-csit-docker-image.sh
@@ -0,0 +1,53 @@
+#!/bin/bash -x
+#
+# Copyright 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.
+
+function clone_models() {
+ # download models examples
+ git clone -b "${GERRIT_BRANCH}" --single-branch https://github.com/onap/policy-models.git "${WORKSPACE}"/csit/resources/tests/models
+
+ # create a couple of variations of the policy definitions
+ sed -e 's!Measurement_vGMUX!ADifferentValue!' \
+ tests/models/models-examples/src/main/resources/policies/vCPE.policy.monitoring.input.tosca.json \
+ >tests/models/models-examples/src/main/resources/policies/vCPE.policy.monitoring.input.tosca.v1_2.json
+
+ sed -e 's!"version": "1.0.0"!"version": "2.0.0"!' \
+ -e 's!"policy-version": 1!"policy-version": 2!' \
+ tests/models/models-examples/src/main/resources/policies/vCPE.policy.monitoring.input.tosca.json \
+ >tests/models/models-examples/src/main/resources/policies/vCPE.policy.monitoring.input.tosca.v2.json
+}
+
+if [ -z "${WORKSPACE}" ]; then
+ WORKSPACE=$(git rev-parse --show-toplevel)
+ export WORKSPACE
+fi
+
+GERRIT_BRANCH=$(awk -F= '$1 == "defaultbranch" { print $2 }' "${WORKSPACE}"/.gitreview)
+export ROBOT_DOCKER_IMAGE="policy-csit-robot"
+
+echo "Build docker image for robot framework"
+cd ${WORKSPACE}/csit/resources || exit
+
+docker image rm -f ${ROBOT_DOCKER_IMAGE}
+
+# get models
+clone_models
+
+echo "Build robot framework docker image"
+docker build . --file Dockerfile --tag "${ROBOT_DOCKER_IMAGE}" --no-cache
+docker save -o policy-csit-robot.tar ${ROBOT_DOCKER_IMAGE}:latest
+
+rm -rf ${WORKSPACE}/csit/resources/policy-csit-robot.tar
+rm -rf ${WORKSPACE}/csit/resources/tests/models/
diff --git a/csit/resources/scripts/prepare-robot-env.sh b/csit/resources/scripts/prepare-robot-env.sh
deleted file mode 100755
index 2b773802..00000000
--- a/csit/resources/scripts/prepare-robot-env.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/bash -x
-#
-# Copyright 2019 © Samsung Electronics Co., Ltd.
-# Modification Copyright 2021 © AT&T Intellectual Property.
-# Modification Copyright 2021-2023 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.
-#
-# This script installs common libraries required by CSIT tests
-#
-
-if [ -z "$WORKSPACE" ]; then
- WORKSPACE=$(git rev-parse --show-toplevel)
- export WORKSPACE
-fi
-
-ROBOT_VENV=$(mktemp -d)
-echo "ROBOT_VENV=${ROBOT_VENV}" >> "${WORKSPACE}/env.properties"
-
-echo "Python version is: $(python3 --version)"
-
-python3 -m venv --clear "${ROBOT_VENV}"
-source "${ROBOT_VENV}/bin/activate" > /dev/null
-
-set -exu
-
-python3 -m pip install -qq --upgrade "pip<=23.0" "setuptools<=66.1.1"
-echo "Installing Python Requirements"
-python3 -m pip install -qq -r "${SCRIPTS}"/pylibs.txt
-python3 -m pip -qq freeze
-
-# install eteutils
-mkdir -p "${ROBOT_VENV}"/src/onap
-rm -rf "${ROBOT_VENV}"/src/onap/testsuite
-python3 -m pip install -qq --upgrade --extra-index-url="https://nexus3.onap.org/repository/PyPi.staging/simple" 'robotframework-onap==0.6.0.*' --pre
-
-# install confluent-kafka
-echo "Installing python confluent-kafka library"
-python3 -m pip install -qq confluent-kafka
-
-echo "Uninstall docker-py and reinstall docker."
-python3 -m pip uninstall -y -qq docker
-python3 -m pip install -U -qq docker
-
-python3 -m pip -qq freeze
-
-if (uname | grep -q 'Linux')
-then
- sudo apt-get -y -qq install libxml2-utils
-fi
diff --git a/csit/resources/scripts/pylibs.txt b/csit/resources/scripts/pylibs.txt
deleted file mode 100644
index a9b4e498..00000000
--- a/csit/resources/scripts/pylibs.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-ipaddr==2.2.0
-netaddr==0.8.0
-netifaces==0.11.0
-pyhocon==0.3.60
-requests==2.27.1
-robotframework-httplibrary==0.4.2
-robotframework-requests==0.9.4
-robotframework-selenium2library==3.0.0
-robotframework-sshlibrary==3.8.0
-scapy==2.5.0
-# Module jsonpath is needed by current AAA idmlite suite.
-jsonpath-rw==1.4.0
-# Modules for longevity framework robot library
-elasticsearch==7.17.9
-elasticsearch-dsl==7.4.1
-# Module for pyangbind used by lispflowmapping project
-pyangbind==0.8.1
-# Module for iso8601 datetime format
-isodate==0.6.1
-# Module for TemplatedRequests.robot library
-jmespath==0.10.0
-# Module for backup-restore support library
-jsonpatch==1.32
-# odltools for extra debugging
-odltools==0.1.28
diff --git a/csit/resources/scripts/run-test.sh b/csit/resources/scripts/run-test.sh
index 90dec572..9b01d352 100755
--- a/csit/resources/scripts/run-test.sh
+++ b/csit/resources/scripts/run-test.sh
@@ -18,40 +18,62 @@
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END======================================================
-
-ROBOT_FILE=$1
-echo "Invoking the robot tests from: $1"
+echo "Invoking the robot tests from: ${ROBOT_FILE}"
DEFAULT_PORT=6969
DATA=/opt/robotworkspace/models/models-examples/src/main/resources/policies
NODETEMPLATES=/opt/robotworkspace/models/models-examples/src/main/resources/nodetemplates
+CLAMP_K8S_TEST=${K8S_TEST}
-POLICY_RUNTIME_ACM_IP=policy-clamp-runtime-acm:${DEFAULT_PORT}
-POLICY_PARTICIPANT_SIM_IP=policy-clamp-ac-sim-ppnt:${DEFAULT_PORT}
POLICY_API_IP=policy-api:${DEFAULT_PORT}
+
POLICY_PAP_IP=policy-pap:${DEFAULT_PORT}
+
APEX_IP=policy-apex-pdp:${DEFAULT_PORT}
+APEX_EVENTS_IP=policy-apex-pdp:23324
+
POLICY_PDPX_IP=policy-xacml-pdp:${DEFAULT_PORT}
+
POLICY_DROOLS_IP=policy-drools-pdp:9696
-DISTRIBUTION_IP=policy-distribution:6969
+DROOLS_IP_1=policy-drools-apps:${DEFAULT_PORT}
+DROOLS_IP_2=policy-drools-apps:9696
+
+DISTRIBUTION_IP=policy-distribution:${DEFAULT_PORT}
+
+POLICY_RUNTIME_ACM_IP=policy-clamp-runtime-acm:${DEFAULT_PORT}
+POLICY_PARTICIPANT_SIM_IP=policy-clamp-ac-sim-ppnt:${DEFAULT_PORT}
+
KAFKA_IP=kafka:9092
-APEX_EVENTS_IP=policy-apex-pdp:23324
PROMETHEUS_IP=prometheus:9090
-CLAMP_K8S_TEST=true
DIST_TEMP_FOLDER=/tmp/distribution
-export ROBOT_VARIABLES=
-ROBOT_VARIABLES="-v DATA:$DATA -v NODETEMPLATES:$NODETEMPLATES -v POLICY_API_IP:$POLICY_API_IP
--v POLICY_RUNTIME_ACM_IP:$POLICY_RUNTIME_ACM_IP -v POLICY_PARTICIPANT_SIM_IP:$POLICY_PARTICIPANT_SIM_IP
--v POLICY_PAP_IP:$POLICY_PAP_IP -v APEX_IP:$APEX_IP
--v APEX_EVENTS_IP:$APEX_EVENTS_IP -v KAFKA_IP:$KAFKA_IP -v PROMETHEUS_IP:${PROMETHEUS_IP}
--v POLICY_PDPX_IP:$POLICY_PDPX_IP -v POLICY_DROOLS_IP:$POLICY_DROOLS_IP -v TEMP_FOLDER:${DIST_TEMP_FOLDER}
--v DISTRIBUTION_IP:$DISTRIBUTION_IP -v CLAMP_K8S_TEST:$CLAMP_K8S_TEST"
+ROBOT_VARIABLES="-v DATA:${DATA}
+-v NODETEMPLATES:${NODETEMPLATES}
+-v POLICY_API_IP:${POLICY_API_IP}
+-v POLICY_RUNTIME_ACM_IP:${POLICY_RUNTIME_ACM_IP}
+-v POLICY_PARTICIPANT_SIM_IP:$POLICY_PARTICIPANT_SIM_IP
+-v POLICY_PAP_IP:${POLICY_PAP_IP}
+-v APEX_IP:${APEX_IP}
+-v APEX_EVENTS_IP:${APEX_EVENTS_IP}
+-v KAFKA_IP:${KAFKA_IP}
+-v PROMETHEUS_IP:${PROMETHEUS_IP}
+-v POLICY_PDPX_IP:${POLICY_PDPX_IP}
+-v POLICY_DROOLS_IP:${POLICY_DROOLS_IP}
+-v DROOLS_IP:${DROOLS_IP_1}
+-v DROOLS_IP_2:${DROOLS_IP_2}
+-v TEMP_FOLDER:${DIST_TEMP_FOLDER}
+-v DISTRIBUTION_IP:${DISTRIBUTION_IP}
+-v CLAMP_K8S_TEST:${CLAMP_K8S_TEST}"
+
+export ROBOT_VARIABLES
echo "Run Robot test"
echo ROBOT_VARIABLES="${ROBOT_VARIABLES}"
echo "Starting Robot test suites ..."
-python3 -m robot.run -d /tmp/ $ROBOT_VARIABLES $1
+mkdir -p /tmp/results/
+python3 -m robot.run -d /tmp/results/ ${ROBOT_VARIABLES} ${ROBOT_FILE}
RESULT=$?
echo "RESULT: ${RESULT}"
+
+exit $RESULT
diff --git a/csit/resources/scripts/setup-apex-pdp-large.sh b/csit/resources/scripts/setup-apex-pdp-large.sh
deleted file mode 100644
index aeb44567..00000000
--- a/csit/resources/scripts/setup-apex-pdp-large.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash
-#
-# ===========LICENSE_START====================================================
-# Copyright (C) 2023 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=====================================================
-#
-
-export PROJECT="apex-pdp"
-export KAFKA_IP="localhost:${KAFKA_PORT}"
-source "${SCRIPTS}"/node-templates.sh
-
-source "${WORKSPACE}"/compose/start-multiple-pdp.sh 10
-
-sleep 10
-unset http_proxy https_proxy
-
-# wait for the app to start up
-bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT}
-bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT}
-
-sleep 20
-
-healthy=false
-
-while [ $healthy = false ]
-do
- msg=`curl -s -k --user 'policyadmin:zb!XztG34' http://localhost:${APEX_PORT}/policy/apex-pdp/v1/healthcheck`
- echo "${msg}" | grep -q true
- if [ "${?}" -eq 0 ]
- then
- healthy=true
- break
- fi
- sleep 10s
-done
-
-export SUITES="apex-slas-10.robot"
-
-ROBOT_VARIABLES="-v POLICY_PAP_IP:localhost:${PAP_PORT} -v POLICY_API_IP:localhost:${API_PORT}
--v PROMETHEUS_IP:localhost:${PROMETHEUS_PORT} -v DATA:${DATA} -v NODETEMPLATES:${NODETEMPLATES}
--v APEX_IP:localhost:${APEX_PORT} -v APEX_EVENTS_IP:localhost:${APEX_PORT -v KAFKA_IP:${KAFKA_IP}}"
diff --git a/csit/resources/scripts/setup-apex-pdp-medium.sh b/csit/resources/scripts/setup-apex-pdp-medium.sh
deleted file mode 100644
index 5d1dbb2c..00000000
--- a/csit/resources/scripts/setup-apex-pdp-medium.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash
-#
-# ===========LICENSE_START====================================================
-# Copyright (C) 2023 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=====================================================
-#
-
-export PROJECT="apex-pdp"
-export KAFKA_IP="localhost:${KAFKA_PORT}"
-source "${SCRIPTS}"/node-templates.sh
-
-source "${WORKSPACE}"/compose/start-multiple-pdp.sh 3
-
-sleep 10
-unset http_proxy https_proxy
-
-# wait for the app to start up
-bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT}
-bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT}
-
-sleep 20
-
-healthy=false
-
-while [ $healthy = false ]
-do
- msg=`curl -s -k --user 'policyadmin:zb!XztG34' http://localhost:${APEX_PORT}/policy/apex-pdp/v1/healthcheck`
- echo "${msg}" | grep -q true
- if [ "${?}" -eq 0 ]
- then
- healthy=true
- break
- fi
- sleep 10s
-done
-
-export SUITES="apex-slas-3.robot"
-
-ROBOT_VARIABLES="-v POLICY_PAP_IP:localhost:${PAP_PORT} -v POLICY_API_IP:localhost:${API_PORT}
--v PROMETHEUS_IP:localhost:${PROMETHEUS_PORT} -v DATA:${DATA} -v NODETEMPLATES:${NODETEMPLATES}
--v APEX_IP:localhost:${APEX_PORT} -v APEX_EVENTS_IP:localhost:${APEX_PORT} -v KAFKA_IP:${KAFKA_IP}"
diff --git a/csit/resources/scripts/setup-apex-pdp-postgres.sh b/csit/resources/scripts/setup-apex-pdp-postgres.sh
deleted file mode 100755
index 150ec8f6..00000000
--- a/csit/resources/scripts/setup-apex-pdp-postgres.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash
-# ============LICENSE_START=======================================================
-# Copyright (C) 2023 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.
-#
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END=========================================================
-
-source "${SCRIPTS}"/node-templates.sh
-
-source "${WORKSPACE}"/compose/start-postgres-tests.sh 1
-
-sleep 10
-unset http_proxy https_proxy
-
-# wait for the app to start up
-bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT}
-bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT}
-
-sleep 20
-
-healthy=false
-
-while [ $healthy = false ]
-do
- msg=`curl -s -k --user 'policyadmin:zb!XztG34' http://localhost:${APEX_PORT}/policy/apex-pdp/v1/healthcheck`
- echo "${msg}" | grep -q true
- if [ "${?}" -eq 0 ]
- then
- healthy=true
- break
- fi
- sleep 10s
-done
-
-export KAFKA_IP="localhost:${KAFKA_PORT}"
-export SUITES="apex-pdp-test.robot"
-
-ROBOT_VARIABLES="-v POLICY_PAP_IP:localhost:${PAP_PORT} -v POLICY_API_IP:localhost:${API_PORT}
--v PROMETHEUS_IP:localhost:${PROMETHEUS_PORT} -v DATA:${DATA} -v NODETEMPLATES:${NODETEMPLATES}
--v APEX_IP:localhost:${APEX_PORT} -v KAFKA_IP:${KAFKA_IP}
--v APEX_EVENTS_IP:localhost:${APEX_EVENTS_PORT}"
diff --git a/csit/resources/scripts/setup-apex-pdp.sh b/csit/resources/scripts/setup-apex-pdp.sh
deleted file mode 100755
index 1f04fc85..00000000
--- a/csit/resources/scripts/setup-apex-pdp.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-# ============LICENSE_START=======================================================
-# Copyright (C) 2018 Ericsson. All rights reserved.
-#
-# Modifications Copyright (c) 2019-2024 Nordix Foundation.
-# Modifications Copyright (C) 2020-2021 AT&T Intellectual Property.
-# Modifications Copyright (C) 2021 Bell Canada. 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.
-#
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END=========================================================
-
-source "${SCRIPTS}"/setup-pap.sh
-
-# wait for the app to start up
-bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT}
-
-export KAFKA_IP="localhost:${KAFKA_PORT}"
-export SUITES="apex-pdp-test.robot
-apex-slas.robot"
-
-ROBOT_VARIABLES="${ROBOT_VARIABLES} -v APEX_IP:localhost:${APEX_PORT} -v KAFKA_IP:${KAFKA_IP}
--v APEX_EVENTS_IP:localhost:${APEX_EVENTS_PORT}"
diff --git a/csit/resources/scripts/setup-api.sh b/csit/resources/scripts/setup-api.sh
deleted file mode 100755
index 5a5cad20..00000000
--- a/csit/resources/scripts/setup-api.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-# ============LICENSE_START=======================================================
-# Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
-# Modifications Copyright 2021-2023 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.
-#
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END=========================================================
-
-source "${SCRIPTS}"/node-templates.sh
-
-source "${WORKSPACE}"/compose/start-compose.sh api --grafana
-
-sleep 10
-unset http_proxy https_proxy
-
-# wait for the app to start up
-bash "${SCRIPTS}"/wait_for_rest.sh localhost ${API_PORT}
-
-export SUITES="api-test.robot
-api-slas.robot"
-
-ROBOT_VARIABLES="-v POLICY_API_IP:localhost:${API_PORT} -v PROMETHEUS_IP:localhost:${PROMETHEUS_PORT}
--v DATA:${DATA} -v NODETEMPLATES:${NODETEMPLATES}"
diff --git a/csit/resources/scripts/setup-clamp.sh b/csit/resources/scripts/setup-clamp.sh
deleted file mode 100755
index ba4467b9..00000000
--- a/csit/resources/scripts/setup-clamp.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-# ============LICENSE_START=======================================================
-# Copyright (C) 2021-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.
-#
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END=========================================================
-
-source "${WORKSPACE}"/compose/start-compose.sh policy-clamp-runtime-acm
-
-sleep 10
-unset http_proxy https_proxy
-
-# wait for the app to start up
-"${SCRIPTS}"/wait_for_rest.sh localhost "${ACM_PORT}"
-
-CLAMP_K8S_TEST=false
-
-export SUITES="policy-clamp-test.robot"
-
-ROBOT_VARIABLES="-v POLICY_RUNTIME_ACM_IP:localhost:${ACM_PORT}
--v POLICY_PARTICIPANT_SIM_IP:localhost:${SIM_PARTICIPANT_PORT}
--v POLICY_API_IP:localhost:${API_PORT} -v POLICY_PAP_IP:localhost:${PAP_PORT} -v CLAMP_K8S_TEST:$CLAMP_K8S_TEST"
-
-
diff --git a/csit/resources/scripts/setup-distribution.sh b/csit/resources/scripts/setup-distribution.sh
deleted file mode 100755
index 3840d9d7..00000000
--- a/csit/resources/scripts/setup-distribution.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-# ============LICENSE_START=======================================================
-# Copyright (C) 2018 Ericsson. All rights reserved.
-# Modifications Copyright (c) 2019-2023 Nordix Foundation.
-# Modifications Copyright (C) 2020-2021 AT&T Intellectual Property.
-# ================================================================================
-# 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.
-#
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END=========================================================
-
-# Remaking the csar file in case if the file got corrupted
-DIST_TEMP_FOLDER=/tmp/distribution
-
-zip -F "${TEST_PLAN_DIR}"/data/csar/sample_csar_with_apex_policy.csar \
- --out "${TEST_PLAN_DIR}"/data/csar/csar_temp.csar
-
-# Remake temp directory
-rm -rf "${DIST_TEMP_FOLDER}"
-mkdir "${DIST_TEMP_FOLDER}"
-
-source "${WORKSPACE}"/compose/start-compose.sh distribution
-
-sleep 10
-unset http_proxy https_proxy
-
-# wait for the app to start up
-"${SCRIPTS}"/wait_for_rest.sh localhost "${DIST_PORT}"
-
-export SUITES="distribution-test.robot"
-
-ROBOT_VARIABLES="-v APEX_EVENTS_IP:localhost:${APEX_EVENTS_PORT}
--v DISTRIBUTION_IP:localhost:${DIST_PORT} -v TEMP_FOLDER:${DIST_TEMP_FOLDER}"
diff --git a/csit/resources/scripts/setup-drools-applications.sh b/csit/resources/scripts/setup-drools-applications.sh
deleted file mode 100755
index bfb3f67d..00000000
--- a/csit/resources/scripts/setup-drools-applications.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-#
-# ===========LICENSE_START====================================================
-# Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
-# Modifications Copyright 2021-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=====================================================
-#
-
-source "${SCRIPTS}"/node-templates.sh
-
-source "${WORKSPACE}"/compose/start-compose.sh drools-applications
-
-sleep 10
-unset http_proxy https_proxy
-
-export SUITES="drools-applications-test.robot"
-export KAFKA_IP="localhost:${KAFKA_PORT}"
-
-# wait for the app to start up
-"${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT}
-"${SCRIPTS}"/wait_for_rest.sh localhost ${DROOLS_APPS_PORT}
-"${SCRIPTS}"/wait_for_rest.sh localhost ${DROOLS_APPS_TELEMETRY_PORT}
-
-# give enough time for the controllers to come up
-sleep 15
-
-ROBOT_VARIABLES="-v DATA:${DATA} -v DROOLS_IP:localhost:${DROOLS_APPS_PORT}
--v DROOLS_IP_2:localhost:${DROOLS_APPS_TELEMETRY_PORT} -v POLICY_API_IP:localhost:${API_PORT}
--v POLICY_PAP_IP:localhost:${PAP_PORT} -v KAFKA_IP:${KAFKA_IP}"
diff --git a/csit/resources/scripts/setup-drools-pdp.sh b/csit/resources/scripts/setup-drools-pdp.sh
deleted file mode 100755
index fadc0956..00000000
--- a/csit/resources/scripts/setup-drools-pdp.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-# ============LICENSE_START=======================================================
-# Copyright 2017-2021 AT&T Intellectual Property. All rights reserved.
-# Modifications Copyright 2021-2023 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.
-#
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END=========================================================
-
-source "${WORKSPACE}"/compose/start-compose.sh drools-pdp
-
-sleep 10
-unset http_proxy https_proxy
-
-export SUITES="drools-pdp-test.robot"
-
-# wait for the app to start up - looking for telemetry service on port ${DROOLS_PORT} forwarded from 9696
-"${SCRIPTS}"/wait_for_rest.sh localhost ${DROOLS_TELEMETRY_PORT}
-
-# give enough time for the controllers to come up
-sleep 15
-
-ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_DROOLS_IP:localhost:${DROOLS_TELEMETRY_PORT}"
diff --git a/csit/resources/scripts/setup-pap.sh b/csit/resources/scripts/setup-pap.sh
deleted file mode 100755
index 741f0644..00000000
--- a/csit/resources/scripts/setup-pap.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-# ============LICENSE_START=======================================================
-# Copyright (C) 2019-2022 Nordix Foundation.
-# Modifications Copyright (C) 2019-2021 AT&T Intellectual Property.
-# Modifications Copyright (C) 2022-2023 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.
-#
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END=========================================================
-
-source "${SCRIPTS}"/node-templates.sh
-
-source "${WORKSPACE}"/compose/start-compose.sh apex-pdp --grafana
-
-sleep 10
-unset http_proxy https_proxy
-
-# wait for the app to start up
-bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT}
-
-export SUITES="pap-test.robot
-pap-slas.robot"
-
-ROBOT_VARIABLES="-v POLICY_PAP_IP:localhost:${PAP_PORT} -v POLICY_API_IP:localhost:${API_PORT}
--v PROMETHEUS_IP:localhost:${PROMETHEUS_PORT} -v DATA:${DATA} -v NODETEMPLATES:${NODETEMPLATES}"
diff --git a/csit/resources/scripts/setup-xacml-pdp.sh b/csit/resources/scripts/setup-xacml-pdp.sh
deleted file mode 100755
index 79a53bec..00000000
--- a/csit/resources/scripts/setup-xacml-pdp.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-# ============LICENSE_START=======================================================
-# Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
-# Modifications Copyright 2021-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.
-#
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END=========================================================
-
-source "${SCRIPTS}"/node-templates.sh
-
-source "${WORKSPACE}"/compose/start-compose.sh xacml-pdp
-
-sleep 10
-unset http_proxy https_proxy
-
-export SUITES="xacml-pdp-test.robot"
-export KAFKA_IP="localhost:${KAFKA_PORT}"
-
-# wait for the app to start up
-"${SCRIPTS}"/wait_for_rest.sh localhost "${XACML_PORT}"
-
-ROBOT_VARIABLES="-v DATA:${DATA} -v POLICY_PDPX_IP:localhost:${XACML_PORT}
--v POLICY_API_IP:localhost:${API_PORT} -v POLICY_PAP_IP:localhost:${PAP_PORT}
--v KAFKA_IP:${KAFKA_IP}"
diff --git a/csit/resources/tests/distribution-test.robot b/csit/resources/tests/distribution-test.robot
index c85be4fd..b8b49248 100644
--- a/csit/resources/tests/distribution-test.robot
+++ b/csit/resources/tests/distribution-test.robot
@@ -20,11 +20,11 @@ MetricsAfterExecution
[Documentation] Verify policy-distribution is exporting prometheus metrics after execution
${hcauth}= PolicyAdminAuth
${resp}= PerformGetRequest ${DISTRIBUTION_IP} /metrics 200 null ${hcauth}
- Should Contain ${resp.text} total_distribution_received_count_total 2.0
- Should Contain ${resp.text} distribution_success_count_total 2.0
+ Should Contain ${resp.text} total_distribution_received_count_total 1.0
+ Should Contain ${resp.text} distribution_success_count_total 1.0
Should Contain ${resp.text} distribution_failure_count_total 0.0
- Should Contain ${resp.text} total_download_received_count_total 2.0
- Should Contain ${resp.text} download_success_count_total 2.0
+ Should Contain ${resp.text} total_download_received_count_total 1.0
+ Should Contain ${resp.text} download_success_count_total 1.0
Should Contain ${resp.text} download_failure_count_total 0.0
*** Keywords ***
diff --git a/csit/resources/tests/drools-applications-test.robot b/csit/resources/tests/drools-applications-test.robot
index a5c09c72..edbc1df6 100644
--- a/csit/resources/tests/drools-applications-test.robot
+++ b/csit/resources/tests/drools-applications-test.robot
@@ -74,69 +74,69 @@ DeployXacmlPolicies
# Should Contain ${result} deployed-policies
# Should Contain ${result} operational.scaleout
# Should Contain ${result} operational.restart
-
+#
#VcpeExecute
# [Documentation] Executes VCPE Policy
# OnSet ${CURDIR}/data/vcpeOnset.json
-# ${result}= CheckTopic POLICY-CL-MGT ACTIVE
+# ${result}= CheckKafkaTopic policy-cl-mgt ACTIVE
# Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
-# ${result}= CheckTopic POLICY-CL-MGT OPERATION
+# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION
# Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
# Should Contain ${result} Sending guard query for APPC Restart
-# ${result}= CheckTopic POLICY-CL-MGT OPERATION
+# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION
# Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
# Should Contain ${result} Guard result for APPC Restart is Permit
-# ${result}= CheckTopic POLICY-CL-MGT OPERATION
+# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION
# Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
# Should Contain ${result} actor=APPC,operation=Restart
-# ${result}= CheckTopic POLICY-CL-MGT OPERATION: SUCCESS
+# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION: SUCCESS
# Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
# Should Contain ${result} actor=APPC,operation=Restart
-# ${result}= CheckTopic POLICY-CL-MGT FINAL: SUCCESS
+# ${result}= CheckKafkaTopic policy-cl-mgt FINAL: SUCCESS
# Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
# Should Contain ${result} APPC
# Should Contain ${result} Restart
-
+#
#VdnsExecute
# [Documentation] Executes VDNS Policy
# OnSet ${CURDIR}/data/vdnsOnset.json
-# ${result}= CheckTopic POLICY-CL-MGT ACTIVE
+# ${result}= CheckKafkaTopic policy-cl-mgt ACTIVE
# Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
-# ${result}= CheckTopic POLICY-CL-MGT OPERATION
+# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION
# Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
# Should Contain ${result} Sending guard query for SO VF Module Create
-# ${result}= CheckTopic POLICY-CL-MGT OPERATION
+# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION
# Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
# Should Contain ${result} Guard result for SO VF Module Create is Permit
-# ${result}= CheckTopic POLICY-CL-MGT OPERATION
+# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION
# Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
# Should Contain ${result} actor=SO,operation=VF Module Create
-# ${result}= CheckTopic POLICY-CL-MGT OPERATION: SUCCESS
+# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION: SUCCESS
# Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
# Should Contain ${result} actor=SO,operation=VF Module Create
-# ${result}= CheckTopic POLICY-CL-MGT FINAL: SUCCESS
+# ${result}= CheckKafkaTopic policy-cl-mgt FINAL: SUCCESS
# Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
# Should Contain ${result} SO
# Should Contain ${result} VF Module Create
-
+#
#VfwExecute
# [Documentation] Executes VFW Policy
# OnSet ${CURDIR}/data/vfwOnset.json
-# ${result}= CheckTopic POLICY-CL-MGT ACTIVE
+# ${result}= CheckKafkaTopic policy-cl-mgt ACTIVE
# Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
-# ${result}= CheckTopic POLICY-CL-MGT OPERATION
+# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION
# Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
# Should Contain ${result} Sending guard query for APPC ModifyConfig
-# ${result}= CheckTopic POLICY-CL-MGT OPERATION
+# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION
# Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
# Should Contain ${result} Guard result for APPC ModifyConfig is Permit
-# ${result}= CheckTopic POLICY-CL-MGT OPERATION
+# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION
# Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
# Should Contain ${result} actor=APPC,operation=ModifyConfig
-# ${result}= CheckTopic POLICY-CL-MGT OPERATION: SUCCESS
+# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION: SUCCESS
# Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
# Should Contain ${result} actor=APPC,operation=ModifyConfig
-# ${result}= CheckTopic POLICY-CL-MGT FINAL: SUCCESS
+# ${result}= CheckKafkaTopic policy-cl-mgt FINAL: SUCCESS
# Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
# Should Contain ${result} APPC
# Should Contain ${result} ModifyConfig
diff --git a/csit/resources/tests/pap-test.robot b/csit/resources/tests/pap-test.robot
index 21a37d3b..cd02e3ab 100644
--- a/csit/resources/tests/pap-test.robot
+++ b/csit/resources/tests/pap-test.robot
@@ -134,15 +134,3 @@ DeletePdpGroups
QueryPdpGroupsAfterDelete
[Documentation] Verify PdpGroups after delete
QueryPdpGroups 1 defaultGroup ACTIVE 0 null null null
-
-# ValidateSlaForPap
-# [Documentation] Run checks against Prometheus server to check response time
-# Sleep 30s
-# ValidateDeploymentTime
-# ValidateResponseTime pap-metrics /components/healthcheck GET 10000
-# ValidateResponseTimeForPap /healthcheck GET
-# ValidateResponseTimeForPap /policies/audit GET
-# ValidateResponseTimeForPap /pdps/groups/{name} PUT
-# ValidateResponseTimeForPap /pdps/policies/{name} DELETE
-# ValidateResponseTimeForPap /pdps/groups/{name} DELETE
-# ValidateResponseTimeForPap /pdps/groups/batch POST
diff --git a/csit/run-k8s-csit.sh b/csit/run-k8s-csit.sh
index d8fda028..c7d04032 100755
--- a/csit/run-k8s-csit.sh
+++ b/csit/run-k8s-csit.sh
@@ -350,13 +350,16 @@ wait_for_pods_running() {
for pod_name_prefix in "${pending_pods[@]}"; do
local pod_name=$(get_pod_name "$pod_name_prefix")
local pod_status
+ local pod_ready
+
pod_status=$(kubectl get pod "$pod_name" -n "$namespace" --no-headers -o custom-columns=STATUS:.status.phase 2>/dev/null)
+ pod_ready=$(kubectl get pod "$pod_name" -o jsonpath='{.status.containerStatuses[*].ready}')
- if [ "$pod_status" == "Running" ]; then
- echo "Pod '$pod_name' in namespace '$namespace' is now in 'Running' state."
+ if [ "$pod_status" == "Running" ] && [ "$pod_ready" == "true" ]; then
+ echo "Pod '$pod_name' in namespace '$namespace' is now in 'Running' state and 'Readiness' is true"
else
newly_running_pods+=("$pod_name")
- echo "Waiting for pod '$pod_name' in namespace '$namespace' to reach 'Running' state..."
+ echo "Waiting for pod '$pod_name' in namespace '$namespace' to reach 'Running' and 'Ready' state..."
fi
done
@@ -365,7 +368,7 @@ wait_for_pods_running() {
sleep 5
done
- echo "All specified pods are in the 'Running' state. Exiting the function."
+ echo "All specified pods are in the 'Running and Ready' state. Exiting the function."
}
@@ -397,7 +400,7 @@ if [ $OPERATION == "install" ]; then
sudo microk8s helm dependency build policy
sudo microk8s helm install csit-policy policy ${SET_VALUES}
sudo microk8s helm install prometheus prometheus
- wait_for_pods_running default 300 $READINESS_CONTAINERS
+ wait_for_pods_running default 480 $READINESS_CONTAINERS
echo "Policy chart installation completed"
echo "-------------------------------------------"
fi
diff --git a/csit/run-project-csit.sh b/csit/run-project-csit.sh
index 07a3424c..a7f7e865 100755
--- a/csit/run-project-csit.sh
+++ b/csit/run-project-csit.sh
@@ -3,7 +3,7 @@
# Copyright 2016-2017 Huawei Technologies Co., Ltd.
# Modification Copyright 2019 © Samsung Electronics Co., Ltd.
# Modification Copyright 2021 © AT&T Intellectual Property.
-# Modification Copyright 2021-2023 Nordix Foundation.
+# Modification Copyright 2021-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.
@@ -17,36 +17,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-# $1 functionality
-# $2 robot options
-
-#
-# functions
-#
-
-function on_exit(){
- rc=$?
- if [[ ${WORKSPACE} ]]; then
- # Record list of active docker containers
- docker ps --format "table {{ .Names }}\t{{ .Status }}"
-
- # show memory consumption after all docker instances initialized
- docker_stats
-
- source_safely ${WORKSPACE}/compose/stop-compose.sh
- rsync "${WORKSPACE}/compose/docker_compose.log" "${WORKSPACE}/csit/archives/${PROJECT}"
-
- if [[ ${WORKDIR} ]]; then
- rsync -av "${WORKDIR}/" "${WORKSPACE}/csit/archives/${PROJECT}"
- fi
- rm -rf ${WORKSPACE}/models
- fi
- # TODO: do something with the output
- exit $rc
-}
-
-# ensure that teardown and other finalizing steps are always executed
-trap on_exit EXIT
function docker_stats(){
# General memory details
@@ -70,124 +40,246 @@ function docker_stats(){
echo
}
-# save current set options
-function save_set() {
- RUN_CSIT_SAVE_SET="$-"
- RUN_CSIT_SHELLOPTS="${SHELLOPTS}"
+function setup_clamp() {
+ export ROBOT_FILES="policy-clamp-test.robot"
+ source "${WORKSPACE}"/compose/start-compose.sh policy-clamp-runtime-acm
+ sleep 30
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost "${ACM_PORT}"
+ export CLAMP_K8S_TEST=false
}
-# load the saved set options
-function load_set() {
- _setopts="$-"
+function setup_api() {
+ export ROBOT_FILES="api-test.robot api-slas.robot"
+ source "${WORKSPACE}"/compose/start-compose.sh api --grafana
+ sleep 10
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost ${API_PORT}
+}
- # bash shellopts
- for i in $(echo "${SHELLOPTS}" | tr ':' ' ') ; do
- set +o ${i}
- done
- for i in $(echo "${RUN_CSIT_SHELLOPTS}" | tr ':' ' ') ; do
- set -o ${i}
- done
+function setup_pap() {
+ export ROBOT_FILES="pap-test.robot pap-slas.robot"
+ source "${WORKSPACE}"/compose/start-compose.sh apex-pdp --grafana
+ sleep 10
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT}
+}
+
+function setup_apex() {
+ export ROBOT_FILES="apex-pdp-test.robot apex-slas.robot"
+ source "${WORKSPACE}"/compose/start-compose.sh apex-pdp --grafana
+ sleep 10
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT}
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT}
+ apex_healthcheck
+}
+
+function setup_apex_postgres() {
+ export ROBOT_FILES="apex-pdp-test.robot"
+ source "${WORKSPACE}"/compose/start-postgres-tests.sh 1
+ sleep 10
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT}
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT}
+ apex_healthcheck
+}
+
+function setup_apex_medium() {
+ export SUITES="apex-slas-3.robot"
+ source "${WORKSPACE}"/compose/start-multiple-pdp.sh 3
+ sleep 10
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT}
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT}
+ apex_healthcheck
+}
+
+function setup_apex_large() {
+ export ROBOT_FILES="apex-slas-10.robot"
+ source "${WORKSPACE}"/compose/start-multiple-pdp.sh 10
+ sleep 10
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT}
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT}
+ apex_healthcheck
+}
- # other options
- for i in $(echo "$_setopts" | sed 's/./& /g') ; do
- set +${i}
+function apex_healthcheck() {
+ sleep 20
+
+ healthy=false
+
+ while [ $healthy = false ]
+ do
+ msg=`curl -s -k --user 'policyadmin:zb!XztG34' http://localhost:${APEX_PORT}/policy/apex-pdp/v1/healthcheck`
+ echo "${msg}" | grep -q true
+ if [ "${?}" -eq 0 ]
+ then
+ healthy=true
+ break
+ fi
+ sleep 10s
done
- set -${RUN_CSIT_SAVE_SET}
}
-# set options for quick bailout when error
-function harden_set() {
- set -xeo pipefail
- set +u # enabled it would probably fail too many often
+function setup_drools_apps() {
+ export ROBOT_FILES="drools-applications-test.robot"
+ source "${WORKSPACE}"/compose/start-compose.sh drools-applications
+ sleep 10
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT}
+ sleep 10
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost ${DROOLS_APPS_PORT}
+ sleep 10
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost ${DROOLS_APPS_TELEMETRY_PORT}
}
-# relax set options so the sourced file will not fail
-# the responsibility is shifted to the sourced file...
-function relax_set() {
- set +e
- set +o pipefail
+function setup_xacml_pdp() {
+ export ROBOT_FILES="xacml-pdp-test.robot"
+ source "${WORKSPACE}"/compose/start-compose.sh xacml-pdp
+ sleep 10
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost "${XACML_PORT}"
}
-# wrapper for sourcing a file
-function source_safely() {
- [ -z "$1" ] && return 1
- relax_set
- . "$1"
- load_set
+function setup_drools_pdp() {
+ export ROBOT_FILES="drools-pdp-test.robot"
+ source "${WORKSPACE}"/compose/start-compose.sh drools-pdp
+ sleep 30
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost ${DROOLS_TELEMETRY_PORT}
}
-#
-# main
-#
+function setup_distribution() {
+ zip -F ${WORKSPACE}/csit/resources/tests/data/csar/sample_csar_with_apex_policy.csar \
+ --out ${WORKSPACE}/csit/resources/tests/data/csar/csar_temp.csar -q
-# set and save options for quick failure
-harden_set && save_set
+ # Remake temp directory
+ sudo rm -rf /tmp/distribution
+ sudo mkdir /tmp/distribution
-if [ $# -eq 0 ]
-then
- echo
- echo "Usage: $0 <project> [<robot-options>]"
- echo
- echo " <project> <robot-options>: "
- echo
- exit 1
-fi
+ export ROBOT_FILES="distribution-test.robot"
+ source "${WORKSPACE}"/compose/start-compose.sh distribution
+ sleep 10
+ bash "${SCRIPTS}"/wait_for_rest.sh localhost "${DIST_PORT}"
+}
+
+function build_robot_image() {
+ bash "${SCRIPTS}"/build-csit-docker-image.sh
+ cd ${WORKSPACE}
+}
+
+function run_robot() {
+ docker compose -f "${WORKSPACE}"/compose/docker-compose.yml up csit-tests
+ export RC=$?
+}
+
+function set_project_config() {
+ echo "Setting project configuration for: $PROJECT"
+ case $PROJECT in
+
+ clamp | policy-clamp)
+ setup_clamp
+ ;;
+
+ api | policy-api)
+ setup_api
+ ;;
+
+ pap | policy-pap)
+ setup_pap
+ ;;
+
+ apex-pdp | policy-apex-pdp)
+ setup_apex
+ ;;
+
+ apex-pdp-postgres | policy-apex-pdp-postgres)
+ setup_apex
+ ;;
+
+ apex-pdp-medium | policy-apex-pdp-medium)
+ setup_apex
+ ;;
+
+ apex-pdp-large | policy-apex-pdp-large)
+ setup_apex
+ ;;
+
+ xacml-pdp | policy-xacml-pdp)
+ setup_xacml_pdp
+ ;;
+
+ drools-pdp | policy-drools-pdp)
+ setup_drools_pdp
+ ;;
+
+ drools-applications | policy-drools-applications | drools-apps | policy-drools-apps)
+ setup_drools_apps
+ ;;
+ distribution | policy-distribution)
+ setup_distribution
+ ;;
+
+ *)
+ echo "Unknown project supplied. No test will run."
+ exit 1
+ ;;
+ esac
+}
+
+# even with forced finish, clean up docker containers
+function on_exit(){
+ rm -rf ${WORKSPACE}/csit/resources/tests/data/csar/csar_temp.csar
+ source ${WORKSPACE}/compose/stop-compose.sh
+ cp ${WORKSPACE}/compose/*.log ${WORKSPACE}/csit/archives/${PROJECT}
+ exit $RC
+}
+
+# ensure that teardown and other finalizing steps are always executed
+trap on_exit EXIT
+
+# setup all directories used for test resources
if [ -z "${WORKSPACE}" ]; then
WORKSPACE=$(git rev-parse --show-toplevel)
export WORKSPACE
fi
-# Add csit scripts to PATH
-export PATH="${PATH}:${WORKSPACE}/csit:${WORKSPACE}/scripts:${ROBOT_VENV}/bin"
-export SCRIPTS="${WORKSPACE}/csit/resources/scripts"
-export ROBOT_VARIABLES=
-
+export GERRIT_BRANCH=$(awk -F= '$1 == "defaultbranch" { print $2 }' "${WORKSPACE}"/.gitreview)
export PROJECT="${1}"
+export ROBOT_LOG_DIR=${WORKSPACE}/csit/archives/${PROJECT}
+export SCRIPTS="${WORKSPACE}/csit/resources/scripts"
+export ROBOT_FILES=""
cd "${WORKSPACE}"
-rm -rf "${WORKSPACE}/csit/archives/${PROJECT}"
-mkdir -p "${WORKSPACE}/csit/archives/${PROJECT}"
+# recreate the log folder with test results
+sudo rm -rf ${ROBOT_LOG_DIR}
+mkdir -p ${ROBOT_LOG_DIR}
+
+# log into nexus docker
+docker login -u docker -p docker nexus3.onap.org:10001
-# Run installation of pre-required libraries
-source_safely "${SCRIPTS}/prepare-robot-env.sh"
+# based on $PROJECT var, setup robot test files and docker compose execution
+compose_version=$(docker compose version)
-# Activate the virtualenv containing all the required libraries installed by prepare-robot-env.sh
-source_safely "${ROBOT_VENV}/bin/activate"
+if [[ $compose_version == *"Docker Compose version"* ]]; then
+ echo $compose_version
+else
+ echo "Docker Compose Plugin not installed. Installing now..."
+ sudo mkdir -p /usr/local/lib/docker/cli-plugins
+ sudo curl -SL https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
+ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
+fi
-export TEST_PLAN_DIR="${WORKSPACE}/csit/resources/tests"
-export TEST_OPTIONS="${2}"
+set_project_config
-WORKDIR=$(mktemp -d)
-cd "${WORKDIR}"
+unset http_proxy https_proxy
-# Sign in to nexus3 docker repo
-docker login -u docker -p docker nexus3.onap.org:10001
+export ROBOT_FILES
-# Run setup script plan if it exists
-SETUP="${SCRIPTS}/setup-${PROJECT}.sh"
-if [ -f "${SETUP}" ]; then
- echo "Running setup script ${SETUP}"
- source_safely "${SETUP}"
+# use a separate script to build a CSIT docker image, to containerize the test run
+if [ "${2}" == "--skip-build-csit" ]; then
+ echo "Skipping build csit robot image"
+else
+ build_robot_image
fi
-# show memory consumption after all docker instances initialized
docker_stats | tee "${WORKSPACE}/csit/archives/${PROJECT}/_sysinfo-1-after-setup.txt"
-# Run test plan
-cd "${WORKDIR}"
-echo "Reading the testplan:"
-echo "${SUITES}" | egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' | sed "s|^|${TEST_PLAN_DIR}/|" > testplan.txt
-cat testplan.txt
-SUITES=$( xargs < testplan.txt )
-
-echo ROBOT_VARIABLES="${ROBOT_VARIABLES}"
-echo "Starting Robot test suites ${SUITES} ..."
-relax_set
-python3 -m robot.run -N "${PROJECT}" -v WORKSPACE:/tmp ${ROBOT_VARIABLES} ${SUITES}
-RESULT=$?
-load_set
-echo "RESULT: ${RESULT}"
-# Note that the final steps are done in on_exit function after this exit!
-exit ${RESULT}
+# start the CSIT container and run the tests
+run_robot
+
+docker ps --format "table {{ .Names }}\t{{ .Status }}"