sensu/plugins/cocaine/cox_check.py

79 lines
1.4 KiB
Python
Raw Normal View History

2015-07-10 14:46:52 +03:00
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import ast
cocaine_tool = '/usr/bin/cocaine-tool'
# Get applications array
def get_apps():
apps = get_cmd( cocaine_tool + ' app list' )
apps_array = get_dict(apps)
return apps_array
# Get runlists array
def get_runlists():
runlists = get_cmd( cocaine_tool + ' runlist list' )
runlists_array = get_dict(runlists)
return runlists_array
# Return dictionary of cocaine applicatio info
def get_app_info(app_name):
info = get_cmd( cocaine_tool + ' info -n ' + app_name )
info_dict = get_dict(info)
return info_dict
# Get application state
def get_app_state(app_name):
app_info = get_app_info(app_name)
state = ''
try:
state = app_info['apps'][app_name]['state']
except:
state = 'not running'
return state
# Get dictionary from string
def get_dict(string):
out_dict = ast.literal_eval(string)
return out_dict
# Check runlis
def get_runlist(runlists, app):
for runlist in runlists:
runlist_info = get_runlist_info(runlist)
try:
if runlist_info[app]:
return runlist
except:
pass
return 'Not in runlist'
# Get runlist info
def get_runlist_info(runlist):
info = get_cmd( cocaine_tool + ' runlist view -n ' + runlist )
info_dict = get_dict(info)
return info_dict
# Get shell command output
def get_cmd(cmd):
out = os.popen(cmd).read()
return out