knot-dns/python
2021-05-31 15:04:23 +02:00
..
libknot python: add README skeleton 2021-05-31 15:04:23 +02:00
.gitignore python: extend .gitignore 2018-11-22 13:27:30 +01:00
Makefile.am python: add README skeleton 2021-05-31 15:04:23 +02:00
README.md python: add README skeleton 2021-05-31 15:04:23 +02:00
setup.py.in python: add README skeleton 2021-05-31 15:04:23 +02:00

Libknot API in Python

Control API

Example:

import json
import libknot.control

#import libknot
#libknot.Knot("/usr/lib/libknot.so")

ctl = libknot.control.KnotCtl()
ctl.connect("/var/run/knot/knot.sock")

try:
    ctl.send_block(cmd="conf-begin")
    resp = ctl.receive_block()

    ctl.send_block(cmd="conf-set", section="zone", item="domain", data="test")
    resp = ctl.receive_block()

    ctl.send_block(cmd="conf-commit")
    resp = ctl.receive_block()

    ctl.send_block(cmd="conf-read", section="zone", item="domain")
    resp = ctl.receive_block()
    print(json.dumps(resp, indent=4))
finally:
    ctl.send(libknot.control.KnotCtlType.END)
    ctl.close()

Probe API

Example:

import libknot.probe

#import libknot
#libknot.Knot("/usr/lib/libknot.so")

probe = libknot.probe.KnotProbe("/run/knot")

data = libknot.probe.KnotProbeDataArray(8)
while (True):
    if probe.consume(data) > 0:
        for item in data:
            print(item)