]> granicus.if.org Git - icinga2/commitdiff
Change migrate-hosts to remove repository.d/hosts/fqdn
authorMichael Friedrich <michael.friedrich@netways.de>
Fri, 7 Nov 2014 00:01:12 +0000 (01:01 +0100)
committerMichael Friedrich <michael.friedrich@netways.de>
Fri, 7 Nov 2014 03:13:44 +0000 (04:13 +0100)
Create a backup, and drop that later.

refs #7398

tools/migrate-hosts.cmake

index abe29253df6933caa6f8b9a8247bc2b212eddc05..5e2d17ed675594c4c33e9951e0e2fd160d757c3c 100644 (file)
@@ -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/<fqdn>
+# 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 <<TEXT
-What happened to my configuration files?
-========================================
-
-Your host and service configuration files were moved to the $sysconfdir/icinga2/repository.d directory.
-
-This allows you to manipulate those files using the "icinga2 repository" CLI commands.
-
-Here are a few commands you might want to try:
-
-# icinga2 repository host list
-
-# icinga2 repository service list
-
-# icinga2 repository --help
-TEXT
-
-echo "Migrated $host_count host(s) and $service_count service(s)."
+               mv $file $file.bak
+       done
+fi
 
+echo "Moved repository FQDN host in $sysconfdir/icinga2/repository.d/hosts/$target as backup. Please migrate your changes to all new conf.d/{hosts,services.conf}"
 exit 0