67 lines
1.2 KiB
Python
Executable File
67 lines
1.2 KiB
Python
Executable File
#!/usr/bin/python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import argparse
|
|
import sys
|
|
from cox_check import *
|
|
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('-s', '--host')
|
|
args = parser.parse_args()
|
|
if args.host:
|
|
cocaine_tool = cocaine_tool + ' -h ' + args.host
|
|
|
|
|
|
# Cocaine applications
|
|
apps_array = get_apps()
|
|
|
|
# Runlists
|
|
runlists_array = get_runlists()
|
|
|
|
apps_info = {}
|
|
|
|
# Get info about app
|
|
for app_name in apps_array:
|
|
apps_info[app_name] = get_app_info(app_name)
|
|
|
|
apps_status = {}
|
|
|
|
for app_name in apps_info:
|
|
state = get_app_state(app_name)
|
|
|
|
if state == 'running':
|
|
apps_status[app_name] = { '0': state }
|
|
else:
|
|
# Check production runlist
|
|
runlist = get_runlist(runlists_array, app_name)
|
|
if runlist == 'production':
|
|
apps_status[app_name] = { '2': state }
|
|
else:
|
|
apps_status[app_name] = { '1': state }
|
|
|
|
crit_apps = []
|
|
warn_apps = []
|
|
for app in apps_status:
|
|
for code in apps_status[app]:
|
|
message = apps_status[app][code]
|
|
if code == '2':
|
|
crit_apps.append(app)
|
|
if code == '1':
|
|
warn_apps.append(app)
|
|
|
|
if len(crit_apps) == 0:
|
|
pass
|
|
else:
|
|
print crit_apps
|
|
sys.exit(2)
|
|
|
|
if len(warn_apps) == 0:
|
|
pass
|
|
else:
|
|
print warn_apps
|
|
sys.exit(1)
|
|
|
|
print "OK"
|
|
sys.exit(0)
|