File: //opt/microsoft/omsagent/bin/troubleshooter
#!/bin/bash
TST_START=/opt/microsoft/omsagent/tst/modules/main.py
# check what version of python the user has
python_prereq_check()
{
# check python
echo "Checking for python install..."
PYTHON=""
PY_VERSION=""
if [ -x "$(command -v python2)" ]; then
PYTHON="python2"
# check if Python 2.6 or newer
PY_VERSION=$((python2 --version) 2>&1)
case $PY_VERSION in
"Python 2.6"* | "Python 2.7"* )
;;
* )
echo "Python version $PY_VERSION is not supported."\
"OMS (and this troubleshooter) require Python 2.6 or newer,"\
"please install a supported version of Python and try again."
return 1
;;
esac
elif [ -x "$(command -v python3)" ]; then
PYTHON="python3"
PY_VERSION=$((python3 --version) 2>&1)
else
echo "No version of Python found on machine."\
"OMS (and this troubleshooter) require Python 2.6 or newer,"\
"please install a supported version of Python and try again."
return 1
fi
# check python packages
echo "Checking all necessary python modules are installed..."
success=0
temp_pkgs="copy errno os platform re socket ssl subprocess"
if [ $PYTHON = "python2" ]; then
pkgs="$temp_pkgs urllib2"
# add the urllib2 for 2
else
pkgs="$temp_pkgs urllib.request"
# add the urllib.request for 3
fi
for pkg in $pkgs; do
$PYTHON -c "import $pkg" 1> /dev/null 2> /dev/null
if [ $? -ne 0 ]; then
echo "Python package '$pkg' not installed."
success=1
fi
done
# check other packages
echo "Checking all necessary programs are installed..."
programs="gdb"
for prog in $programs; do
which $prog 1> /dev/null 2> /dev/null
if [ $? -ne 0 ]; then
echo "Program '$prog' not installed."
success=1
fi
done
return $success
}
run_troubleshooter()
{
if [ -f $TST_START ]; then
echo "Running troubleshooting tool in $PY_VERSION..."
echo ""
$PYTHON $TST_START
else
echo "Troubleshooter not properly installed."
exit 1
fi
}
# in case user runs with --help, and in case for future options
if [ "$1" = "--help" ]; then
echo "This script runs the OMS Agent troubleshooter."
echo "Note: Python 2.6 or newer is required to run successfully."
echo "Run this script without any options to run the troubleshooter on this machine."
exit 0
fi
# check python and run troubleshooter
python_prereq_check
if [ $? -ne 0 ]; then
echo "Please fix above issues before running troubleshooter."
exit 1
else
run_troubleshooter
fi