File: smoke-pgsql

package info (click to toggle)
pdns 5.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 10,824 kB
  • sloc: cpp: 101,240; sh: 5,616; makefile: 2,318; sql: 860; ansic: 675; python: 635; yacc: 245; perl: 161; lex: 131
file content (74 lines) | stat: -rwxr-xr-x 2,385 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
71
72
73
74
#!/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"

lsipc
service pdns restart || (journalctl _SYSTEMD_UNIT=pdns.service -n 10 --no-pager || true)
if journalctl _SYSTEMD_UNIT=pdns.service -n 30 | grep 'Failed to set up IPC namespacing'; then
  echo "Assuming autopkgtest/LXC isolation bug, aborting"
  exit 77
fi

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

sdig 127.0.0.1 53 smoke.$ZONE A 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