Hi,
I'm trying to spin a nice transaction model around libknot, intended for
better automation, as attached. I'm running into problems.
First and foremost, a lack of understanding what should go into what
fields when doing other commands than in the "stats" demos. Are there
more advanced explanations of what goes into what fields? I tried
looking into knotc, but it is rather long. Perhaps there is a log
somewhere with the stuff going into knotd?
Secondly, the model by which transactions abort is not always logical.
Like a commit() that fails but does not turn into an abort() when
semantic errors are found. I will run zone-check beforehand, to ensure
that this does not happen.
Thirdly, I found that the library freezes when supplied with unknown
commands or apparently funny data...
>> import knotcontrol
>> kc = knotcontrol.KnotControl()
>> kc = knotcontrol.KnotControl ()
>> kc.knot (cmd='stats')
KnotControl send {'cmd':
'stats'}
KnotControl recv {'server': {'zone-count': ['1']}}
{'server': {'zone-count': ['1']}}
>> kc.knot
(cmd='zone-stats',item='vanrein.org')
KnotControl send
{'item': 'vanrein.org', 'cmd': 'zone-stats'}
KnotControl recv {}
{}
>> kc.knot
(cmd='zone-recv',item='vanrein.org')
KnotControl send
{'item': 'vanrein.org', 'cmd': 'zone-recv'}
...and at this point it freezes, even to ^C -- before and after this
sequence, "kdig @localhost
vanrein.org soa" worked to query the zone in
Knot DNS.
Sorry to be testing this early :-S but I'm eager to use it this way.
-Rick