[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libeufin] branch master updated: dbconfig: expect both users to exist
From: |
gnunet |
Subject: |
[libeufin] branch master updated: dbconfig: expect both users to exist |
Date: |
Mon, 04 Dec 2023 21:17:55 +0100 |
This is an automated email from the git hooks/post-receive script.
ms pushed a commit to branch master
in repository libeufin.
The following commit(s) were added to refs/heads/master by this push:
new 1d943938 dbconfig: expect both users to exist
1d943938 is described below
commit 1d943938436989f57ae2ccbefb0737712411f81d
Author: MS <ms@taler.net>
AuthorDate: Mon Dec 4 21:17:31 2023 +0100
dbconfig: expect both users to exist
---
contrib/libeufin-dbconfig | 87 ++++++++++++++++++++---------------------------
1 file changed, 36 insertions(+), 51 deletions(-)
diff --git a/contrib/libeufin-dbconfig b/contrib/libeufin-dbconfig
index 4e6134e9..2c0daeb1 100755
--- a/contrib/libeufin-dbconfig
+++ b/contrib/libeufin-dbconfig
@@ -22,8 +22,6 @@ set -eu
# 1 is true, 0 is false
RESET_DB=0
SKIP_DBINIT=0
-HAS_NEXUS=0
-HAS_BANK=0
NEXUS_DBUSER="libeufin-nexus"
BANK_DBUSER="libeufin-bank"
DBNAME="libeufin"
@@ -35,11 +33,11 @@ while getopts ':hn:b:d:rsu:v:' OPTION; do
case "$OPTION" in
h)
echo 'Supported options:'
- echo " -n FILENAME -- write Nexus configuration to
FILENAME (default: $NEXUS_CFGFILE)"
- echo " -b FILENAME -- write Bank configuration to
FILENAME (default: $BANK_CFGFILE)"
- echo " -d NAME -- user NAME for database name
(default: $DBNAME)"
- echo " -r -- reset database (dangerous)"
- echo " -s -- skip database initialization"
+ echo " -n FILENAME -- write Nexus configuration to
FILENAME (default: $NEXUS_CFGFILE)"
+ echo " -b FILENAME -- write Bank configuration to FILENAME
(default: $BANK_CFGFILE)"
+ echo " -d NAME -- user NAME for database name
(default: $DBNAME)"
+ echo " -r -- reset database (dangerous)"
+ echo " -s -- skip database initialization"
echo " -u NEXUS_USER -- libeufin-nexus to be run by USER
(default: $NEXUS_DBUSER)"
echo " -v BANK_USER -- libeufin-bank to be run by USER
(default: $BANK_DBUSER)"
exit 0
@@ -67,7 +65,8 @@ while getopts ':hn:b:d:rsu:v:' OPTION; do
;;
?)
- exit_fail "Unrecognized command line option"
+ echo "Unrecognized command line option"
+ exit 1
;;
esac
done
@@ -104,11 +103,11 @@ fi
# Before running the tools, check if the OS users exist.
if ! id "$NEXUS_DBUSER" > /dev/null
then
- echo "Could not find '$NEXUS_DBUSER' user. Assuming the bank user exists"
+ echo "Could not find '$NEXUS_DBUSER' user. Cannot continue"
fi
-if ! id "$BANK_DBUSER" > /dev/null && test "$HAS_NEXUS" = 0
+if ! id "$BANK_DBUSER" > /dev/null
then
- echo "Could not find '$BANK_DBUSER' user and $NEXUS_USER neither. Cannot
continue"
+ echo "Could not find '$BANK_DBUSER' user. Cannot continue"
exit 1
fi
@@ -162,7 +161,7 @@ fi
if [ -f "$BANK_CFGFILE" ]
then
echo "Adding database configuration to $BANK_CFGFILE." 1>&2
- echo -e "[nexus-postgres]\nCONFIG=postgres:///$DBNAME\n" >> "$BANK_CFGFILE"
+ echo -e "[libeufin-bankdb-postgres]\nCONFIG=postgres:///$DBNAME\n" >>
"$BANK_CFGFILE"
else
echo "Configuration $BANK_CFGFILE does not yet exist, creating it." 1>&2
mkdir -p "$(dirname "$BANK_CFGFILE")"
@@ -171,53 +170,39 @@ else
chmod 460 "$BANK_CFGFILE"
fi
-
-# Init Nexus first, because the bank needs its schema to provide
-# the conversion service.
-
if [ 1 = "$SKIP_DBINIT" ]
then
echo "Database configuration finished skipping dbinit." 1>&2
exit 0
fi
-if [ 0 = "$HAS_NEXUS" ]
+echo "Initializing database $DBNAME." 1>&2
+
+sudo -u "$NEXUS_DBUSER" "$NEXUS_DBINIT" -c "$NEXUS_CFGFILE"
+if ! echo "GRANT ALL PRIVILEGES ON DATABASE $DBNAME TO \"$BANK_DBUSER\"" \
+ | sudo -i -u postgres psql "$DBNAME"
then
- echo "Initializing database $DBNAME." 1>&2
- sudo -u "$NEXUS_DBUSER" "$NEXUS_DBINIT" -c "$NEXUS_CFGFILE"
- # Bank needs USAGE right on schema _v and libeufin_nexus
- if [ 0 = "$HAS_BANK" ]
- then
- if ! echo "GRANT ALL PRIVILEGES ON DATABASE $DBNAME TO
\"$BANK_DBUSER\"" \
- | sudo -i -u postgres psql "$DBNAME"
- then
- echo "Failed to grant access to database '$DBNAME' to
'$BANK_DBUSER'." 1>&2
- exit 1
- fi
- if ! echo "GRANT USAGE ON SCHEMA _v TO \"$BANK_DBUSER\"" \
- | sudo -i -u postgres psql "$DBNAME"
- then
- echo "Failed to grant usage privilege on schema '_v' to
'$BANK_DBUSER'." 1>&2
- exit 1
- fi
- if ! echo "GRANT USAGE ON SCHEMA libeufin_nexus TO \"$BANK_DBUSER\"" \
- | sudo -i -u postgres psql "$DBNAME"
- then
- echo "Failed to grant usage privilege on schema 'libeufin_nexus' to
'$BANK_DBUSER'." 1>&2
- exit 1
- fi
- if ! echo "GRANT SELECT, INSERT, TRIGGER ON ALL TABLES IN SCHEMA
libeufin_nexus TO \"$BANK_DBUSER\""
- | sudo -i -u postgres psql "$DBNAME"
- then
- echo "Failed to grant SELECT, INSERT, TRIGGER privileges on schema
'libeufin_nexus' to '$BANK_DBUSER'." 1>&2
- exit 1
- fi
- fi
+ echo "Failed to grant access to database '$DBNAME' to '$BANK_DBUSER'." 1>&2
+ exit 1
fi
-
-if [ 0 = "$HAS_BANK" ]
+if ! echo "GRANT USAGE ON SCHEMA _v TO \"$BANK_DBUSER\"" \
+ | sudo -i -u postgres psql "$DBNAME"
+then
+ echo "Failed to grant usage privilege on schema '_v' to
'$BANK_DBUSER'." 1>&2
+ exit 1
+fi
+if ! echo "GRANT USAGE ON SCHEMA libeufin_nexus TO \"$BANK_DBUSER\"" \
+ | sudo -i -u postgres psql "$DBNAME"
then
- sudo -u "$BANK_DBUSER" "$BANK_DBINIT" -c "$BANK_CFGFILE"
+ echo "Failed to grant usage privilege on schema 'libeufin_nexus' to
'$BANK_DBUSER'." 1>&2
+ exit 1
fi
+if ! echo "GRANT SELECT, INSERT, TRIGGER ON ALL TABLES IN SCHEMA
libeufin_nexus TO \"$BANK_DBUSER\""
+ | sudo -i -u postgres psql "$DBNAME"
+then
+ echo "Failed to grant SELECT, INSERT, TRIGGER privileges on schema
'libeufin_nexus' to '$BANK_DBUSER'." 1>&2
+ exit 1
+fi
+
+sudo -u "$BANK_DBUSER" "$BANK_DBINIT" -c "$BANK_CFGFILE"
echo "Database configuration finished." 1>&2
-exit 0
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [libeufin] branch master updated: dbconfig: expect both users to exist,
gnunet <=