]> git.ipfire.org Git - thirdparty/pdns.git/blame - regression-tests.dnsdist/test_DynBlocksResponseBytes.py
Merge pull request #13756 from rgacogne/ddist-xsk-doc-typos
[thirdparty/pdns.git] / regression-tests.dnsdist / test_DynBlocksResponseBytes.py
CommitLineData
8c87daac
RG
1#!/usr/bin/env python
2import base64
3import socket
4import time
5import dns
6from dnsdisttests import DNSDistTest
7from dnsdistDynBlockTests import DynBlocksTest, waitForMaintenanceToRun, _maintenanceWaitTime
8
9class TestDynBlockResponseBytes(DynBlocksTest):
10
11 _dynBlockBytesPerSecond = 200
12 _consoleKey = DNSDistTest.generateConsoleKey()
13 _consoleKeyB64 = base64.b64encode(_consoleKey).decode('ascii')
14 _config_params = ['_consoleKeyB64', '_consolePort', '_dynBlockBytesPerSecond', '_dynBlockPeriod', '_dynBlockDuration', '_testServerPort']
15 _config_template = """
16 setKey("%s")
17 controlSocket("127.0.0.1:%s")
18 function maintenance()
19 addDynBlocks(exceedRespByterate(%d, %d), "Exceeded response byterate", %d)
20 end
21 newServer{address="127.0.0.1:%s"}
22 """
23
24 def testDynBlocksResponseByteRate(self):
25 """
26 Dyn Blocks: Response Byte Rate
27 """
28 name = 'responsebyterate.dynblocks.tests.powerdns.com.'
29 self.doTestResponseByteRate(name, self._dynBlockBytesPerSecond)
30
31class TestDynBlockGroupResponseBytes(DynBlocksTest):
32
33 _dynBlockBytesPerSecond = 200
34 _consoleKey = DNSDistTest.generateConsoleKey()
35 _consoleKeyB64 = base64.b64encode(_consoleKey).decode('ascii')
36 _config_params = ['_consoleKeyB64', '_consolePort', '_dynBlockBytesPerSecond', '_dynBlockPeriod', '_dynBlockDuration', '_testServerPort']
37 _config_template = """
38 setKey("%s")
39 controlSocket("127.0.0.1:%s")
40 local dbr = dynBlockRulesGroup()
41 dbr:setResponseByteRate(%d, %d, "Exceeded query rate", %d)
42
43 function maintenance()
44 dbr:apply()
45 end
46
47 newServer{address="127.0.0.1:%s"}
48 """
49
50 def testDynBlocksResponseByteRate(self):
51 """
52 Dyn Blocks (group) : Response Byte Rate
53 """
54 name = 'responsebyterate.group.dynblocks.tests.powerdns.com.'
55 self.doTestResponseByteRate(name, self._dynBlockBytesPerSecond)