-wip
This commit is contained in:
parent
230cfa4f93
commit
3fa9f3bb12
@ -70,14 +70,12 @@ export WALLET_DB=${BASEDB:-"wallet"}.wdb
|
||||
|
||||
# delete existing wallet database
|
||||
rm -f $WALLET_DB
|
||||
# delete libeufin database
|
||||
rm -f $TARGET_DB
|
||||
|
||||
|
||||
# Configuration file will be edited, so we create one
|
||||
# from the template.
|
||||
CONF_ONCE=$1.conf
|
||||
cp generate-auditor-basedb.conf $CONF_ONCE
|
||||
export CONF=$1.conf
|
||||
cp generate-auditor-basedb.conf $CONF
|
||||
echo "Created configuration at ${CONF}"
|
||||
|
||||
echo -n "Testing for libeufin"
|
||||
libeufin-cli --help >/dev/null </dev/null || exit_skip " MISSING"
|
||||
@ -91,7 +89,7 @@ echo " FOUND"
|
||||
|
||||
# Clean up
|
||||
|
||||
DATA_DIR=`taler-config -f -c $CONF_ONCE -s PATHS -o TALER_HOME`
|
||||
DATA_DIR=`taler-config -f -c $CONF -s PATHS -o TALER_HOME`
|
||||
|
||||
# reset database
|
||||
dropdb $TARGET_DB >/dev/null 2>/dev/null || true
|
||||
@ -100,62 +98,62 @@ createdb $TARGET_DB || exit_skip "Could not create database $TARGET_DB"
|
||||
# obtain key configuration data
|
||||
MASTER_PRIV_FILE=$1.mpriv
|
||||
MASTER_PRIV_DIR=`dirname $MASTER_PRIV_FILE`
|
||||
taler-config -f -c ${CONF_ONCE} -s exchange-offline -o MASTER_PRIV_FILE -V ${MASTER_PRIV_FILE}
|
||||
taler-config -f -c ${CONF} -s exchange-offline -o MASTER_PRIV_FILE -V ${MASTER_PRIV_FILE}
|
||||
rm -f "${MASTER_PRIV_FILE}"
|
||||
mkdir -p $MASTER_PRIV_DIR
|
||||
gnunet-ecc -l/dev/null -g1 $MASTER_PRIV_FILE > /dev/null
|
||||
MASTER_PUB=`gnunet-ecc -p $MASTER_PRIV_FILE`
|
||||
MERCHANT_PORT=`taler-config -c $CONF_ONCE -s MERCHANT -o PORT`
|
||||
MERCHANT_URL=http://localhost:${MERCHANT_PORT}/
|
||||
AUDITOR_URL=http://localhost:8083/
|
||||
export MASTER_PUB=`gnunet-ecc -p $MASTER_PRIV_FILE`
|
||||
export EXCHANGE_URL=`taler-config -c $CONF -s EXCHANGE -o BASE_URL`
|
||||
MERCHANT_PORT=`taler-config -c $CONF -s MERCHANT -o PORT`
|
||||
export MERCHANT_URL=http://localhost:${MERCHANT_PORT}/
|
||||
BANK_PORT=`taler-config -c $CONF -s BANK -o HTTP_PORT`
|
||||
BANK_URL="http://localhost:1${BANK_PORT}/demobanks/default"
|
||||
export AUDITOR_URL=http://localhost:8083/
|
||||
AUDITOR_PRIV_FILE=$1.apriv
|
||||
AUDITOR_PRIV_DIR=`dirname $AUDITOR_PRIV_FILE`
|
||||
taler-config -f -c ${CONF_ONCE} -s auditor -o AUDITOR_PRIV_FILE -V ${AUDITOR_PRIV_FILE}
|
||||
taler-config -f -c ${CONF} -s auditor -o AUDITOR_PRIV_FILE -V ${AUDITOR_PRIV_FILE}
|
||||
mkdir -p $AUDITOR_PRIV_DIR
|
||||
gnunet-ecc -l/dev/null -g1 $AUDITOR_PRIV_FILE > /dev/null
|
||||
AUDITOR_PUB=`gnunet-ecc -p $AUDITOR_PRIV_FILE`
|
||||
EXCHANGE_URL=`taler-config -c $CONF_ONCE -s EXCHANGE -o BASE_URL`
|
||||
BANK_PORT=`taler-config -c $CONF_ONCE -s BANK -o HTTP_PORT`
|
||||
BANK_URL="http://localhost:1${BANK_PORT}/demobanks/default"
|
||||
|
||||
echo "MASTER PUB is ${MASTER_PUB} using file ${MASTER_PRIV_FILE}"
|
||||
echo "AUDITOR PUB is ${AUDITOR_PUB} using file ${AUDITOR_PRIV_FILE}"
|
||||
|
||||
# patch configuration
|
||||
taler-config -c $CONF_ONCE -s exchange -o MASTER_PUBLIC_KEY -V $MASTER_PUB
|
||||
taler-config -c $CONF_ONCE -s auditor -o PUBLIC_KEY -V $AUDITOR_PUB
|
||||
taler-config -c $CONF_ONCE -s merchant-exchange-default -o MASTER_KEY -V $MASTER_PUB
|
||||
taler-config -c $CONF -s exchange -o MASTER_PUBLIC_KEY -V $MASTER_PUB
|
||||
taler-config -c $CONF -s auditor -o PUBLIC_KEY -V $AUDITOR_PUB
|
||||
taler-config -c $CONF -s merchant-exchange-default -o MASTER_KEY -V $MASTER_PUB
|
||||
|
||||
taler-config -c $CONF_ONCE -s exchangedb-postgres -o CONFIG -V postgres:///$TARGET_DB
|
||||
taler-config -c $CONF_ONCE -s auditordb-postgres -o CONFIG -V postgres:///$TARGET_DB
|
||||
taler-config -c $CONF_ONCE -s merchantdb-postgres -o CONFIG -V postgres:///$TARGET_DB
|
||||
taler-config -c $CONF_ONCE -s bank -o database -V postgres:///$TARGET_DB
|
||||
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_ONCE
|
||||
taler-exchange-dbinit -c $CONF
|
||||
|
||||
echo "Setting up merchant"
|
||||
taler-merchant-dbinit -c $CONF_ONCE
|
||||
taler-merchant-dbinit -c $CONF
|
||||
|
||||
# setup auditor
|
||||
echo "Setting up auditor"
|
||||
taler-auditor-dbinit -c $CONF_ONCE || exit_skip "Failed to initialize auditor DB"
|
||||
taler-auditor-exchange -c $CONF_ONCE -m $MASTER_PUB -u $EXCHANGE_URL || exit_skip "Failed to add exchange to auditor"
|
||||
taler-auditor-dbinit -c $CONF || exit_skip "Failed to initialize auditor DB"
|
||||
taler-auditor-exchange -c $CONF -m $MASTER_PUB -u $EXCHANGE_URL || exit_skip "Failed to add exchange to auditor"
|
||||
|
||||
# Launch services
|
||||
echo "Launching services (pre audit DB: $TARGET_DB)"
|
||||
taler-bank-manage-testing $BANK_PORT $TARGET_DB $EXCHANGE_URL $CONF_ONCE
|
||||
taler-bank-manage-testing $BANK_PORT $TARGET_DB $EXCHANGE_URL $CONF
|
||||
TFN=`which taler-exchange-httpd`
|
||||
TBINPFX=`dirname $TFN`
|
||||
TLIBEXEC=${TBINPFX}/../lib/taler/libexec/
|
||||
taler-exchange-secmod-eddsa -c $CONF_ONCE 2> taler-exchange-secmod-eddsa.log &
|
||||
taler-exchange-secmod-rsa -c $CONF_ONCE 2> taler-exchange-secmod-rsa.log &
|
||||
taler-exchange-secmod-cs -c $CONF_ONCE 2> taler-exchange-secmod-cs.log &
|
||||
taler-exchange-httpd -c $CONF_ONCE 2> taler-exchange-httpd.log &
|
||||
taler-merchant-httpd -c $CONF_ONCE -L INFO 2> taler-merchant-httpd.log &
|
||||
taler-exchange-wirewatch -c $CONF_ONCE 2> taler-exchange-wirewatch.log &
|
||||
taler-auditor-httpd -L INFO -c $CONF_ONCE 2> taler-auditor-httpd.log &
|
||||
taler-exchange-secmod-eddsa -c $CONF 2> taler-exchange-secmod-eddsa.log &
|
||||
taler-exchange-secmod-rsa -c $CONF 2> taler-exchange-secmod-rsa.log &
|
||||
taler-exchange-secmod-cs -c $CONF 2> taler-exchange-secmod-cs.log &
|
||||
taler-exchange-httpd -c $CONF 2> taler-exchange-httpd.log &
|
||||
taler-merchant-httpd -c $CONF -L INFO 2> taler-merchant-httpd.log &
|
||||
taler-exchange-wirewatch -c $CONF 2> taler-exchange-wirewatch.log &
|
||||
taler-auditor-httpd -L INFO -c $CONF 2> taler-auditor-httpd.log &
|
||||
|
||||
# Wait for all bank to be available (usually the slowest)
|
||||
for n in `seq 1 50`
|
||||
@ -195,9 +193,9 @@ then
|
||||
exit_skip "Failed to launch services"
|
||||
fi
|
||||
echo -n "Setting up keys"
|
||||
taler-exchange-offline -c $CONF_ONCE \
|
||||
taler-exchange-offline -c $CONF \
|
||||
download sign \
|
||||
enable-account `taler-config -c $CONF_ONCE -s exchange-account-1 -o PAYTO_URI` \
|
||||
enable-account `taler-config -c $CONF -s exchange-account-1 -o PAYTO_URI` \
|
||||
enable-auditor $AUDITOR_PUB $AUDITOR_URL "TESTKUDOS Auditor" \
|
||||
wire-fee now iban TESTKUDOS:0.07 TESTKUDOS:0.01 TESTKUDOS:0.01 \
|
||||
global-fee now TESTKUDOS:0.01 TESTKUDOS:0.01 TESTKUDOS:0.01 TESTKUDOS:0.01 1h 1h 1year 5 \
|
||||
@ -222,7 +220,7 @@ fi
|
||||
echo " DONE"
|
||||
echo -n "Adding auditor signatures ..."
|
||||
|
||||
taler-auditor-offline -c $CONF_ONCE \
|
||||
taler-auditor-offline -c $CONF \
|
||||
download sign upload &> taler-auditor-offline.log
|
||||
|
||||
echo " DONE"
|
||||
|
@ -59,7 +59,7 @@ rm -f $WALLET_DB
|
||||
# from the template.
|
||||
export CONF=${BASEDB}.conf
|
||||
cp generate-auditor-basedb.conf $CONF
|
||||
taler-config -c ${CONF} -s exchange-offline -o MASTER_PRIV_FILE -V ${BASEDB}.mpriv
|
||||
echo "Created configuration at ${CONF}"
|
||||
|
||||
echo -n "Testing for libeufin(-cli)"
|
||||
libeufin-cli --help >/dev/null </dev/null || exit_skip " MISSING"
|
||||
@ -81,9 +81,9 @@ createdb $TARGET_DB || exit_skip "Could not create database $TARGET_DB"
|
||||
rm $TARGET_DB >/dev/null 2>/dev/null || true # libeufin
|
||||
|
||||
# obtain key configuration data
|
||||
MASTER_PRIV_FILE=${TARGET_DB}.priv
|
||||
taler-config -f -c $CONF -s exchange-offline -o MASTER_PRIV_FILE -V ${MASTER_PRIV_FILE}
|
||||
MASTER_PRIV_FILE=$1.mpriv
|
||||
MASTER_PRIV_DIR=`dirname $MASTER_PRIV_FILE`
|
||||
taler-config -f -c $CONF -s exchange-offline -o MASTER_PRIV_FILE -V ${MASTER_PRIV_FILE}
|
||||
mkdir -p $MASTER_PRIV_DIR
|
||||
rm -f "${MASTER_PRIV_FILE}"
|
||||
gnunet-ecc -g1 $MASTER_PRIV_FILE > /dev/null
|
||||
@ -94,14 +94,20 @@ export MERCHANT_URL=http://localhost:${MERCHANT_PORT}/
|
||||
BANK_PORT=`taler-config -c $CONF -s BANK -o HTTP_PORT`
|
||||
export BANK_URL=http://localhost:1${BANK_PORT}/demobanks/default
|
||||
export AUDITOR_URL=http://localhost:8083/
|
||||
AUDITOR_PRIV_FILE=`taler-config -f -c $CONF -s AUDITOR -o AUDITOR_PRIV_FILE`
|
||||
AUDITOR_PRIV_FILE=$1.apriv
|
||||
AUDITOR_PRIV_DIR=`dirname $AUDITOR_PRIV_FILE`
|
||||
taler-config -f -c ${CONF} -s auditor -o AUDITOR_PRIV_FILE -V ${AUDITOR_PRIV_FILE}
|
||||
mkdir -p $AUDITOR_PRIV_DIR
|
||||
gnunet-ecc -g1 $AUDITOR_PRIV_FILE > /dev/null
|
||||
gnunet-ecc -l /dev/null -g1 $AUDITOR_PRIV_FILE > /dev/null
|
||||
AUDITOR_PUB=`gnunet-ecc -p $AUDITOR_PRIV_FILE`
|
||||
|
||||
echo "MASTER PUB is ${MASTER_PUB} using file ${MASTER_PRIV_FILE}"
|
||||
echo "AUDITOR PUB is ${AUDITOR_PUB} using file ${AUDITOR_PRIV_FILE}"
|
||||
|
||||
|
||||
# patch configuration
|
||||
taler-config -c $CONF -s exchange -o MASTER_PUBLIC_KEY -V $MASTER_PUB
|
||||
taler-config -c $CONF -s auditor -o PUBLIC_KEY -V $AUDITOR_PUB
|
||||
taler-config -c $CONF -s merchant-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
|
||||
@ -419,12 +425,9 @@ date +%s > ${BASEDB}.age
|
||||
echo "Final clean up"
|
||||
dropdb $TARGET_DB
|
||||
rm $TARGET_DB # libeufin
|
||||
rm -rf $DATA_DIR || true
|
||||
rm -f $CONF
|
||||
rm -r $TMP_DIR
|
||||
|
||||
echo "====================================="
|
||||
echo " Finished revocation DB generation "
|
||||
echo " Finished generation of $BASEDB "
|
||||
echo "====================================="
|
||||
|
||||
exit 0
|
||||
|
@ -67,13 +67,20 @@ function stop_libeufin()
|
||||
if test -f libeufin-sandbox.pid
|
||||
then
|
||||
echo "Killing libeufin sandbox"
|
||||
kill `cat libeufin-sandbox.pid 2> /dev/null` &> /dev/null || true
|
||||
PID=`cat libeufin-sandbox.pid 2> /dev/null`
|
||||
kill $PID || true
|
||||
wait $PID
|
||||
rm libeufin-sandbox.pid
|
||||
fi
|
||||
if test -f libeufin-nexus.pid
|
||||
then
|
||||
echo "Killing libeufin nexus"
|
||||
kill `cat libeufin-nexus.pid 2> /dev/null` &> /dev/null || true
|
||||
PID=`cat libeufin-nexus.pid 2> /dev/null`
|
||||
kill $PID || true
|
||||
wait $PID
|
||||
rm libeufin-nexus.pid
|
||||
fi
|
||||
echo "killing libeufin DONE"
|
||||
}
|
||||
|
||||
# Cleanup exchange and libeufin between runs.
|
||||
@ -84,12 +91,10 @@ function cleanup()
|
||||
echo -n "Stopping exchange $EPID..."
|
||||
kill -TERM $EPID
|
||||
wait $EPID
|
||||
echo " DONE"
|
||||
echo "DONE"
|
||||
unset EPID
|
||||
fi
|
||||
|
||||
stop_libeufin
|
||||
echo DONE
|
||||
}
|
||||
|
||||
# Cleanup to run whenever we exit
|
||||
@ -324,7 +329,8 @@ function full_reload()
|
||||
createdb -T template0 $DB || exit_skip "could not create database $DB (at $PGHOST)"
|
||||
# Import pre-generated database, -q(ietly) using single (-1) transaction
|
||||
psql -Aqt $DB -q -1 -f ${BASEDB}.sql > /dev/null || exit_skip "Failed to load database $DB from ${BASEDB}.sql"
|
||||
echo "Loading libeufin basedb: ${BASEDB}-libeufin.sql"
|
||||
echo "DONE"
|
||||
echo -n "Loading libeufin basedb: ${BASEDB}-libeufin.sql"
|
||||
sqlite3 $DB.sqlite3 < ${BASEDB}-libeufin.sql || exit_skip "Failed to load libEufin database"
|
||||
echo "DONE"
|
||||
}
|
||||
@ -2037,7 +2043,6 @@ echo "Testing for pdflatex"
|
||||
which pdflatex > /dev/null </dev/null || exit_skip "pdflatex required"
|
||||
echo "Testing for taler-wallet-cli"
|
||||
taler-wallet-cli -h >/dev/null </dev/null 2>/dev/null || exit_skip "taler-wallet-cli required"
|
||||
MYDIR=`mktemp -d /tmp/taler-auditor-basedbXXXXXX`
|
||||
|
||||
|
||||
echo -n "Testing for Postgres"
|
||||
@ -2072,11 +2077,11 @@ echo " DONE"
|
||||
PGHOST="$TMPDIR/sockets"
|
||||
export PGHOST
|
||||
|
||||
|
||||
MYDIR=`mktemp -d /tmp/taler-auditor-basedbXXXXXX`
|
||||
echo "Generating fresh database at $MYDIR"
|
||||
if faketime -f '-1 d' ./generate-auditor-basedb.sh $MYDIR/auditor-basedb
|
||||
if faketime -f '-1 d' ./generate-auditor-basedb.sh $MYDIR/$DB
|
||||
then
|
||||
check_with_database $MYDIR/auditor-basedb
|
||||
check_with_database $MYDIR/$DB
|
||||
if test x$fail != x0
|
||||
then
|
||||
exit $fail
|
||||
|
@ -54,33 +54,63 @@ function exit_fail() {
|
||||
exit 1
|
||||
}
|
||||
|
||||
function stop_libeufin()
|
||||
{
|
||||
echo "killing libeufin..."
|
||||
if test -f libeufin-sandbox.pid
|
||||
then
|
||||
echo "Killing libeufin sandbox"
|
||||
PID=`cat libeufin-sandbox.pid 2> /dev/null`
|
||||
kill $PID || true
|
||||
wait $PID
|
||||
rm libeufin-sandbox.pid
|
||||
fi
|
||||
if test -f libeufin-nexus.pid
|
||||
then
|
||||
echo "Killing libeufin nexus"
|
||||
PID=`cat libeufin-nexus.pid 2> /dev/null`
|
||||
kill $PID || true
|
||||
wait $PID
|
||||
rm libeufin-nexus.pid
|
||||
fi
|
||||
echo "killing libeufin DONE"
|
||||
}
|
||||
|
||||
|
||||
# Cleanup to run whenever we exit
|
||||
function cleanup()
|
||||
{
|
||||
if test ! -z ${EPID:-}
|
||||
then
|
||||
echo -n "Stopping exchange $EPID..."
|
||||
kill -TERM $EPID
|
||||
wait $EPID
|
||||
echo " DONE"
|
||||
unset EPID
|
||||
fi
|
||||
stop_libeufin
|
||||
}
|
||||
|
||||
# Cleanup to run whenever we exit
|
||||
function exit_cleanup()
|
||||
{
|
||||
echo "Running exit-cleanup"
|
||||
if test ! -z ${POSTGRES_PATH:-}
|
||||
then
|
||||
echo "Stopping Postgres at ${POSTGRES_PATH}"
|
||||
${POSTGRES_PATH}/pg_ctl -D $TMPDIR -l /dev/null stop &> /dev/null || true
|
||||
fi
|
||||
cleanup
|
||||
for n in `jobs -p`
|
||||
do
|
||||
kill $n 2> /dev/null || true
|
||||
done
|
||||
wait
|
||||
if test -f libeufin-sandbox.pid
|
||||
then
|
||||
echo "Killing libeufin sandbox"
|
||||
kill `cat libeufin-sandbox.pid 2> /dev/null` &> /dev/null || true
|
||||
fi
|
||||
if test -f libeufin-nexus.pid
|
||||
then
|
||||
echo "Killing libeufin nexus"
|
||||
kill `cat libeufin-nexus.pid 2> /dev/null` &> /dev/null || true
|
||||
fi
|
||||
rm -f libeufin-sandbox.pid libeufin-nexus.pid
|
||||
echo "DONE"
|
||||
}
|
||||
|
||||
# Install cleanup handler (except for kill -9)
|
||||
trap cleanup EXIT
|
||||
trap exit_cleanup EXIT
|
||||
|
||||
# Downloads new transactions from the bank.
|
||||
function nexus_fetch_transactions () {
|
||||
@ -214,10 +244,8 @@ function audit_only () {
|
||||
|
||||
# Cleanup to run after the auditor
|
||||
function post_audit () {
|
||||
echo -n "Cleanup ..."
|
||||
cleanup
|
||||
echo " DONE"
|
||||
echo -n "TeXing ."
|
||||
echo -n "TeXing ."
|
||||
taler-helper-auditor-render.py test-audit-aggregation.json test-audit-coins.json test-audit-deposits.json test-audit-reserves.json test-audit-wire.json < ../../contrib/auditor-report.tex.j2 > test-report.tex || exit_fail "Renderer failed"
|
||||
|
||||
echo -n "."
|
||||
@ -246,9 +274,11 @@ function full_reload()
|
||||
echo -n "Doing full reload of the database... "
|
||||
dropdb $DB 2> /dev/null || true
|
||||
rm -f $DB.sqlite3 || true # libeufin
|
||||
createdb -T template0 $DB || exit_skip "could not create database"
|
||||
createdb -T template0 $DB || exit_skip "could not create database $DB (at $PGHOST)"
|
||||
# Import pre-generated database, -q(ietly) using single (-1) transaction
|
||||
psql -Aqt $DB -q -1 -f ${BASEDB}.sql > /dev/null || exit_skip "Failed to load database"
|
||||
psql -Aqt $DB -q -1 -f ${BASEDB}.sql > /dev/null || exit_skip "Failed to load database $DB from ${BASEDB}.sql"
|
||||
echo "DONE"
|
||||
echo "Loading libeufin basedb: ${BASEDB}-libeufin.sql"
|
||||
sqlite3 $DB.sqlite3 < ${BASEDB}-libeufin.sql || exit_skip "Failed to load libEufin database"
|
||||
echo "DONE"
|
||||
# Exchange payto URI contains the (dynamically generated)
|
||||
@ -584,8 +614,9 @@ function check_with_database()
|
||||
# *************** Main logic starts here **************
|
||||
|
||||
# ####### Setup globals ######
|
||||
# Postgres database to use (must match revoke-basedb.conf)
|
||||
DB=taler-auditor-test
|
||||
# Postgres database to use
|
||||
DB=revoke-basedb
|
||||
|
||||
|
||||
# test required commands exist
|
||||
echo "Testing for jq"
|
||||
@ -633,9 +664,9 @@ export PGHOST
|
||||
|
||||
MYDIR=`mktemp -d /tmp/taler-auditor-basedbXXXXXX`
|
||||
echo "Generating fresh database at $MYDIR"
|
||||
if faketime -f '-1 d' ./generate-revoke-basedb.sh $MYDIR/revoke-basedb
|
||||
if faketime -f '-1 d' ./generate-revoke-basedb.sh $MYDIR/$DB
|
||||
then
|
||||
check_with_database $MYDIR/revoke-basedb
|
||||
check_with_database $MYDIR/$DB
|
||||
if test x$fail != x0
|
||||
then
|
||||
exit $fail
|
||||
|
Loading…
Reference in New Issue
Block a user