]> git.ipfire.org Git - thirdparty/pdns.git/blob - regression-tests/backends/lmdb-slave
Merge pull request #11431 from jroessler-ox/docs-kskzskroll-update
[thirdparty/pdns.git] / regression-tests / backends / lmdb-slave
1 context=${context}-presigned-lmdb
2 cat > pdns-lmdb2.conf << __EOF__
3 module-dir=./modules
4 launch=lmdb
5 lmdb-filename=./pdns2.lmdb
6 __EOF__
7
8 rm -f pdns2.lmdb*
9 zones=0
10 for zone in $(grep 'zone ' named.conf | cut -f2 -d\" | grep -v '^nztest.com$' | perl -e 'print reverse <STDIN>')
11 do
12 zones=$((zones+1))
13 if [ "$zone" = "example.com" ]; then
14 $PDNSUTIL --config-dir=. --config-name=lmdb2 create-secondary-zone $zone 127.0.0.1:$port
15 fi
16 if [ "$zone" = "test.com" ]; then
17 $PDNSUTIL --config-dir=. --config-name=lmdb2 create-secondary-zone $zone 127.0.0.1:$port
18 $PDNSUTIL --config-dir=. --config-name=lmdb2 set-catalog $zone other-catalog.invalid
19 $PDNSUTIL --config-dir=. --config-name=lmdb2 set-options-json $zone '{"consumer":{"coo":"catalog.invalid","unique":"42"}}'
20 fi
21 if [ "$zone" = "tsig.com" ]; then
22 $PDNSUTIL --config-dir=. --config-name=lmdb2 create-secondary-zone $zone 127.0.0.2:$port
23 $PDNSUTIL --config-dir=. --config-name=lmdb2 set-catalog $zone catalog.invalid
24 $PDNSUTIL --config-dir=. --config-name=lmdb2 set-options-json $zone "{\"consumer\":{\"unique\":\"$($SAXFR 127.0.0.1 $port catalog.invalid | grep $zone | grep PTR | cut -d'.' -f1)\"}}"
25 $PDNSUTIL --config-dir=. --config-name=lmdb2 import-tsig-key test $ALGORITHM $KEY
26 $PDNSUTIL --config-dir=. --config-name=lmdb2 activate-tsig-key tsig.com test secondary
27 fi
28 if [ "$zone" = "stest.com" ]; then
29 $PDNSUTIL --config-dir=. --config-name=lmdb2 create-secondary-zone $zone 127.0.0.1:$port
30 $PDNSUTIL --config-dir=. --config-name=lmdb2 set-catalog $zone other-catalog.invalid
31 $PDNSUTIL --config-dir=. --config-name=lmdb2 set-options-json $zone "{\"consumer\":{\"coo\":\"catalog.invalid\",\"unique\":\"$($SAXFR 127.0.0.1 $port catalog.invalid | grep $zone | grep PTR | cut -d'.' -f1)\"}}"
32 if [[ $skipreasons != *nolua* ]]; then
33 $PDNSUTIL --config-dir=. --config-name=lmdb2 set-meta stest.com AXFR-SOURCE 127.0.0.2
34 fi
35 fi
36 if [ "$zone" = "wtest.com" ]; then
37 $PDNSUTIL --config-dir=. --config-name=lmdb2 create-secondary-zone $zone 127.0.0.1:$port
38 $PDNSUTIL --config-dir=. --config-name=lmdb2 set-catalog $zone catalog.invalid
39 $PDNSUTIL --config-dir=. --config-name=lmdb2 set-options-json $zone '{"consumer":{"unique":"42"}}'
40 fi
41 if [ "$zone" = "." ]; then
42 $PDNSUTIL --config-dir=. --config-name=lmdb2 create-secondary-zone $zone 127.0.0.1:$port
43 fi
44 done
45
46 # setup catalog zone
47 if [ $zones -ne 1 ] # detect root tests
48 then
49 zones=$((zones+1))
50 $PDNSUTIL --config-dir=. --config-name=lmdb2 create-secondary-zone catalog.invalid 127.0.0.1:$port
51 $PDNSUTIL --config-dir=. --config-name=lmdb2 set-kind catalog.invalid consumer
52
53 $PDNSUTIL --config-dir=. --config-name=lmdb2 create-secondary-zone remove.invalid 127.0.0.1:$port
54 $PDNSUTIL --config-dir=. --config-name=lmdb2 set-catalog remove.invalid catalog.invalid
55 fi
56
57 port=$((port+100))
58
59 $RUNWRAPPER $PDNS2 --daemon=no --local-port=$port --config-dir=. \
60 --config-name=lmdb2 --socket-dir=./ --no-shuffle \
61 --secondary --xfr-cycle-interval=15 --dname-processing --api --api-key=secret &
62
63 sleep 1
64 $PDNSCONTROL --config-name=lmdb2 --socket-dir=. --no-config retrieve catalog.invalid
65
66 echo 'waiting for zones to be fetched'
67 loopcount=0
68 while [ $loopcount -lt 30 ]
69 do
70 sleep 5
71 present=$(curl -s -S -H 'X-API-Key: secret' http://127.0.0.1:8081/api/v1/servers/localhost/zones | jq -r '.[] | .serial' | grep -c -v '^0$')
72 if [ $zones -eq $present ]
73 then
74 break
75 fi
76 let loopcount=loopcount+1
77 done
78 if [ $zones -ne $present ]
79 then
80 echo "AXFR FAILED" >> failed_tests
81 exit
82 fi