File: smoke-pgsql

package info (click to toggle)
pdns 4.7.3-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 9,636 kB
  • sloc: cpp: 93,475; sh: 5,408; makefile: 2,232; sql: 860; ruby: 598; yacc: 228; lex: 130; ansic: 93; perl: 48; python: 4
file content (70 lines) | stat: -rwxr-xr-x 2,203 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/bin/bash
exec 2>&1
set -ex

PGVERSION=$(basename $(find /etc/postgresql -maxdepth 1 -mindepth 1 -type d -print))
# try manually controlling postgres daemon, as in the testbed we probably do
# not have a working init/service manager.
service postgresql stop || true
trap "pg_ctlcluster --skip-systemctl-redirect $PGVERSION main stop" EXIT TERM INT
pg_ctlcluster --skip-systemctl-redirect $PGVERSION main stop || true
pg_ctlcluster --skip-systemctl-redirect $PGVERSION main start

DBNAME=pdns
DBHOST=localhost
DBUSER=pdns
DBPASS=password
ZONE=pgsql.example.org

runuser -u postgres -- psql postgres -c "CREATE ROLE $DBUSER WITH LOGIN PASSWORD '$DBPASS';"
runuser -u postgres -- createdb --echo -O $DBUSER $DBNAME

runuser -u pdns -- psql $DBNAME < /usr/share/pdns-backend-pgsql/schema/schema.pgsql.sql

# cleanup possible leftovers from other tests
find /etc/powerdns/pdns.d/ -type f -delete

# This is what the pdns-backend-pgsql.README.Debian advises users to do.
cat /usr/share/doc/pdns-backend-pgsql/examples/gpgsql.conf | \
sed -e '
    s/_DBSERVER_/127.0.0.1/;
    s/_DBPORT_/5432/;
    s/_DBNAME_/'$DBNAME'/;
    s/_DBUSER_/'$DBUSER'/;
    s/_DBPASS_/'$DBPASS'/;
' > /etc/powerdns/pdns.d/gpgsql.conf
chmod 0640 /etc/powerdns/pdns.d/gpgsql.conf
chgrp pdns /etc/powerdns/pdns.d/gpgsql.conf

#####################################################################
cat  /etc/powerdns/pdns.d/gpgsql.conf

cat <<EOF >/etc/powerdns/$ZONE
$ZONE.           172800  IN      SOA     ns1.example.org. dns.example.org. 1 10800 3600 604800 3600
$ZONE.           172800  IN      NS      ns1.example.org.
smoke.$ZONE.     172800  IN      A       127.0.0.222
EOF

zone2sql --gpgsql --zone-name=$ZONE --zone=/etc/powerdns/$ZONE | \
    PGPASSWORD="$DBPASS" psql -h "$DBHOST" -U "$DBUSER" "$DBNAME"

service pdns restart
journalctl _SYSTEMD_UNIT=pdns.service -n 10 --no-pager || true

TMPFILE=$(mktemp)
cleanup() {
  rm -f "$TMPFILE"
  journalctl _SYSTEMD_UNIT=pdns.service -n 100 --no-pager || true
  service pdns stop
}
trap cleanup EXIT

dig @127.0.0.1 smoke.$ZONE 2>&1 | tee "$TMPFILE"

if grep -c '127\.0\.0\.222' "$TMPFILE"; then
    echo success
else
    echo smoke.$ZONE could not be resolved
    exit 1
fi