Merge pull request #19314 from TDT-AG/pr/2022-09-05-collectd

collectd: extend network uci plugin
This commit is contained in:
Florian Eckert 2022-09-19 11:13:28 +02:00 committed by GitHub
commit fab89d120f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 83 additions and 3 deletions

View File

@ -153,11 +153,58 @@ process_network() {
printf "</Plugin>\n\n" >> "$COLLECTD_CONF"
}
process_network_server() {
local cfg="$1"
local SecurityLevel="$2"
local Username Password ResolveInterval
config_get Username "$cfg" Username
[ -z "$Username" ] && {
$LOG notice "SecurityLevel set to '$SecurityLevel' but no option Username found in config '$cfg'"
return 1
}
printf "\\t\\tUsername \"%s\"\n" "${Username}" >> "$COLLECTD_CONF"
config_get Password "$cfg" Password
[ -z "$Password" ] && {
$LOG notice "SecurityLevel set to '$SecurityLevel' but no option Password found in config '$cfg'"
return 2
}
printf "\\t\\tPassword \"%s\"\n" "${Password}" >> "$COLLECTD_CONF"
config_get ResolveInterval "$cfg" ResolveInterval
[ -z "$ResolveInterval" ] || {
printf "\\t\\tResolveInterval \"%s\"\n" "${ResolveInterval}" >> "$COLLECTD_CONF"
}
}
process_network_listen() {
local cfg="$1"
local auth_file="/tmp/collectd-auth-${cfg}.conf"
local auth_set
rm -rf "${auth_file}"
add_auth() {
echo "$1" >> "${auth_file}"
auth_set=1
}
config_list_foreach "$cfg" auth add_auth
[ -z "$auth_set" ] && {
$LOG notice "SecurityLevel set to '$SecurityLevel' but no list option auth found in config '$cfg'"
return 1
}
printf "\\t\\tAuthFile \"%s\"\n" "${auth_file}" >> "$COLLECTD_CONF"
}
process_network_sections() {
local cfg="$1"
local section="$2"
local host port output
local host port output rvalue SecurityLevel Interface
config_get host "$cfg" host
[ -z "$host" ] && {
@ -173,9 +220,42 @@ process_network_sections() {
config_get port "$cfg" port
if [ -z "$port" ]; then
printf "\\t%s\n" "${output}" >> "$COLLECTD_CONF"
printf "\\t<%s>\n" "${output}" >> "$COLLECTD_CONF"
else
printf "\\t%s \"%s\"\n" "${output}" "${port}" >> "$COLLECTD_CONF"
printf "\\t<%s \"%s\">\n" "${output}" "${port}" >> "$COLLECTD_CONF"
fi
config_get SecurityLevel "$cfg" SecurityLevel 'None'
[ -z "$SecurityLevel" ] || {
printf "\\t\\tSecurityLevel \"%s\"\n" "${SecurityLevel}" >> "$COLLECTD_CONF"
}
if [ "$SecurityLevel" != "None" ]; then
case "$section" in
server)
process_network_server "$cfg" "$SecurityLevel"
rvalue="$?"
[ "$rvalue" != 0 ] && return 0
;;
listen)
process_network_listen "$cfg" "$SecurityLevel"
rvalue="$?"
[ "$rvalue" != 0 ] && return 0
;;
esac
else
$LOG notice "SecurityLevel set to 'None' for '$cfg'"
fi
config_get Interface "$cfg" Interface
[ -z "$Interface" ] || {
printf "\\t\\tInterface \"%s\"\n" "${Interface}" >> "$COLLECTD_CONF"
}
if [ "$section" = "server" ]; then
printf "\\t</Server>\n" >> "$COLLECTD_CONF"
else
printf "\\t</Listen>\n" >> "$COLLECTD_CONF"
fi
}