aboutsummaryrefslogtreecommitdiffstats
path: root/pgaas/src/stage/opt/app/pgaas/etc/create-db-master
diff options
context:
space:
mode:
Diffstat (limited to 'pgaas/src/stage/opt/app/pgaas/etc/create-db-master')
-rw-r--r--pgaas/src/stage/opt/app/pgaas/etc/create-db-master72
1 files changed, 72 insertions, 0 deletions
diff --git a/pgaas/src/stage/opt/app/pgaas/etc/create-db-master b/pgaas/src/stage/opt/app/pgaas/etc/create-db-master
new file mode 100644
index 0000000..eb8fca3
--- /dev/null
+++ b/pgaas/src/stage/opt/app/pgaas/etc/create-db-master
@@ -0,0 +1,72 @@
+#!/bin/bash
+# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this code 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.
+
+
+# create a master database
+set -x
+
+die()
+{
+ echo $0: "$@" 1>&2
+ echo $0: "$@"
+ umask 022
+ echo $0: "$@" >> /tmp/pgaas-failures
+ exit 1
+}
+
+[ -n "$PGDIR" ] || die "PGDIR is not set"
+[ -n "$DBROOT" ] || die "DBROOT is not set"
+[ -n "$CFGDIR" ] || die "CFGDIR is not set"
+
+cd $CFGDIR/main || die "Cannot cd $CFGDIR/main"
+
+PATH=${INSTALL_ROOT}/opt/app/pgaas/bin:$CFGDIR/etc:$PGDIR/bin:$PATH
+
+umask 077
+TMP=$(mktemp /tmp/tmp.cdm.XXXXXXXXXX)
+trap 'rm -f $TMP' 0 1 2 3 15
+
+rm -rf $DBROOT/* # initdb fails if the directory is not totally empty
+pswd=$( ${INSTALL_ROOT}/opt/app/cdf/bin/getpropvalue -x -n postgres )
+echo "$pswd" > $TMP
+$PGDIR/bin/initdb -D $DBROOT --pwfile=$TMP
+rm -f $TMP
+
+$CFGDIR/etc/start-db
+sleep 30
+
+# create temporal tables and other extensions, if needed
+$CFGDIR/etc/create-extensions
+
+# create repmgr user/db, if needed
+$CFGDIR/etc/create-repmgr-user
+
+sleep 10
+
+# register as master
+repmgr -f $CFGDIR/main/repmgr.conf master register
+echo repmgr ret=$?
+
+sleep 10
+
+# start repmgrd
+# start repmgrd (verbose logging for testing)
+umask 07
+repmgrd -f $CFGDIR/main/repmgr.conf -d --verbose
+echo repmgrd ret=$?
+# start repmgrd (normal logging)
+# repmgrd -f $CFGDIR/main/repmgr.conf -d
+
+
+# NO LONGER NEEDED $CFGDIR/etc/create-db-backup