From 860b229fe00998d2dd2d020d7dc847f99e709c26 Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Mon, 14 May 2018 06:10:04 +0200 Subject: T564: initial implementation of the DNS forwarding op mode commands. --- Makefile | 1 + op-mode-definitions/dns-forwarding.xml | 39 +++++++++++++++++++++++++++ src/op-mode/vyos-dns-forwarding-statistics.py | 24 +++++++++++++++++ src/op-mode/vyos-restart-dns-forwarding.sh | 8 ++++++ 4 files changed, 72 insertions(+) create mode 100644 op-mode-definitions/dns-forwarding.xml create mode 100755 src/op-mode/vyos-dns-forwarding-statistics.py create mode 100755 src/op-mode/vyos-restart-dns-forwarding.sh diff --git a/Makefile b/Makefile index ad7107d3d..c328d6a8d 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,7 @@ op_mode_definitions: # XXX: delete top level op mode node.def's that now live in other packages rm -f $(OP_TMPL_DIR)/show/node.def + rm -f $(OP_TMPL_DIR)/show/dns/node.def rm -f $(OP_TMPL_DIR)/reset/node.def rm -f $(OP_TMPL_DIR)/restart/node.def diff --git a/op-mode-definitions/dns-forwarding.xml b/op-mode-definitions/dns-forwarding.xml new file mode 100644 index 000000000..96fa1a6f4 --- /dev/null +++ b/op-mode-definitions/dns-forwarding.xml @@ -0,0 +1,39 @@ + + + + + + + + + + Show DNS forwarding information + + + + + Show DNS forwarding statistics + + ${vyos_bindir}/vyos-dns-forwarding-statistics.py + + + + + + + + + + + + + + Restart DNS forwarding service + + ${vyos_bindir}/vyos-restart-dns-forwarding.sh + + + + + + diff --git a/src/op-mode/vyos-dns-forwarding-statistics.py b/src/op-mode/vyos-dns-forwarding-statistics.py new file mode 100755 index 000000000..3d1e30aee --- /dev/null +++ b/src/op-mode/vyos-dns-forwarding-statistics.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 + +import subprocess +import jinja2 + +PDNS_CMD='/usr/bin/rec_control' + +OUT_TMPL_SRC = """ +DNS forwarding statistics: + +Cache entries: {{ cache_entries -}} +Cache size: {{ cache_size }} kbytes + +""" + + +if __name__ == '__main__': + data = {} + + data['cache_entries'] = subprocess.check_output([PDNS_CMD, 'get cache-entries']).decode() + data['cache_size'] = "{0:.2f}".format( int(subprocess.check_output([PDNS_CMD, 'get cache-bytes']).decode()) / 1024 ) + + tmpl = jinja2.Template(OUT_TMPL_SRC) + print(tmpl.render(data)) diff --git a/src/op-mode/vyos-restart-dns-forwarding.sh b/src/op-mode/vyos-restart-dns-forwarding.sh new file mode 100755 index 000000000..12106fcc1 --- /dev/null +++ b/src/op-mode/vyos-restart-dns-forwarding.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +if cli-shell-api exists service dns forwarding; then + echo "Restarting the DNS forwarding service" + systemctl restart pdns-recursor +else + echo "DNS forwarding is not configured" +fi -- cgit v1.2.3