From 0d055149cca80b68b933813566d7e2ff119085a7 Mon Sep 17 00:00:00 2001 From: Lars Kruse Date: Thu, 26 Nov 2020 00:03:57 +0100 Subject: [PATCH] Plugin keystone_stats: migrate to Python3, format documentation --- plugins/keystone/keystone_stats | 87 +++++++++++++--------- t/test-exception-wrapper.expected-failures | 1 - 2 files changed, 52 insertions(+), 36 deletions(-) diff --git a/plugins/keystone/keystone_stats b/plugins/keystone/keystone_stats index ec0e596f..6090700a 100755 --- a/plugins/keystone/keystone_stats +++ b/plugins/keystone/keystone_stats @@ -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 + + +=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() - diff --git a/t/test-exception-wrapper.expected-failures b/t/test-exception-wrapper.expected-failures index b0bdca69..7096e441 100644 --- a/t/test-exception-wrapper.expected-failures +++ b/t/test-exception-wrapper.expected-failures @@ -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