aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGary Wu <gary.i.wu@huawei.com>2019-04-15 16:11:11 +0000
committerGerrit Code Review <gerrit@onap.org>2019-04-15 16:11:11 +0000
commitfb17bcfe684ca3dd0995b801ca21f9de4d8b6d8b (patch)
tree7355a74f9ce240def885aa213446805d4b2fb6ce
parent5124ab5b8dad3dff35da2ceec74ca0e2645117e6 (diff)
parent95097c2a4d7f3ecbc22b01f7aad69736d49beb02 (diff)
Merge "DB Connection Setup for API and PAP for CSIT"
-rw-r--r--plans/policy/api/setup.sh23
-rwxr-xr-x[-rw-r--r--]plans/policy/api/teardown.sh2
-rw-r--r--plans/policy/pap/setup.sh22
-rw-r--r--plans/policy/pap/teardown.sh2
-rw-r--r--scripts/policy/config/db/db.conf16
-rwxr-xr-xscripts/policy/config/db/db.sh22
-rw-r--r--scripts/policy/docker-compose-api.yml43
-rw-r--r--scripts/policy/docker-compose-pap.yml43
-rw-r--r--tests/policy/api/api-test.robot12
9 files changed, 183 insertions, 2 deletions
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
index 8683dedd..fc82dfa7 100644..100755
--- 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
+