aboutsummaryrefslogtreecommitdiffstats
path: root/csit/distribution
diff options
context:
space:
mode:
Diffstat (limited to 'csit/distribution')
-rw-r--r--csit/distribution/config/csar/sample_csar_with_apex_policy.csarbin0 -> 96868 bytes
-rw-r--r--csit/distribution/plans/setup.sh66
-rw-r--r--csit/distribution/plans/teardown.sh23
-rw-r--r--csit/distribution/plans/testplan.txt3
-rw-r--r--csit/distribution/tests/data/event.json11
-rw-r--r--csit/distribution/tests/distribution-test.robot42
6 files changed, 145 insertions, 0 deletions
diff --git a/csit/distribution/config/csar/sample_csar_with_apex_policy.csar b/csit/distribution/config/csar/sample_csar_with_apex_policy.csar
new file mode 100644
index 00000000..4d293e42
--- /dev/null
+++ b/csit/distribution/config/csar/sample_csar_with_apex_policy.csar
Binary files differ
diff --git a/csit/distribution/plans/setup.sh b/csit/distribution/plans/setup.sh
new file mode 100644
index 00000000..664cb69f
--- /dev/null
+++ b/csit/distribution/plans/setup.sh
@@ -0,0 +1,66 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+# Copyright (C) 2018 Ericsson. All rights reserved.
+#
+# Modifications copyright (c) 2019 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=========================================================
+source ${SCRIPTS}/get-branch-mariadb.sh
+
+echo "Uninstall docker-py and reinstall docker."
+pip uninstall -y docker-py
+pip uninstall -y docker
+pip install -U docker==2.7.0
+
+sudo apt-get -y install libxml2-utils
+
+source ${SCRIPTS}/detmVers.sh
+
+SCRIPT_DIR=${TESTPLANDIR}/config
+
+# Remaking the csar file in case if the file got corrupted
+zip -F ${SCRIPT_DIR}/csar/sample_csar_with_apex_policy.csar --out ${SCRIPT_DIR}/csar/csar_temp.csar
+
+# Remake temp directory
+rm -rf ${SCRIPT_DIR}/temp
+mkdir ${SCRIPT_DIR}/temp
+
+docker-compose -f ${SCRIPTS}/docker-compose-all.yml up -d distribution
+
+unset http_proxy https_proxy
+
+POLICY_API_IP=`get-instance-ip.sh policy-api`
+POLICY_PAP_IP=`get-instance-ip.sh policy-pap`
+MARIADB_IP=`get-instance-ip.sh mariadb`
+APEX_IP=`get-instance-ip.sh policy-apex-pdp`
+DMAAP_IP=`get-instance-ip.sh policy.api.simpledemo.onap.org`
+POLICY_DISTRIBUTION_IP=`get-instance-ip.sh policy-distribution`
+
+echo PAP IP IS ${POLICY_PAP_IP}
+echo MARIADB IP IS ${MARIADB_IP}
+echo API IP IS ${POLICY_API_IP}
+echo APEX IP IS ${APEX_IP}
+echo DMAAP_IP IS ${DMAAP_IP}
+echo POLICY_DISTRIBUTION_IP IS ${POLICY_DISTRIBUTION_IP}
+
+# wait for the app to start up
+${SCRIPTS}/wait_for_port.sh ${POLICY_DISTRIBUTION_IP} 6969
+
+ROBOT_VARIABLES=""
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v APEX_IP:${APEX_IP}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v SCRIPT_DIR:${SCRIPT_DIR}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_DISTRIBUTION_IP:${POLICY_DISTRIBUTION_IP}"
diff --git a/csit/distribution/plans/teardown.sh b/csit/distribution/plans/teardown.sh
new file mode 100644
index 00000000..f47fcd87
--- /dev/null
+++ b/csit/distribution/plans/teardown.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+# Copyright (C) 2018 Ericsson. All rights reserved.
+#
+# Modifications copyright (c) 2019 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=========================================================
+
+docker-compose -f ${SCRIPTS}/docker-compose-all.yml down -v
diff --git a/csit/distribution/plans/testplan.txt b/csit/distribution/plans/testplan.txt
new file mode 100644
index 00000000..de61eab9
--- /dev/null
+++ b/csit/distribution/plans/testplan.txt
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [policy/distribution.git]/csit/tests/.
+# Place the suites in run order.
+distribution-test.robot
diff --git a/csit/distribution/tests/data/event.json b/csit/distribution/tests/data/event.json
new file mode 100644
index 00000000..9dbf2790
--- /dev/null
+++ b/csit/distribution/tests/data/event.json
@@ -0,0 +1,11 @@
+{
+ "nameSpace": "org.onap.policy.apex.sample.events",
+ "name": "Event0000",
+ "version": "0.0.1",
+ "source": "REST_0",
+ "target": "apex",
+ "TestSlogan": "Test slogan for External Event0",
+ "TestMatchCase": 3,
+ "TestTimestamp": 1536363522018,
+ "TestTemperature": 9080.866
+}
diff --git a/csit/distribution/tests/distribution-test.robot b/csit/distribution/tests/distribution-test.robot
new file mode 100644
index 00000000..64a77e06
--- /dev/null
+++ b/csit/distribution/tests/distribution-test.robot
@@ -0,0 +1,42 @@
+*** Settings ***
+Library Collections
+Library RequestsLibrary
+Library OperatingSystem
+Library json
+
+*** Test Cases ***
+
+Healthcheck
+ [Documentation] Verify policy distribution health check
+ ${resp}= PeformGetRequest /healthcheck 200
+ Should Be Equal As Strings ${resp.json()['code']} 200
+
+Statistics
+ [Documentation] Verify policy distribution statistics
+ ${resp}= PeformGetRequest /statistics 200
+ Should Be Equal As Strings ${resp.json()['code']} 200
+
+InvokeDistributionAndRunEventOnEngine
+ Wait Until Keyword Succeeds 5 min 30 sec InvokeDistributionUsingFile And RunEventOnApexEngine
+
+*** Keywords ***
+
+InvokeDistributionUsingFile And RunEventOnApexEngine
+ Copy File ${SCRIPT_DIR}/csar/csar_temp.csar ${SCRIPT_DIR}/csar/temp.csar
+ Move File ${SCRIPT_DIR}/csar/temp.csar ${SCRIPT_DIR}/temp/sample_csar_with_apex_policy.csar
+ Sleep 20 seconds "Waiting for the Policy Distribution to call Policy API and PAP"
+ Create Session apexSession http://${APEX_IP}:23324 max_retries=1
+ ${data}= Get Binary File ${CURDIR}${/}data${/}event.json
+ &{headers}= Create Dictionary Content-Type=application/json Accept=application/json
+ ${resp}= PUT On Session apexSession /apex/FirstConsumer/EventIn data=${data} headers=${headers} expected_status=200
+ Remove Files ${SCRIPT_DIR}/temp/sample_csar_with_apex_policy.csar
+
+PeformGetRequest
+ [Arguments] ${url} ${expectedstatus}
+ ${auth}= Create List healthcheck zb!XztG34
+ Log Creating session https://${POLICY_DISTRIBUTION_IP}:6969
+ ${session}= Create Session policy https://${POLICY_DISTRIBUTION_IP}:6969 auth=${auth}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
+ ${resp}= GET On Session policy ${url} headers=${headers} expected_status=${expectedstatus}
+ Log Received response from policy ${resp.text}
+ [return] ${resp}