summaryrefslogtreecommitdiff
path: root/src/auditor/generate-auditor-basedb.sh
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2019-09-06 02:45:30 +0200
committerChristian Grothoff <christian@grothoff.org>2019-09-06 02:45:57 +0200
commit58c3e4d98ffd4c6ad07fadaf0245355dae7eb6a9 (patch)
treeec96b206c895f757b973723d982c7cd924f5a6bc /src/auditor/generate-auditor-basedb.sh
parentb93fbac1cc9d214c8eaf61d0c5fa9a6d6e3af5aa (diff)
downloadexchange-58c3e4d98ffd4c6ad07fadaf0245355dae7eb6a9.tar.gz
exchange-58c3e4d98ffd4c6ad07fadaf0245355dae7eb6a9.tar.bz2
exchange-58c3e4d98ffd4c6ad07fadaf0245355dae7eb6a9.zip
move basedb generation to auditor/
Diffstat (limited to 'src/auditor/generate-auditor-basedb.sh')
-rwxr-xr-xsrc/auditor/generate-auditor-basedb.sh95
1 files changed, 95 insertions, 0 deletions
diff --git a/src/auditor/generate-auditor-basedb.sh b/src/auditor/generate-auditor-basedb.sh
new file mode 100755
index 00000000..fafb6f03
--- /dev/null
+++ b/src/auditor/generate-auditor-basedb.sh
@@ -0,0 +1,95 @@
+#!/bin/bash
+# Script to generate the basic database for auditor
+# testing from a 'correct' interaction between exchange,
+# wallet and merchant. Creates 'auditor-basedb.sql'.
+#
+# Currently must be run online as it interacts with
+# bank.test.taler.net; also requires the wallet CLI
+# to be installed and in the path. Furthermore, the
+# user running this script must be Postgres superuser
+# and be allowed to create/drop databases.
+#
+set -eu
+
+# Configuation file will be edited, so we create one
+# from the template.
+CONF=generate-auditor-basedb-prod.conf
+cp generate-auditor-basedb-template.conf $CONF
+
+# Name of the Postgres database we will use for the script.
+# Will be dropped, do NOT use anything that might be used
+# elsewhere
+TARGET_DB=taler-auditor-basedb
+
+# Clean up
+DATA_DIR=`taler-config -f -c $CONF -s PATHS -o TALER_HOME`
+rm -rf $DATA_DIR || true
+
+# reset database
+dropdb $TARGET_DB >/dev/null 2>/dev/null || true
+createdb $TARGET_DB
+
+# obtain key configuration data
+MASTER_PRIV_FILE=`taler-config -f -c $CONF -s EXCHANGE -o MASTER_PRIV_FILE`
+MASTER_PRIV_DIR=`dirname $MASTER_PRIV_FILE`
+mkdir -p $MASTER_PRIV_DIR
+gnunet-ecc -g1 $MASTER_PRIV_FILE > /dev/null
+MASTER_PUB=`gnunet-ecc -p $MASTER_PRIV_FILE`
+EXCHANGE_URL=`taler-config -c $CONF -s EXCHANGE -o BASE_URL`
+MERCHANT_PORT=`taler-config -c $CONF -s MERCHANT -o PORT`
+MERCHANT_URL=http://localhost:${MERCHANT_PORT}/
+BANK_PORT=`taler-config -c $CONF -s BANK -o HTTP_PORT`
+BANK_URL=http://localhost:${BANK_PORT}/
+AUDITOR_URL=http://localhost:8888/
+
+# patch configuration
+taler-config -c $CONF -s EXCHANGE -o MASTER_PUBLIC_KEY -V $MASTER_PUB
+taler-config -c $CONF -s EXCHANGE-DEFAULT -o MASTER_KEY -V $MASTER_PUB
+taler-config -c $CONF -s exchangedb-postgres -o CONFIG -V postgres:///$TARGET_DB
+taler-config -c $CONF -s auditordb-postgres -o CONFIG -V postgres:///$TARGET_DB
+taler-config -c $CONF -s merchantdb-postgres -o CONFIG -V postgres:///$TARGET_DB
+taler-config -c $CONF -s bank -o database -V postgres:///$TARGET_DB
+
+# setup exchange
+echo "Setting up exchange"
+taler-exchange-dbinit -c $CONF
+taler-exchange-wire -c $CONF 2> taler-exchange-wire.log
+taler-exchange-keyup -c $CONF -o e2a.dat 2> taler-exchange-keyup.log
+
+# setup auditor
+echo "Setting up auditor"
+taler-auditor-dbinit -c $CONF
+taler-auditor-exchange -c $CONF -m $MASTER_PUB -u $EXCHANGE_URL
+taler-auditor-sign -c $CONF -u $AUDITOR_URL -r e2a.dat -o a2e.dat -m $MASTER_PUB
+
+# Launch services
+echo "Launching services"
+taler-bank-manage -c $CONF serve-http &
+taler-exchange-httpd -c $CONF 2> taler-exchange-httpd.log &
+taler-merchant-httpd -c $CONF 2> taler-merchant-httpd.log &
+taler-exchange-wirewatch -c $CONF 2> taler-exchange-wirewatch.log &
+
+sleep 10
+
+# run wallet CLI
+echo "Running wallet"
+taler-wallet-cli integrationtest -e $EXCHANGE_URL -m $MERCHANT_URL -b $BANK_URL
+
+echo "Shutting down services"
+kill `jobs -p`
+
+# Dump database
+echo "Dumping database"
+pg_dump -O $TARGET_DB | sed -e '/AS integer/d' > auditor-basedb.sql
+
+echo $MASTER_PUB > auditor-basedb.mpub
+
+WIRE_FEE_DIR=`taler-config -c $CONF -f -s exchangedb -o WIREFEE_BASE_DIR`
+cp $WIRE_FEE_DIR/x-taler-bank.fee auditor-basedb.fees
+
+# clean up
+echo "Final clean up"
+dropdb $TARGET_DB
+rm -f e2a.dat a2e.dat
+rm -rf $DATA_DIR || true
+rm $CONF