<div dir="ltr">Anything more automation-friendly would be welcome! A better socket interface, Python lib, Ansible module, all great.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Dec 3, 2022 at 9:50 AM Maria Matejka via Bird-users <<a href="mailto:bird-users@trubka.network.cz">bird-users@trubka.network.cz</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello!<br>
> On Mon, Nov 28, 2022 at 03:08:59PM +0000, Stavros Konstantaras via <br>
> Bird-users wrote:<br>
>> And after closing the output file I proceed on calling subprocess with <br>
>> the "birdc configure" command.<br>
> <br>
> You might consider sending the command directly to the control socket, <br>
> e.g. (no error handling!):<br>
> <br>
> ```python<br>
> import socket<br>
> <br>
> with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as sock:<br>
>      sock.connect('/run/bird/bird.ctl')<br>
>      sock.send(b'configure\n')<br>
>      # Assumption your config is under /etc/bird.conf<br>
>      assert sock.recv(4096) == b'0002-Reading configuration from <br>
> /etc/bird.conf\n0003 Reconfigured\n'<br>
> ```<br>
<br>
This is horrible, yet understandable.<br>
<br>
I hope we manage to include some machine-friendly control socket <br>
implementation in BIRD 3. It's gonna be based on CBOR format, hopefully <br>
distributed also with client Python libs, and if nobody in our team gets <br>
too angry with me for writing such a code, maybe also with an Ansible <br>
module allowing to write a nice-looking YAML definition.<br>
<br>
Take this as my personal hopes … yet if you wanna say ±1 or whatever <br>
else to this, feel free to respond.<br>
<br>
Maria<br>
<br>
</blockquote></div>