diff --git a/tools/migrate-hosts.cmake b/tools/migrate-hosts.cmake index abe29253d..5e2d17ed6 100644 --- a/tools/migrate-hosts.cmake +++ b/tools/migrate-hosts.cmake @@ -1,83 +1,31 @@ #!/bin/sh -# Moves configuration files from /etc/icinga2/conf.d/hosts -# to /etc/icinga2/repository.d +# Moves configuration files from /etc/icinga2/conf.d/hosts/ +# as backup files. TODO: Remove script before 2.2 release. icinga2bin=@CMAKE_INSTALL_FULL_SBINDIR@/icinga2 sysconfdir=`$icinga2bin variable get --current SysconfDir` if [ -z "$sysconfdir" ]; then - echo "Could not determine SysconfDir" - exit 1 + echo "Could not determine SysconfDir" + exit 1 fi -if [ ! -d $sysconfdir/icinga2/conf.d/hosts ]; then - exit 0 +target="`hostname -f`" +if [ ! -e $sysconfdir/icinga2/repository.d/hosts/$target.conf ]; then + exit 0 fi -mkdir -p $sysconfdir/icinga2/repository.d/hosts +mv $sysconfdir/icinga2/repository.d/hosts/$target.conf $sysconfdir/icinga2/repository.d/hosts/$target.conf.bak -host_count=0 -service_count=0 - -for hostFile in $sysconfdir/icinga2/conf.d/hosts/*.conf; do - if [ ! -e $hostFile ]; then - continue - fi - - host_count=$(($host_count + 1)) - - host=`basename $hostFile .conf` - - if [ "x$host" = "xlocalhost" ]; then - target="`hostname -f`" - else - target=$host - fi - - if [ ! -e $sysconfdir/icinga2/repository.d/hosts/$target.conf ]; then - mv $sysconfdir/icinga2/conf.d/hosts/$host.conf $sysconfdir/icinga2/repository.d/hosts/$target.conf - sed "s/localhost/$target/g" $sysconfdir/icinga2/repository.d/hosts/$target.conf > $sysconfdir/icinga2/repository.d/hosts/$target.conf.tmp - mv $sysconfdir/icinga2/repository.d/hosts/$target.conf.tmp $sysconfdir/icinga2/repository.d/hosts/$target.conf - else - rm -f $sysconfdir/icinga2/conf.d/hosts/$host.conf - fi - - if [ -d $sysconfdir/icinga2/conf.d/hosts/$host ]; then - service_count=$(($service_count + 1)) - - if [ ! -e $sysconfdir/icinga2/repository.d/hosts/$target ]; then - mv $sysconfdir/icinga2/conf.d/hosts/$host $sysconfdir/icinga2/repository.d/hosts/$target - for file in $sysconfdir/icinga2/repository.d/hosts/$target/*.conf; do - if [ ! -e $file ]; then - break +if [ -d $sysconfdir/icinga2/repository.d/hosts/$target ]; then + for file in $sysconfdir/icinga2/repository.d/hosts/$target/*.conf; do + if [ ! -e $file ]; then + break fi - sed "s/localhost/$target/g" $file > $file.tmp - mv $file.tmp $file - done - else - rm -rf $sysconfdir/icinga2/conf.d/hosts/$host - fi - fi -done - -cat >$sysconfdir/icinga2/conf.d/hosts/README <