Plugin keystone_stats: migrate to Python3, format documentation
This commit is contained in:
parent
b02548ccd8
commit
0d055149cc
|
@ -1,14 +1,31 @@
|
|||
#!/usr/bin/env python
|
||||
#
|
||||
# Plugin to monitor status of Keystone
|
||||
#
|
||||
# Needs following minimal configuration in plugin-conf.d/keystone:
|
||||
# [keystone_*]
|
||||
# user keystone
|
||||
#
|
||||
# Magic markers
|
||||
#%# capabilities=autoconf
|
||||
#%# family=auto
|
||||
#!/usr/bin/env python3
|
||||
|
||||
"""
|
||||
=head1 NAME
|
||||
|
||||
|
||||
keystone_stats - monitor status of Keystone
|
||||
|
||||
=head1 CONFIGURATION
|
||||
|
||||
|
||||
Needs following minimal configuration in plugin-conf.d/keystone:
|
||||
|
||||
[keystone_*]
|
||||
user keystone
|
||||
|
||||
=head1 AUTHORS
|
||||
|
||||
Copyright 2012 - Mehdi Abaakouk <sileht@sileht.net>
|
||||
|
||||
|
||||
=head1 MAGIC MARKERS
|
||||
|
||||
#%# capabilities=autoconf
|
||||
#%# family=auto
|
||||
|
||||
=cut
|
||||
"""
|
||||
|
||||
import sys
|
||||
import traceback
|
||||
|
@ -23,23 +40,24 @@ except ImportError:
|
|||
else:
|
||||
successful_import = True
|
||||
|
||||
|
||||
stats = ['users', 'tenants']
|
||||
|
||||
|
||||
def print_config():
|
||||
global states
|
||||
print 'graph_title Keystone Stats'
|
||||
print 'graph_vlabel count'
|
||||
print 'graph_args --base 1000 --lower-limit 0'
|
||||
print 'graph_category auth'
|
||||
print 'graph_scale no'
|
||||
print 'graph_info This graph shows stats about keystone: ' + (', ').join(stats)
|
||||
print('graph_title Keystone Stats')
|
||||
print('graph_vlabel count')
|
||||
print('graph_args --base 1000 --lower-limit 0')
|
||||
print('graph_category auth')
|
||||
print('graph_scale no')
|
||||
print('graph_info This graph shows stats about keystone: ' + (', ').join(stats))
|
||||
for field in stats:
|
||||
print '%s_enabled.label enabled %s' % (field, field)
|
||||
print '%s_enabled.draw LINE2' % field
|
||||
print '%s_enabled.info %s enabled' % (field, field)
|
||||
print '%s_total.label total %s' % (field, field)
|
||||
print '%s_total.draw LINE2' % field
|
||||
print '%s_total.info %s total' % (field, field)
|
||||
print('%s_enabled.label enabled %s' % (field, field))
|
||||
print('%s_enabled.draw LINE2' % field)
|
||||
print('%s_enabled.info %s enabled' % (field, field))
|
||||
print('%s_total.label total %s' % (field, field))
|
||||
print('%s_total.draw LINE2' % field)
|
||||
print('%s_total.info %s total' % (field, field))
|
||||
|
||||
|
||||
def get_status():
|
||||
|
@ -60,13 +78,12 @@ def get_status():
|
|||
# kvs and sql implement get_tenants() instead of get_all_tenants()
|
||||
# Whoo: None of backend implements the correct function
|
||||
tenants = []
|
||||
for api_func in [ 'get_all_tenants', 'get_tenants']:
|
||||
for api_func in ['get_all_tenants', 'get_tenants']:
|
||||
try:
|
||||
tenants = getattr(identity_api, api_func)(None)
|
||||
except exception.NotImplemented, NotImplementedError:
|
||||
except (exception.NotImplemented, NotImplementedError):
|
||||
pass
|
||||
|
||||
|
||||
for tenant in tenants:
|
||||
total['tenants'] += 1
|
||||
if tenant['enabled']:
|
||||
|
@ -78,29 +95,29 @@ def get_status():
|
|||
def print_values():
|
||||
stats = get_status()
|
||||
for state in stats.keys():
|
||||
for (field, value) in stats[state].iteritems():
|
||||
print "%s_%s.value %s" % (field, state, value)
|
||||
for (field, value) in stats[state].items():
|
||||
print("%s_%s.value %s" % (field, state, value))
|
||||
|
||||
|
||||
def load_conf():
|
||||
config.CONF(config_files=[utils.find_config('keystone.conf')])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) > 1:
|
||||
if sys.argv[1] == "config":
|
||||
print_config()
|
||||
elif sys.argv[1] == "autoconf":
|
||||
if not successful_import:
|
||||
print 'no (failed import keystone module)'
|
||||
print('no (failed import keystone module)')
|
||||
sys.exit(0)
|
||||
try:
|
||||
load_conf()
|
||||
identity.Manager()
|
||||
except:
|
||||
print 'no (failed to connect keystone backend: %s'%traceback.format_exc()
|
||||
except Exception:
|
||||
print('no (failed to connect keystone backend: %s' % traceback.format_exc())
|
||||
sys.exit(0)
|
||||
print 'yes'
|
||||
|
||||
print('yes')
|
||||
elif successful_import:
|
||||
load_conf()
|
||||
print_values()
|
||||
|
||||
|
|
|
@ -170,7 +170,6 @@ plugins/jmx/plugin/jmx_
|
|||
plugins/jvm/jstat__gccount
|
||||
plugins/jvm/jstat__gctime
|
||||
plugins/jvm/jstat__heap
|
||||
plugins/keystone/keystone_stats
|
||||
plugins/libvirt/kvm_cpu
|
||||
plugins/libvirt/kvm_io
|
||||
plugins/libvirt/kvm_mem
|
||||
|
|
Loading…
Reference in New Issue