fuel-plugin-lma-infrastruct.../deployment_scripts/puppet/modules/lma_infra_alerting/files/update-lma-configuration

86 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
if [ -z "$1" ]; then
echo "The name of the plugin is empty"
exit 1
fi
if [ -z "$2" ]; then
echo "The version of the plugin is empty"
exit 1
fi
PLUGIN_NAME=$1
PLUGIN_VERSION=$2
PLUGIN_MAJOR=$(echo "$PLUGIN_VERSION" | cut -d. -f1)
PLUGIN_MINOR=$(echo "$PLUGIN_VERSION" | cut -d. -f2)
MANIFEST=nagios.pp
CONFIG_DIR=/etc/nagios3/conf.d
PREFIX_FILENAMES=lma_
EXTENSION_FILENAMES=.cfg
PUPPET=$(which puppet)
PLUGIN_PUPPET_DIR=$(ls -d /etc/fuel/plugins/"$PLUGIN_NAME-$PLUGIN_MAJOR.$PLUGIN_MINOR"/puppet)
LAST_CHECK=/var/cache/lma_last_astute_yaml.md5sum
LAST_CHECK_NODES=/var/cache/lma_last_nodes_yaml.md5sum
CURRENT_CHECK=/var/cache/lma_current_astute_yaml.md5sum
CURRENT_CHECK_NODES=/var/cache/lma_current_nodes_yaml.md5sum
ASTUTE=/etc/hiera/astute.yaml
if [ -f /etc/hiera/deleted_nodes.yaml ]; then
# MOS-9
NODES=/etc/hiera/deleted_nodes.yaml
else
# MOS-8
NODES=/etc/hiera/nodes.yaml
fi
if [[ -z "$PLUGIN_NAME" ]]; then
cat << EOT
Usage: $0 <PLUGIN_NAME>
If $ASTUTE or $NODES have changed since the last run, re-apply nagios manifest.
Before puppet apply, the script removes the StackLight nagios configuration files.
EOT
exit 1
fi
if [[ ! -f "$ASTUTE" || ! -f "$NODES" ]]; then
echo "Both files $ASTUTE and $NODES are missing !"
exit 1
fi
if [[ ! -f $LAST_CHECK || ! -f $LAST_CHECK_NODES ]]; then
# First run
md5sum $ASTUTE 2>/dev/null > $LAST_CHECK
md5sum $NODES 2>/dev/null > $LAST_CHECK_NODES
exit 0
fi
md5sum $ASTUTE > $CURRENT_CHECK
md5sum $NODES > $CURRENT_CHECK_NODES
md5sum --status -c $LAST_CHECK
result_astute=$?
md5sum --status -c $LAST_CHECK_NODES
result_nodes=$?
if [[ $result_astute -ne 0 || $result_nodes -ne 0 ]]; then
if [ -d "$CONFIG_DIR" ]; then
rm -f "$CONFIG_DIR"/"$PREFIX_FILENAMES"*"$EXTENSION_FILENAMES"
fi
set -e
$PUPPET apply --modulepath="$PLUGIN_PUPPET_DIR/modules/:/etc/puppet/modules" "$PLUGIN_PUPPET_DIR/manifests/$MANIFEST"
set +e
md5sum --status -c $LAST_CHECK
result_astute=$?
md5sum --status -c $LAST_CHECK_NODES
result_nodes=$?
if [[ $result_astute -ne 0 || $result_nodes -ne 0 ]]; then
# OK, the hiera data hasn't been modified during the puppet run
md5sum $ASTUTE > $LAST_CHECK
md5sum $NODES > $LAST_CHECK_NODES
fi
fi