#!/usr/bin/env python3

# For FRR to work in VyOS as expected we need a few fixups
#
# 1. Enable daemons we use in /etc/frr/daemons
# 2. Set the VRF backend of Zebra to netns (-n option) in /etc/frr/daemons.conf
#    Otherwise multiple routing tables for PBR won't work
# 3. Create empty configs for daemons with use
#    That is to make them possible to start on boot before config is loaded
#

import os

daemons = """
zebra=yes
bgpd=yes
ospfd=yes
ospf6d=yes
ripd=yes
ripngd=yes
isisd=yes
pimd=no
ldpd=yes
nhrpd=no
eigrpd=yes
babeld=yes
sharpd=no
pbrd=no
bfdd=yes
staticd=yes

vtysh_enable=yes
zebra_options="-s 90000000 --daemon -A 127.0.0.1 -M snmp"
bgpd_options="--daemon -A 127.0.0.1 -M snmp -M rpki -M bmp"
ospfd_options="--daemon -A 127.0.0.1 -M snmp"
ospf6d_options="--daemon -A ::1 -M snmp"
ripd_options="--daemon -A 127.0.0.1 -M snmp"
ripngd_options="--daemon -A ::1"
isisd_options="--daemon -A 127.0.0.1 -M snmp"
pimd_options="--daemon -A 127.0.0.1"
ldpd_options="--daemon -A 127.0.0.1"
nhrpd_options="--daemon -A 127.0.0.1"
eigrpd_options="--daemon -A 127.0.0.1"
babeld_options="--daemon -A 127.0.0.1"
sharpd_options="--daemon -A 127.0.0.1"
pbrd_options="--daemon -A 127.0.0.1"
staticd_options="--daemon -A 127.0.0.1"
bfdd_options="--daemon -A 127.0.0.1"

watchfrr_enable=no
valgrind_enable=no
"""

frr_conf = """
log syslog
log facility local7
"""

frr_log = ''

with open("/etc/frr/daemons", "w") as f:
    f.write(daemons)

with open("/etc/frr/frr.conf", "w") as f:
    f.write(frr_conf)

# Prevent writing logs to /var/log/frr/frr.log. T2061
with open("/etc/rsyslog.d/45-frr.conf", "w") as f:
    f.write(frr_log)