diff --git a/cdist/conf/type/__bridge/files/backends/ifcfg/manifest b/cdist/conf/type/__bridge/files/backends/ifcfg/manifest index 68e3e76d..6f863c14 100755 --- a/cdist/conf/type/__bridge/files/backends/ifcfg/manifest +++ b/cdist/conf/type/__bridge/files/backends/ifcfg/manifest @@ -37,13 +37,13 @@ in ;; esac - +bridge_ports= # space-separated list bridge_stp='off' cd "${__object:?}/parameter" for param in * do - case $param + case ${param} in (bootproto) bootproto=$(cat "${__object:?}/parameter/bootproto") @@ -54,7 +54,7 @@ do exit 1 ;; (port) - case $systype + case ${systype} in (redhat) # TOOD @@ -67,13 +67,10 @@ do printf 'Invalid bridge port name: %s\n' "${_port}" >&2 exit 1 } - set -- "$@" "${_port}" + printf ' %s' "${_port}" done <"${__object:?}/parameter/port" - echo "$*" ) - - set -- "$@" --extra-config "BRIDGE_PORTS='${bridge_ports}'" - unset bridge_ports + bridge_ports=${bridge_ports# } ;; esac ;; @@ -90,6 +87,8 @@ do esac done +# Set bridge ports +set -- "$@" --extra-config "BRIDGE_PORTS='${bridge_ports}'" # Set boolean options case $systype diff --git a/cdist/conf/type/__bridge/files/backends/ifupdown.d/manifest b/cdist/conf/type/__bridge/files/backends/ifupdown.d/manifest index 0528bb1b..f29b883a 100755 --- a/cdist/conf/type/__bridge/files/backends/ifupdown.d/manifest +++ b/cdist/conf/type/__bridge/files/backends/ifupdown.d/manifest @@ -22,19 +22,20 @@ __package_apt bridge-utils export require=__package_apt/bridge-utils +bridge_ports='none' # space-separated list bridge_stp='off' enable_hotplug=no cd "${__object:?}/parameter" for param in * do - case $param + case ${param} in (bootproto) bootproto=$(cat "${__object:?}/parameter/bootproto") set -- "$@" --bootproto "${bootproto}" - case $bootproto + case ${bootproto} in (manual) # if set to manual, there is nothing to wait for… @@ -49,19 +50,18 @@ do enable_hotplug=yes ;; (port) - while read -r _port - do - test -z "$(echo "${_port}" | tr -d 'A-Za-z0-9')" || { - printf 'Invalid bridge port name: %s\n' "${_port}" >&2 - exit 1 - } + bridge_ports=$( + while read -r _port + do + test -z "$(echo "${_port}" | tr -d 'A-Za-z0-9')" || { + printf 'Invalid bridge port name: %s\n' "${_port}" >&2 + exit 1 + } - bridge_ports="${bridge_ports-} ${_port}" - done <"${__object:?}/parameter/port" - unset _port - - set -- "$@" --extra-config "bridge_ports${bridge_ports}" - unset bridge_ports + printf ' %s' "${_port}" + done <"${__object:?}/parameter/port" + ) + bridge_ports=${bridge_ports# } ;; (stp) bridge_stp='on' @@ -77,6 +77,9 @@ do done +# Set bridge ports +set -- "$@" --extra-config "bridge_ports ${bridge_ports}" + # Set boolean options set -- "$@" --extra-config "bridge_stp ${bridge_stp}" test "${bridge_stp}" = 'on' || set -- "$@" --extra-config 'bridge_fd 0' diff --git a/cdist/conf/type/__bridge/parameter/optional_multiple b/cdist/conf/type/__bridge/parameter/optional_multiple index 5bb11f03..d54585d1 100644 --- a/cdist/conf/type/__bridge/parameter/optional_multiple +++ b/cdist/conf/type/__bridge/parameter/optional_multiple @@ -1,2 +1,3 @@ address extra-config +port diff --git a/cdist/conf/type/__bridge/parameter/required_multiple b/cdist/conf/type/__bridge/parameter/required_multiple deleted file mode 100644 index 20e6f145..00000000 --- a/cdist/conf/type/__bridge/parameter/required_multiple +++ /dev/null @@ -1 +0,0 @@ -port