[type/__bridge] Make --port optional

…to support a new use case: only create the bridge using cdist but add ports
later using other software.
This commit is contained in:
Dennis Camera 2020-11-30 11:45:21 +01:00
parent 6d057bbb61
commit 5866dda7c7
4 changed files with 25 additions and 23 deletions

View File

@ -37,13 +37,13 @@ in
;; ;;
esac esac
bridge_ports= # space-separated list
bridge_stp='off' bridge_stp='off'
cd "${__object:?}/parameter" cd "${__object:?}/parameter"
for param in * for param in *
do do
case $param case ${param}
in in
(bootproto) (bootproto)
bootproto=$(cat "${__object:?}/parameter/bootproto") bootproto=$(cat "${__object:?}/parameter/bootproto")
@ -54,7 +54,7 @@ do
exit 1 exit 1
;; ;;
(port) (port)
case $systype case ${systype}
in in
(redhat) (redhat)
# TOOD # TOOD
@ -67,13 +67,10 @@ do
printf 'Invalid bridge port name: %s\n' "${_port}" >&2 printf 'Invalid bridge port name: %s\n' "${_port}" >&2
exit 1 exit 1
} }
set -- "$@" "${_port}" printf ' %s' "${_port}"
done <"${__object:?}/parameter/port" done <"${__object:?}/parameter/port"
echo "$*"
) )
bridge_ports=${bridge_ports# }
set -- "$@" --extra-config "BRIDGE_PORTS='${bridge_ports}'"
unset bridge_ports
;; ;;
esac esac
;; ;;
@ -90,6 +87,8 @@ do
esac esac
done done
# Set bridge ports
set -- "$@" --extra-config "BRIDGE_PORTS='${bridge_ports}'"
# Set boolean options # Set boolean options
case $systype case $systype

View File

@ -22,19 +22,20 @@
__package_apt bridge-utils __package_apt bridge-utils
export require=__package_apt/bridge-utils export require=__package_apt/bridge-utils
bridge_ports='none' # space-separated list
bridge_stp='off' bridge_stp='off'
enable_hotplug=no enable_hotplug=no
cd "${__object:?}/parameter" cd "${__object:?}/parameter"
for param in * for param in *
do do
case $param case ${param}
in in
(bootproto) (bootproto)
bootproto=$(cat "${__object:?}/parameter/bootproto") bootproto=$(cat "${__object:?}/parameter/bootproto")
set -- "$@" --bootproto "${bootproto}" set -- "$@" --bootproto "${bootproto}"
case $bootproto case ${bootproto}
in in
(manual) (manual)
# if set to manual, there is nothing to wait for… # if set to manual, there is nothing to wait for…
@ -49,19 +50,18 @@ do
enable_hotplug=yes enable_hotplug=yes
;; ;;
(port) (port)
while read -r _port bridge_ports=$(
do while read -r _port
test -z "$(echo "${_port}" | tr -d 'A-Za-z0-9')" || { do
printf 'Invalid bridge port name: %s\n' "${_port}" >&2 test -z "$(echo "${_port}" | tr -d 'A-Za-z0-9')" || {
exit 1 printf 'Invalid bridge port name: %s\n' "${_port}" >&2
} exit 1
}
bridge_ports="${bridge_ports-} ${_port}" printf ' %s' "${_port}"
done <"${__object:?}/parameter/port" done <"${__object:?}/parameter/port"
unset _port )
bridge_ports=${bridge_ports# }
set -- "$@" --extra-config "bridge_ports${bridge_ports}"
unset bridge_ports
;; ;;
(stp) (stp)
bridge_stp='on' bridge_stp='on'
@ -77,6 +77,9 @@ do
done done
# Set bridge ports
set -- "$@" --extra-config "bridge_ports ${bridge_ports}"
# Set boolean options # Set boolean options
set -- "$@" --extra-config "bridge_stp ${bridge_stp}" set -- "$@" --extra-config "bridge_stp ${bridge_stp}"
test "${bridge_stp}" = 'on' || set -- "$@" --extra-config 'bridge_fd 0' test "${bridge_stp}" = 'on' || set -- "$@" --extra-config 'bridge_fd 0'

View File

@ -1,2 +1,3 @@
address address
extra-config extra-config
port