From c34da31922d20ae675a5de6bc5c251598ae71ff5 Mon Sep 17 00:00:00 2001 From: jhh Date: Mon, 9 Aug 2021 19:54:55 -0500 Subject: Add SQL_PORT configuration Issue-ID: POLICY-3533 Change-Id: I03fc41332d4739d5a4d6cee5f86ba823714336d6 Signed-off-by: jhh --- .../feature-active-standby-management.properties | 80 +++++++++++----------- .../config/feature-distributed-locking.properties | 6 +- .../config/feature-session-persistence.properties | 6 +- .../config/feature-state-management.properties | 6 +- packages/docker/src/main/docker/pdpd-entrypoint.sh | 8 ++- packages/install/src/files/base.conf | 1 + .../src/main/server-gen/bin/db-migrator | 8 ++- 7 files changed, 62 insertions(+), 53 deletions(-) diff --git a/feature-active-standby-management/src/main/feature/config/feature-active-standby-management.properties b/feature-active-standby-management/src/main/feature/config/feature-active-standby-management.properties index e01dc9d9..f5fe1c70 100644 --- a/feature-active-standby-management/src/main/feature/config/feature-active-standby-management.properties +++ b/feature-active-standby-management/src/main/feature/config/feature-active-standby-management.properties @@ -1,40 +1,40 @@ -### -# ============LICENSE_START======================================================= -# feature-active-standby-management -# ================================================================================ -# Copyright (C) 2017, 2019, 2021 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. -# ============LICENSE_END========================================================= -### - -# DB properties -eclipselink.target-database=MySQL -javax.persistence.jdbc.driver=org.mariadb.jdbc.Driver -javax.persistence.jdbc.url=jdbc:mariadb://${env:SQL_HOST}:3306/activestandbymanagement -javax.persistence.jdbc.user=${env:SQL_USER} -javax.persistence.jdbc.password=${env:SQL_PASSWORD} - -# Must be unique across the system -resource.name=pdp1 -# Name of the site in which this node is hosted -site_name=site1 - -# Needed by DroolsPdpsElectionHandler -pdp.checkInterval=2500 -pdp.updateInterval=2500 -#pdp.timeout=3000 -# Need long timeout, because testTransaction is only run every 10 seconds. -pdp.timeout=15000 -#how long do we wait for the pdp table to populate on initial startup -pdp.initialWait=20000 +### +# ============LICENSE_START======================================================= +# feature-active-standby-management +# ================================================================================ +# Copyright (C) 2017, 2019, 2021 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. +# ============LICENSE_END========================================================= +### + +# DB properties +eclipselink.target-database=MySQL +javax.persistence.jdbc.driver=org.mariadb.jdbc.Driver +javax.persistence.jdbc.url=jdbc:mariadb://${envd:SQL_HOST}:${envd:SQL_PORT:3306}/activestandbymanagement +javax.persistence.jdbc.user=${envd:SQL_USER} +javax.persistence.jdbc.password=${envd:SQL_PASSWORD} + +# Must be unique across the system +resource.name=pdp1 +# Name of the site in which this node is hosted +site_name=site1 + +# Needed by DroolsPdpsElectionHandler +pdp.checkInterval=2500 +pdp.updateInterval=2500 +#pdp.timeout=3000 +# Need long timeout, because testTransaction is only run every 10 seconds. +pdp.timeout=15000 +#how long do we wait for the pdp table to populate on initial startup +pdp.initialWait=20000 diff --git a/feature-distributed-locking/src/main/feature/config/feature-distributed-locking.properties b/feature-distributed-locking/src/main/feature/config/feature-distributed-locking.properties index 2b1e06f7..30a04219 100644 --- a/feature-distributed-locking/src/main/feature/config/feature-distributed-locking.properties +++ b/feature-distributed-locking/src/main/feature/config/feature-distributed-locking.properties @@ -21,9 +21,9 @@ #Database properties eclipselink.target-database=MySQL javax.persistence.jdbc.driver=org.mariadb.jdbc.Driver -javax.persistence.jdbc.url=jdbc:mariadb://${env:SQL_HOST}:3306/pooling -javax.persistence.jdbc.user=${env:SQL_USER} -javax.persistence.jdbc.password=${env:SQL_PASSWORD} +javax.persistence.jdbc.url=jdbc:mariadb://${envd:SQL_HOST}:${envd:SQL_PORT:3306}/pooling +javax.persistence.jdbc.user=${envd:SQL_USER} +javax.persistence.jdbc.password=${envd:SQL_PASSWORD} # default property values are commented out #distributed.locking.expire.check.seconds=900 diff --git a/feature-session-persistence/src/main/feature/config/feature-session-persistence.properties b/feature-session-persistence/src/main/feature/config/feature-session-persistence.properties index ae9ce453..50e0618b 100644 --- a/feature-session-persistence/src/main/feature/config/feature-session-persistence.properties +++ b/feature-session-persistence/src/main/feature/config/feature-session-persistence.properties @@ -20,9 +20,9 @@ eclipselink.target-database=MySQL javax.persistence.jdbc.driver= org.mariadb.jdbc.Driver -javax.persistence.jdbc.url=jdbc:mariadb://${env:SQL_HOST}:3306/sessionpersistence -javax.persistence.jdbc.user=${env:SQL_USER} -javax.persistence.jdbc.password=${env:SQL_PASSWORD} +javax.persistence.jdbc.url=jdbc:mariadb://${envd:SQL_HOST}:${envd:SQL_PORT:3306}/sessionpersistence +javax.persistence.jdbc.user=${envd:SQL_USER} +javax.persistence.jdbc.password=${envd:SQL_PASSWORD} #Seconds timeout - 15 minutes persistence.sessioninfo.timeout=900 diff --git a/feature-state-management/src/main/feature/config/feature-state-management.properties b/feature-state-management/src/main/feature/config/feature-state-management.properties index 84309e41..da1b5486 100644 --- a/feature-state-management/src/main/feature/config/feature-state-management.properties +++ b/feature-state-management/src/main/feature/config/feature-state-management.properties @@ -21,9 +21,9 @@ # DB properties eclipselink.target-database=MySQL javax.persistence.jdbc.driver=org.mariadb.jdbc.Driver -javax.persistence.jdbc.url=jdbc:mariadb://${env:SQL_HOST}:3306/statemanagement -javax.persistence.jdbc.user=${env:SQL_USER} -javax.persistence.jdbc.password=${env:SQL_PASSWORD} +javax.persistence.jdbc.url=jdbc:mariadb://${envd:SQL_HOST}:${envd:SQL_PORT:3306}/statemanagement +javax.persistence.jdbc.user=${envd:SQL_USER} +javax.persistence.jdbc.password=${envd:SQL_PASSWORD} # DroolsPDPIntegrityMonitor Properties # Test interface host and port defaults may be overwritten here diff --git a/packages/docker/src/main/docker/pdpd-entrypoint.sh b/packages/docker/src/main/docker/pdpd-entrypoint.sh index 8f801a45..112d3cb4 100644 --- a/packages/docker/src/main/docker/pdpd-entrypoint.sh +++ b/packages/docker/src/main/docker/pdpd-entrypoint.sh @@ -154,8 +154,12 @@ function db { return 0 fi - echo "Wating for ${SQL_HOST} ." - timeout 120 sh -c 'until nc -vz "${SQL_HOST}" 3306; do echo -n "."; sleep 1; done'; echo $? + if [ -z "${SQL_PORT}" ]; then + export SQL_PORT=3306 + fi + + echo "Waiting for ${SQL_HOST}:${SQL_PORT} ..." + timeout 120 sh -c 'until nc -vz -w 20 "${SQL_HOST}" "${SQL_PORT}"; do echo -n "."; sleep 1; done' "${POLICY_HOME}"/bin/db-migrator -s ALL -o upgrade } diff --git a/packages/install/src/files/base.conf b/packages/install/src/files/base.conf index d6b38d10..bf9b72ea 100644 --- a/packages/install/src/files/base.conf +++ b/packages/install/src/files/base.conf @@ -72,6 +72,7 @@ REPOSITORY_OFFLINE= SQL_HOST= SQL_USER= SQL_PASSWORD= +SQL_PORT=3306 # AAF diff --git a/policy-management/src/main/server-gen/bin/db-migrator b/policy-management/src/main/server-gen/bin/db-migrator index 8ae2c7d4..b4602ea8 100644 --- a/policy-management/src/main/server-gen/bin/db-migrator +++ b/policy-management/src/main/server-gen/bin/db-migrator @@ -526,8 +526,12 @@ if [ -z "${SQL_HOST}" ] || [ -z "${SQL_USER}" ] || [ -z "${SQL_PASSWORD}" ]; the exit 4 fi -MYSQL="mysql -u${SQL_USER} -p${SQL_PASSWORD} -h ${SQL_HOST}"; -if ! ${MYSQL} -h"${SQL_HOST}" --execute "show databases;" > /dev/null 2>&1; then +if [ -z "${SQL_PORT}" ]; then + export SQL_PORT=3306 +fi + +MYSQL="mysql -u${SQL_USER} -p${SQL_PASSWORD} -h ${SQL_HOST} -P ${SQL_PORT}" +if ! ${MYSQL} --execute "show databases;" > /dev/null 2>&1; then echo "error: No DB connectivity to ${SQL_HOST} for ${SQL_USER}" exit 5 fi -- cgit 1.2.3-korg