__bird_ospf: ass -extra-area-configuration parameter
This commit is contained in:
parent
023206d3d9
commit
eecb2b4629
5 changed files with 26 additions and 7 deletions
|
@ -24,12 +24,6 @@ import
|
|||
export
|
||||
The keyword or filter to decide what to export in the above channel.
|
||||
|
||||
|
||||
REQUIRED MULTIPLE PARAMETERS
|
||||
----------------------------
|
||||
interface
|
||||
An interface to include in OSPF area 0.
|
||||
|
||||
OPTIONAL PARAMETERS
|
||||
-------------------
|
||||
description
|
||||
|
@ -39,12 +33,19 @@ instance-id
|
|||
An OSPF instance ID, allowing several OSPF instances to run on the same
|
||||
links.
|
||||
|
||||
extra-area-configuration
|
||||
Configuration string added to the `area` section of the OSPF configuration.
|
||||
|
||||
OPTIONAL MULTIPLE PARAMETERS
|
||||
----------------------------
|
||||
|
||||
stubnet
|
||||
Add an optionless stubnet definition to the configuration.
|
||||
|
||||
interface
|
||||
An interface to include in OSPF area 0. Is required unless
|
||||
extra-area-configuration is set.
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
cdist-type__bird_core(7)
|
||||
|
|
|
@ -44,6 +44,21 @@ then
|
|||
instance_id="$(cat "${__object:?}/parameter/instance-id")"
|
||||
fi
|
||||
|
||||
extra_area_configuration=
|
||||
if [ -f "${__object:?}/parameter/extra-area-configuration" ];
|
||||
then
|
||||
extra_area_configuration="$(cat "${__object:?}/parameter/extra-area-configuration")"
|
||||
|
||||
if [ "$extra_area_configuration" = "-" ]; then
|
||||
extra_area_configuration=$(cat "$__object/stdin")
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -f "${__object:?}/parameter/interface" ] && [ -z "$extra_area_configuration" ]; then
|
||||
echo "Either --interface or --extra-area-configuration must be set." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
__file "${confdir:?}/ospf-${__object_id:?}.conf" \
|
||||
--mode 0640 --owner root --group bird \
|
||||
--source - << EOF
|
||||
|
@ -59,6 +74,8 @@ $([ -n "${instance_id?}" ] && printf "\tinstance id %s;\n" "${instance_id?}")
|
|||
area 0 {
|
||||
$(sed -e 's/^/\t\tinterface "/' -e 's/$/";/' "${__object:?}/parameter/interface")
|
||||
$(sed -e 's/^/\t\tsubnet /' -e 's/$/;/' "${__object:?}/parameter/subnet")
|
||||
|
||||
$extra_area_configuration
|
||||
};
|
||||
}
|
||||
EOF
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
description
|
||||
instance-id
|
||||
extra-area-configuration
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
stubnet
|
||||
interface
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
interface
|
Loading…
Reference in a new issue