Charmed-Kubernetes/nrpe/tests/11-monitors-configurations

61 lines
1.6 KiB
Python
Executable File

#!/usr/bin/python3
import amulet
import requests
seconds = 20000
d = amulet.Deployment(series='trusty')
d.add('nagios')
d.add('mysql')
d.add('nrpe')
d.configure('mysql', {'dataset-size': '10%'})
d.relate('nagios:monitors', 'mysql:monitors')
d.relate('nrpe:monitors', 'nagios:monitors')
d.relate('nrpe:local-monitors', 'mysql:local-monitors')
d.expose('nagios')
try:
d.setup(timeout=seconds)
except amulet.helpers.TimeoutError:
amulet.raise_status(amulet.SKIP, msg="Environment wasn't stood up in time")
except:
raise
##
# Set relationship aliases
##
mysql_unit = d.sentry['mysql'][0]
nagios_unit = d.sentry['nagios'][0]
def test_nrpe_monitors_config():
# look for procrunning in nrpe config
try:
mysql_unit.file_contents('/etc/nagios/nrpe.d/'
'check_proc_mysqld_principal.cfg')
except IOError as e:
amulet.raise_status(amulet.ERROR,
msg="procrunning config not found. Error:" +
e.args[1])
def test_nagios_monitors_response():
# look for mysql_database requests
nagpwd = nagios_unit.file_contents('/var/lib/juju/nagios.passwd').strip()
host_url = ("http://%s/cgi-bin/nagios3/status.cgi?"
"host=mysql-0")
r = requests.get(host_url % nagios_unit.info['public-address'],
auth=('nagiosadmin', nagpwd))
if not r.text.find('mysql-0-basic'):
amulet.raise_status(amulet.ERROR,
msg='Nagios is not monitoring the' +
' hosts it supposed to.')
test_nrpe_monitors_config()
test_nagios_monitors_response()