From 23ee1b59533329b24f4b53a5eb49ba1a027de8ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20M=C3=A1gr?= Date: Wed, 23 Nov 2016 11:13:32 +0100 Subject: [PATCH] Catch more exceptions This patch avoids traceback outputs during client Keystone authentication Change-Id: I8a99178ad3469a366dd793691375b0105176714b --- monitoring-for-openstack/oschecks/utils.py | 81 +++++++++++++--------- 1 file changed, 48 insertions(+), 33 deletions(-) diff --git a/monitoring-for-openstack/oschecks/utils.py b/monitoring-for-openstack/oschecks/utils.py index 3a56896..b8ba23a 100644 --- a/monitoring-for-openstack/oschecks/utils.py +++ b/monitoring-for-openstack/oschecks/utils.py @@ -130,26 +130,29 @@ class Nova(object): sys.exit(2) auth_token = getattr(args, 'os_token', None) api_version = '2.1' - nova_client = Client( - api_version, - options.os_username, - options.os_password, - getattr( - options, 'os_project_name', getattr( - options, 'os_tenant_name', None - ) - ), - tenant_id=getattr( - options, 'os_project_id', getattr( - options, 'os_tenant_id', None - ) - ), - auth_token=auth_token, - auth_url=options.os_auth_url, - region_name=options.os_region_name, - cacert=options.os_cacert, - insecure=options.insecure, - timeout=options.timeout) + try: + nova_client = Client( + api_version, + options.os_username, + options.os_password, + getattr( + options, 'os_project_name', getattr( + options, 'os_tenant_name', None + ) + ), + tenant_id=getattr( + options, 'os_project_id', getattr( + options, 'os_tenant_id', None + ) + ), + auth_token=auth_token, + auth_url=options.os_auth_url, + region_name=options.os_region_name, + cacert=options.os_cacert, + insecure=options.insecure, + timeout=options.timeout) + except Exception as ex: + critical(ex) return options, args, nova_client @@ -167,7 +170,10 @@ class Glance(object): options.command = None self.glance.do_help(options) sys.exit(2) - client = self.glance._get_versioned_client(api_version, options) + try: + client = self.glance._get_versioned_client(api_version, options) + except Exception as ex: + critical(ex) return options, args, client @@ -193,7 +199,10 @@ class Ceilometer(object): self.ceilometer.do_help(options) sys.exit(2) client_kwargs = vars(options) - return options, client.get_client(api_version, **client_kwargs) + try: + return options, client.get_client(api_version, **client_kwargs) + except Exception as ex: + critical(ex) class Cinder(object): @@ -213,15 +222,18 @@ class Cinder(object): sys.exit(2) if options.os_volume_api_version: api_version = options.os_volume_api_version - client = client.get_client_class(api_version)( - options.os_username, - options.os_password, - options.os_tenant_name, - tenant_id=options.os_tenant_id, - auth_url=options.os_auth_url, - region_name=options.os_region_name, - cacert=options.os_cacert, - insecure=options.insecure) + try: + client = client.get_client_class(api_version)( + options.os_username, + options.os_password, + options.os_tenant_name, + tenant_id=options.os_tenant_id, + auth_url=options.os_auth_url, + region_name=options.os_region_name, + cacert=options.os_cacert, + insecure=options.insecure) + except Exception as ex: + critical(ex) return options, args, client @@ -238,8 +250,11 @@ class Neutron(object): (options, args) = self.neutron.parser.parse_known_args(self.base_argv) self.neutron.options = options self.neutron.api_version = {'network': self.neutron.api_version} - self.neutron.authenticate_user() - return options, args, self.neutron.client_manager.neutron + try: + self.neutron.authenticate_user() + return options, args, self.neutron.client_manager.neutron + except Exception as ex: + critical(ex) class Keystone(object):