From: Bilal A Date: Fri, 12 Apr 2019 22:38:32 +0000 (+0000) Subject: DB Connection Setup for API and PAP for CSIT X-Git-Tag: 4.0.0-ONAP~51^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=integration%2Fcsit.git;a=commitdiff_plain;h=95097c2a4d7f3ecbc22b01f7aad69736d49beb02 DB Connection Setup for API and PAP for CSIT 1) Adds CSIT Test for API 2) Adds a mariadb container setup and configuration for API. 3) Adds a mariadb container setup and configuration for PAP. Change-Id: I9beea4f2445215bc95962ebceb4ec626dd0d5521 Issue-ID: POLICY-1270 Signed-off-by: Bilal A --- diff --git a/plans/policy/api/setup.sh b/plans/policy/api/setup.sh index b7d31bb5..a29254a5 100644 --- a/plans/policy/api/setup.sh +++ b/plans/policy/api/setup.sh @@ -17,15 +17,36 @@ # SPDX-License-Identifier: Apache-2.0 # ============LICENSE_END========================================================= -docker run -d --name policy-api -p 6969:6969 -it nexus3.onap.org:10001/onap/policy-api:2.0.0-SNAPSHOT-latest +echo "Uninstall docker-py and reinstall docker." +pip uninstall -y docker-py +pip uninstall -y docker +pip install -U docker==2.7.0 + +# Adding this waiting container to avoid race condition between api and mariadb containers. +docker-compose -f ${WORKSPACE}/scripts/policy/docker-compose-api.yml run --rm start_dependencies +docker-compose -f ${WORKSPACE}/scripts/policy/docker-compose-api.yml up -d +sleep 3 POLICY_API_IP=`get-instance-ip.sh policy-api` +MARIADB_IP=`get-instance-ip.sh mariadb` + echo API IP IS ${POLICY_API_IP} +echo MARIADB IP IS ${MARIADB_IP} + # Wait for initialization +for i in {1..10}; do + curl -sS ${MARIADB_IP}:3306 && break + echo sleep $i + sleep $i +done for i in {1..10}; do curl -sS ${POLICY_API_IP}:6969 && break echo sleep $i sleep $i done +#Configure the database +docker exec -it mariadb chmod +x /docker-entrypoint-initdb.d/db.sh +docker exec -it mariadb /docker-entrypoint-initdb.d/db.sh + ROBOT_VARIABLES="-v POLICY_API_IP:${POLICY_API_IP}" diff --git a/plans/policy/api/teardown.sh b/plans/policy/api/teardown.sh old mode 100644 new mode 100755 index 8683dedd..fc82dfa7 --- a/plans/policy/api/teardown.sh +++ b/plans/policy/api/teardown.sh @@ -18,3 +18,5 @@ # ============LICENSE_END========================================================= kill-instance.sh policy-api +kill-instance.sh mariadb +kill-instance.sh policy-wait diff --git a/plans/policy/pap/setup.sh b/plans/policy/pap/setup.sh index 44a205a1..2d31b9c4 100644 --- a/plans/policy/pap/setup.sh +++ b/plans/policy/pap/setup.sh @@ -17,15 +17,35 @@ # SPDX-License-Identifier: Apache-2.0 # ============LICENSE_END========================================================= -docker run -d --name policy-pap -p 6969:6969 -it nexus3.onap.org:10001/onap/policy-pap:2.0.0-SNAPSHOT-latest +echo "Uninstall docker-py and reinstall docker." +pip uninstall -y docker-py +pip uninstall -y docker +pip install -U docker==2.7.0 + +# Adding this waiting container due to race condition between pap and mariadb +docker-compose -f ${WORKSPACE}/scripts/policy/docker-compose-pap.yml run --rm start_dependencies +docker-compose -f ${WORKSPACE}/scripts/policy/docker-compose-pap.yml up -d +sleep 3 POLICY_PAP_IP=`get-instance-ip.sh policy-pap` +MARIADB_IP=`get-instance-ip.sh mariadb` + echo PAP IP IS ${POLICY_PAP_IP} +echo MARIADB IP IS ${MARIADB_IP} # Wait for initialization +for i in {1..10}; do + curl -sS ${MARIADB_IP}:3306 && break + echo sleep $i + sleep $i +done for i in {1..10}; do curl -sS ${POLICY_PAP_IP}:6969 && break echo sleep $i sleep $i done +#Configure the database +docker exec -it mariadb chmod +x /docker-entrypoint-initdb.d/db.sh +docker exec -it mariadb /docker-entrypoint-initdb.d/db.sh + ROBOT_VARIABLES="-v POLICY_PAP_IP:${POLICY_PAP_IP}" diff --git a/plans/policy/pap/teardown.sh b/plans/policy/pap/teardown.sh index 877b164a..87986979 100644 --- a/plans/policy/pap/teardown.sh +++ b/plans/policy/pap/teardown.sh @@ -18,3 +18,5 @@ # ============LICENSE_END========================================================= kill-instance.sh policy-pap +kill-instance.sh mariadb +kill-instance.sh policy-wait diff --git a/scripts/policy/config/db/db.conf b/scripts/policy/config/db/db.conf new file mode 100644 index 00000000..d6764f97 --- /dev/null +++ b/scripts/policy/config/db/db.conf @@ -0,0 +1,16 @@ +# Copyright 2019 AT&T Intellectual Property. 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 diff --git a/scripts/policy/config/db/db.sh b/scripts/policy/config/db/db.sh new file mode 100755 index 00000000..9ab2be2f --- /dev/null +++ b/scripts/policy/config/db/db.sh @@ -0,0 +1,22 @@ +#!/bin/bash -xv +# Copyright 2019 AT&T Intellectual Property. 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. + +for db in policyadmin +do + mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "CREATE DATABASE IF NOT EXISTS ${db};" + mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "GRANT ALL PRIVILEGES ON \`${db}\`.* TO '${MYSQL_USER}'@'%' ;" +done + +mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "FLUSH PRIVILEGES;" diff --git a/scripts/policy/docker-compose-api.yml b/scripts/policy/docker-compose-api.yml new file mode 100644 index 00000000..452297fb --- /dev/null +++ b/scripts/policy/docker-compose-api.yml @@ -0,0 +1,43 @@ +# Copyright 2019 AT&T Intellectual Property. 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. +version: '2' +networks: + default: + driver: bridge +services: + mariadb: + image: mariadb:10.2.14 + container_name: mariadb + hostname: mariadb + command: ['--lower-case-table-names=1', '--wait_timeout=28800'] + env_file: config/db/db.conf + volumes: + - ./config/db:/docker-entrypoint-initdb.d + ports: + - "3306:3306" + api: + image: nexus3.onap.org:10001/onap/policy-api + container_name: policy-api + depends_on: + - mariadb + hostname: policy-api + ports: + - "6969:6969" + start_dependencies: + image: dadarek/wait-for-dependencies + container_name: policy-wait + depends_on: + - mariadb + hostname: policy-wait + command: mariadb:3306 diff --git a/scripts/policy/docker-compose-pap.yml b/scripts/policy/docker-compose-pap.yml new file mode 100644 index 00000000..c5ff9cfb --- /dev/null +++ b/scripts/policy/docker-compose-pap.yml @@ -0,0 +1,43 @@ +# Copyright 2019 AT&T Intellectual Property. 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. +version: '2' +networks: + default: + driver: bridge +services: + mariadb: + image: mariadb:10.2.14 + container_name: mariadb + hostname: mariadb + command: ['--lower-case-table-names=1', '--wait_timeout=28800'] + env_file: config/db/db.conf + volumes: + - ./config/db:/docker-entrypoint-initdb.d + ports: + - "3306:3306" + pap: + image: nexus3.onap.org:10001/onap/policy-pap:2.0.0-SNAPSHOT-latest + container_name: policy-pap + depends_on: + - "mariadb" + hostname: policy-pap + ports: + - "6969:6969" + start_dependencies: + image: dadarek/wait-for-dependencies + container_name: policy-wait + depends_on: + - mariadb + hostname: policy-wait + command: mariadb:3306 diff --git a/tests/policy/api/api-test.robot b/tests/policy/api/api-test.robot index bf2c12b7..d90dabcd 100644 --- a/tests/policy/api/api-test.robot +++ b/tests/policy/api/api-test.robot @@ -26,3 +26,15 @@ Statistics Log Received response from policy ${resp.text} Should Be Equal As Strings ${resp.status_code} 200 Should Be Equal As Strings ${resp.json()['code']} 200 + +RetrievePolicyTypes + [Documentation] Gets Policy Types + ${auth}= Create List healthcheck zb!XztG34 + Log Creating session https://${POLICY_API_IP}:6969 + ${session}= Create Session policy https://${POLICY_API_IP}:6969 auth=${auth} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + ${resp}= Get Request policy /policy/api/v1/policytypes headers=${headers} + Log Received response from policy ${resp.text} + Should Be Equal As Strings ${resp.status_code} 200 + Should Be Equal As Strings ${resp.json()['version']} 1.0.0 +