|
Olav Reinert |
22736c |
#!/bin/sh
|
|
Olav Reinert |
d91308 |
tmp=$(mktemp -p /tmp -d memberaliases.XXXXXXXXXX)
|
|
Olav Reinert |
22736c |
cd "$tmp" || exit 1
|
|
Olav Reinert |
22736c |
|
|
Olav Reinert |
d91308 |
nsca_client_name='{{grains.id}}'
|
|
Olav Reinert |
22736c |
nsca_client_service='openSUSE virtual_users'
|
|
Olav Reinert |
22736c |
nsca_server_ip='192.168.47.7'
|
|
Olav Reinert |
22736c |
nsca_config='/etc/send_nsca.cfg'
|
|
Olav Reinert |
22736c |
#status_code=3
|
|
Olav Reinert |
22736c |
#status_message='unknown'
|
|
Olav Reinert |
22736c |
|
|
Olav Reinert |
22736c |
send_nsca_message(){
|
|
Olav Reinert |
22736c |
local status_code="$1"
|
|
Olav Reinert |
22736c |
local status_message="$2"
|
|
Olav Reinert |
22736c |
echo -e "$nsca_client_name\t$nsca_client_service\t$status_code\t$status_message" | send_nsca -H $nsca_server_ip -c "$nsca_config"
|
|
Olav Reinert |
22736c |
}
|
|
Olav Reinert |
22736c |
|
|
Olav Reinert |
d91308 |
mysql -h proxy.infra.opensuse.org -P3307 -Dmembers -NB -e 'select addr, email_target from email_aliases' >member.aliases.new
|
|
Olav Reinert |
22736c |
|
|
Olav Reinert |
22736c |
# need to make sure it is ordered
|
|
Olav Reinert |
22736c |
LC_ALL=C sort -d -k1 member.aliases.new >member.aliases.ordered
|
|
Olav Reinert |
22736c |
|
|
Olav Reinert |
d91308 |
added=$(diff -B -b /etc/postfix/virtual-opensuse-users member.aliases.ordered | grep ^\> | wc -l)
|
|
Olav Reinert |
d91308 |
removed=$(diff -B -b /etc/postfix/virtual-opensuse-users member.aliases.ordered | grep ^\< | wc -l)
|
|
Olav Reinert |
22736c |
total=$(wc -l
|
|
Olav Reinert |
22736c |
|
|
Olav Reinert |
22736c |
# if too many would be removed, something's probably wrong.
|
|
Olav Reinert |
22736c |
if test $removed -gt 20
|
|
Olav Reinert |
22736c |
then
|
|
Olav Reinert |
22736c |
printf "New member-aliases list (%u entries) would remove %u aliases ?\n" $total $removed
|
|
Olav Reinert |
22736c |
send_nsca_message "1" "New member-aliases list ($total entries) would remove $removed aliases | total=$total; added=$added; removed=$removed;"
|
|
Olav Reinert |
22736c |
# tidy up
|
|
Olav Reinert |
22736c |
rm -Rf "$tmp"
|
|
Olav Reinert |
22736c |
exit 1
|
|
Olav Reinert |
22736c |
fi
|
|
Olav Reinert |
22736c |
|
|
Olav Reinert |
22736c |
# if we had any changes, update our alias list
|
|
Olav Reinert |
22736c |
if test $added -gt 0 -o $removed -gt 0
|
|
Olav Reinert |
22736c |
then
|
|
Olav Reinert |
22736c |
printf "virtual-opensuse-users updated: %u additions, %u removals, now %u entries\n" $added $removed $total
|
|
Olav Reinert |
22736c |
send_nsca_message "0" "virtual-opensuse-users updated: $added additions, $removed removals, now $total entries | total=$total; added=$added; removed=$removed;"
|
|
Olav Reinert |
22736c |
# debug
|
|
Olav Reinert |
d91308 |
diff -B -b /etc/postfix/virtual-opensuse-users member.aliases.ordered
|
|
Olav Reinert |
22736c |
|
|
Olav Reinert |
22736c |
mv member.aliases.ordered /etc/postfix/virtual-opensuse-users
|
|
Olav Reinert |
22736c |
postmap /etc/postfix/virtual-opensuse-users
|
|
Olav Reinert |
22736c |
postfix reload
|
|
Olav Reinert |
22736c |
else
|
|
Olav Reinert |
22736c |
# printf "virtual-opensuse-users not updated, no changes found.\n"
|
|
Olav Reinert |
22736c |
send_nsca_message "0" "virtual-opensuse-users not updated, no changes found | total=$total; added=$added; removed=$removed;" >/dev/null
|
|
Olav Reinert |
22736c |
fi
|
|
Olav Reinert |
22736c |
|
|
Olav Reinert |
22736c |
# tidy up
|
|
Olav Reinert |
22736c |
rm -Rf "$tmp"
|