summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwaynedunican <wayne.dunican@est.tech>2022-03-16 08:10:54 +0000
committerWayne Dunican <wayne.dunican@est.tech>2022-03-30 09:36:37 +0000
commit74501197005fb7051b95f6614ef60605373fd521 (patch)
tree5be7fedf20333f560faf9aac9d292f7c5a140464
parent7a58ae144338d6b8ecf9904c05a62ee00ee0538b (diff)
CSITs for db-migrator
- Added test to confirm databases are created - Added test for api healthcehck Issue-ID: POLICY-2715 Signed-off-by: Wayne Dunican <wayne.dunican@est.tech> Change-Id: I8ef9f67bf50d2fcbf7c7db2c78370f6b277e5993
-rw-r--r--csit/compose-postgres.yml69
-rw-r--r--csit/config/db-pg/db-pg.conf17
-rw-r--r--csit/config/db-pg/db-pg.sh22
-rw-r--r--csit/db-migrator/plans/setup.sh26
-rw-r--r--csit/db-migrator/plans/teardown.sh22
-rw-r--r--csit/db-migrator/plans/testplan.txt3
-rw-r--r--csit/db-migrator/tests/db-migrator-test.robot34
-rwxr-xr-xcsit/db_migrator_policy_init.sh1
-rwxr-xr-xcsit/db_migrator_policy_init_pg.sh36
-rw-r--r--csit/get-versions.sh3
10 files changed, 233 insertions, 0 deletions
diff --git a/csit/compose-postgres.yml b/csit/compose-postgres.yml
new file mode 100644
index 00000000..6c5e00a7
--- /dev/null
+++ b/csit/compose-postgres.yml
@@ -0,0 +1,69 @@
+#
+# ===========LICENSE_START====================================================
+# Copyright (C) 2022 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=====================================================
+#
+version: '2'
+services:
+ postgres:
+ image: nexus3.onap.org:10001/library/postgres:${POLICY_POSTGRES_VER}
+ container_name: postgres
+ hostname: postgres
+ command: ['--idle_in_transaction_session_timeout=28800']
+ env_file: config/db-pg/db-pg.conf
+ volumes:
+ - ./config/db-pg:/docker-entrypoint-initdb.d:ro
+ expose:
+ - 5432
+ policy-db-migrator-postgres:
+ image: nexus3.onap.org:10001/onap/policy-db-migrator:${POLICY_DOCKER_VERSION}
+ container_name: policy-db-migrator-postgres
+ hostname: policy-db-migrator-postgres
+ depends_on:
+ - postgres
+ expose:
+ - 6824
+ env_file: config/db-pg/db-pg.conf
+ environment:
+ SQL_DB: policyadmin
+ SQL_HOST: postgres
+ PGPASSWORD: policy_user
+ volumes:
+ - ./db_migrator_policy_init_pg.sh:/opt/app/policy/bin/db_migrator_policy_init_pg.sh:ro
+ - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro
+ entrypoint: /opt/app/policy/bin/wait_for_port.sh
+ command: [
+ '-c',
+ '/opt/app/policy/bin/db_migrator_policy_init_pg.sh',
+ 'postgres', '5432'
+ ]
+ api:
+ image: nexus3.onap.org:10001/onap/policy-api:${POLICY_API_VERSION}
+ container_name: policy-api
+ depends_on:
+ - policy-db-migrator-postgres
+ hostname: policy-api
+ expose:
+ - 6980
+ volumes:
+ - ./config/ks.jks:/opt/app/policy/api/etc/ssl/policy-keystore:ro
+ - ./config/policy-truststore:/opt/app/policy/api/etc/ssl/policy-truststore:ro
+ - ./wait_for_port.sh:/opt/app/policy/api/bin/wait_for_port.sh:ro
+ entrypoint: ./wait_for_port.sh
+ command: [
+ '-c', './policy-api.sh',
+ 'postgres', '5432',
+ 'policy-db-migrator-postgres', '6824'
+ ] \ No newline at end of file
diff --git a/csit/config/db-pg/db-pg.conf b/csit/config/db-pg/db-pg.conf
new file mode 100644
index 00000000..d4d58cec
--- /dev/null
+++ b/csit/config/db-pg/db-pg.conf
@@ -0,0 +1,17 @@
+# Copyright 2022 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.
+# 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.
+MYSQL_ROOT_PASSWORD=secret
+MYSQL_USER=policy_user
+MYSQL_PASSWORD=policy_user
+PGPASSWORD=policy_user \ No newline at end of file
diff --git a/csit/config/db-pg/db-pg.sh b/csit/config/db-pg/db-pg.sh
new file mode 100644
index 00000000..14816f08
--- /dev/null
+++ b/csit/config/db-pg/db-pg.sh
@@ -0,0 +1,22 @@
+#!/bin/bash -xv
+# Copyright 2022 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.
+# 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.
+
+psql -U postgres -d postgres --command "CREATE USER ${MYSQL_USER} WITH PASSWORD '${MYSQL_PASSWORD}';"
+
+for db in migration pooling policyadmin policyclamp operationshistory clampacm
+do
+ psql -U postgres -d postgres --command "CREATE DATABASE ${db};"
+ psql -U postgres -d postgres --command "GRANT ALL PRIVILEGES ON DATABASE ${db} TO ${MYSQL_USER} ;"
+done \ No newline at end of file
diff --git a/csit/db-migrator/plans/setup.sh b/csit/db-migrator/plans/setup.sh
new file mode 100644
index 00000000..31d93111
--- /dev/null
+++ b/csit/db-migrator/plans/setup.sh
@@ -0,0 +1,26 @@
+echo "Uninstall docker-py and reinstall docker."
+python3 -m pip uninstall -y docker-py
+python3 -m pip uninstall -y docker
+python3 -m pip install -U docker
+python3 -m pip install -U robotframework-databaselibrary
+python3 -m pip install psycopg2-binary
+
+sudo apt-get -y install libxml2-utils
+
+source "${SCRIPTS}"/get-versions.sh
+
+cd "${SCRIPTS}"
+docker-compose -f "${SCRIPTS}"/compose-postgres.yml up -d
+
+sleep 15
+unset http_proxy https_proxy
+
+POSTGRES_IP=$(get-instance-ip.sh postgres)
+POLICY_API_IP=$(get-instance-ip.sh policy-api)
+
+echo POSTGRES IP IS "${POSTGRES_IP}"
+echo POLICY_API_IP IS "${POLICY_API_IP}"
+
+ROBOT_VARIABLES=""
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POSTGRES_IP:${POSTGRES_IP}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_API_IP:${POLICY_API_IP}" \ No newline at end of file
diff --git a/csit/db-migrator/plans/teardown.sh b/csit/db-migrator/plans/teardown.sh
new file mode 100644
index 00000000..30a0f48d
--- /dev/null
+++ b/csit/db-migrator/plans/teardown.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+# Copyright (C) 2022 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=========================================================
+
+docker logs postgres
+
+docker-compose -f ${SCRIPTS}/compose-postgres.yml down -v \ No newline at end of file
diff --git a/csit/db-migrator/plans/testplan.txt b/csit/db-migrator/plans/testplan.txt
new file mode 100644
index 00000000..4d281179
--- /dev/null
+++ b/csit/db-migrator/plans/testplan.txt
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [policy/docker.git]/csit/[project]/tests.
+# Place the suites in run order.
+db-migrator-test.robot
diff --git a/csit/db-migrator/tests/db-migrator-test.robot b/csit/db-migrator/tests/db-migrator-test.robot
new file mode 100644
index 00000000..44cb1553
--- /dev/null
+++ b/csit/db-migrator/tests/db-migrator-test.robot
@@ -0,0 +1,34 @@
+*** Settings ***
+Suite Setup Connect To Database psycopg2 ${DB_NAME} ${DB_USERNAME} ${DB_PASSWORD} ${POSTGRES_IP} ${DB_PORT}
+Suite Teardown Disconnect From Database
+Library DatabaseLibrary
+Library String
+Library RequestsLibrary
+Library OperatingSystem
+Library json
+Resource ${CURDIR}/../../common-library.robot
+
+*** Variables ***
+${DB_NAME} = policyadmin
+${DB_USERNAME} = policy_user
+${DB_PASSWORD} = policy_user
+${DB_PORT} = 5432
+${PGPASSWORD} = policy_user
+
+*** Keywords ***
+GetReq
+ [Arguments] ${url}
+ ${auth}= PolicyAdminAuth
+ ${resp}= PerformGetRequest ${POLICY_API_IP} ${url} 200 null ${auth}
+ [return] ${resp}
+
+*** Test Cases ***
+Test Connection
+ ${output} = Execute SQL String SELECT datname FROM pg_database WHERE datname='policyadmin';
+ Log ${output}
+ Should Be Equal As Strings ${output} None
+
+Healthcheck
+ [Documentation] Verify policy api health check
+ ${resp}= GetReq /policy/api/v1/healthcheck
+ Should Be Equal As Strings ${resp.json()['code']} 200 \ No newline at end of file
diff --git a/csit/db_migrator_policy_init.sh b/csit/db_migrator_policy_init.sh
index d7a7b3f7..047d947e 100755
--- a/csit/db_migrator_policy_init.sh
+++ b/csit/db_migrator_policy_init.sh
@@ -20,6 +20,7 @@
export POLICY_HOME=/opt/app/policy
export SQL_USER=${MYSQL_USER}
export SQL_PASSWORD=${MYSQL_PASSWORD}
+export SCRIPT_DIRECTORY=sql
/opt/app/policy/bin/prepare_upgrade.sh ${SQL_DB}
diff --git a/csit/db_migrator_policy_init_pg.sh b/csit/db_migrator_policy_init_pg.sh
new file mode 100755
index 00000000..9b5f38e1
--- /dev/null
+++ b/csit/db_migrator_policy_init_pg.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+# ============LICENSE_START====================================================
+# Copyright (C) 2022 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======================================================
+
+export POLICY_HOME=/opt/app/policy
+export SQL_USER=${MYSQL_USER}
+export SQL_PASSWORD=${MYSQL_PASSWORD}
+export SCRIPT_DIRECTORY=postgres
+
+/opt/app/policy/bin/prepare_upgrade.sh ${SQL_DB}
+
+/opt/app/policy/bin/db-migrator-pg -s ${SQL_DB} -o report
+
+/opt/app/policy/bin/db-migrator-pg -s ${SQL_DB} -o upgrade
+rc=$?
+
+/opt/app/policy/bin/db-migrator-pg -s ${SQL_DB} -o report
+
+nc -l -p 6824
+
+exit $rc
diff --git a/csit/get-versions.sh b/csit/get-versions.sh
index d3f6bcda..6e50d088 100644
--- a/csit/get-versions.sh
+++ b/csit/get-versions.sh
@@ -23,6 +23,9 @@ source "${SCRIPTS}"/get-branch.sh
export POLICY_MARIADB_VER=10.5.8
echo POLICY_MARIADB_VER=${POLICY_MARIADB_VER}
+export POLICY_POSTGRES_VER=11.1
+echo POLICY_POSTGRES_VER=${POLICY_POSTGRES_VER}
+
function getVersion
{
REPO=$1