blob: 93ea9227cda87b9ccc3a4cf5b198a4522eb89d53 [file] [log] [blame]
#!/bin/sh
#/*
# * Licensed to the Apache Software Foundation (ASF) under one
# * or more contributor license agreements. See the NOTICE file
# * distributed with this work for additional information
# * regarding copyright ownership. The ASF licenses this file
# * to you under the Apache License, Version 2.0 (the
# * "License"); you may not use this file except in compliance
# * with the License. You may obtain a copy of the License at
# *
# * http://www.apache.org/licenses/LICENSE-2.0
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# */
cd `dirname ${0}`;
# Get access to Ganglia-wide constants, utilities etc.
source ./gangliaLib.sh
function usage()
{
cat << END_USAGE
Usage: ${0} [-c <gmondClusterName> [-m]] [-t]
Options:
-c <gmondClusterName> The name of the Ganglia Cluster whose gmond configuration we're here to generate.
-m Whether this gmond (if -t is not specified) is the master for its Ganglia
Cluster. Without this, we generate slave gmond configuration.
-t Whether this is a call to generate gmetad configuration (as opposed to the
gmond configuration that is generated without this).
END_USAGE
}
function instantiateGmetadConf()
{
# gmetad utility library.
source ./gmetadLib.sh;
generateGmetadConf > ${GMETAD_CONF_FILE};
}
function instantiateGmondConf()
{
# gmond utility library.
source ./gmondLib.sh;
gmondClusterName=${1};
if [ "x" != "x${gmondClusterName}" ]
then
createDirectory "${GANGLIA_RUNTIME_DIR}/${gmondClusterName}";
createDirectory "${GANGLIA_CONF_DIR}/${gmondClusterName}/conf.d";
# Always blindly generate the core gmond config - that goes on every box running gmond.
generateGmondCoreConf ${gmondClusterName} > `getGmondCoreConfFileName ${gmondClusterName}`;
isMasterGmond=${2};
# Decide whether we want to add on the master or slave gmond config.
if [ "0" -eq "${isMasterGmond}" ]
then
generateGmondSlaveConf ${gmondClusterName} > `getGmondSlaveConfFileName ${gmondClusterName}`;
else
generateGmondMasterConf ${gmondClusterName} > `getGmondMasterConfFileName ${gmondClusterName}`;
fi
else
echo "No gmondClusterName passed in, nothing to instantiate";
fi
}
# main()
gmondClusterName=;
isMasterGmond=0;
configureGmetad=0;
while getopts ":c:mt" OPTION
do
case ${OPTION} in
c)
gmondClusterName=${OPTARG};
;;
m)
isMasterGmond=1;
;;
t)
configureGmetad=1;
;;
?)
usage;
exit 1;
esac
done
# Initialization.
createDirectory ${GANGLIA_CONF_DIR};
createDirectory ${GANGLIA_RUNTIME_DIR};
# So rrdcached can drop its PID files in here.
chmod a+w ${GANGLIA_RUNTIME_DIR};
if [ -n "${gmondClusterName}" ]
then
# Be forgiving of users who pass in -c along with -t (which always takes precedence).
if [ "1" -eq "${configureGmetad}" ]
then
instantiateGmetadConf;
else
instantiateGmondConf ${gmondClusterName} ${isMasterGmond};
fi
elif [ "1" -eq "${configureGmetad}" ]
then
instantiateGmetadConf;
else
usage;
exit 2;
fi