From 9375de287639948303487397152fcab7fea1cb04 Mon Sep 17 00:00:00 2001 From: Ashwin Agate Date: Tue, 26 Mar 2019 00:05:23 -0700 Subject: [PATCH] monasca-setup httpcheck args plugin: keystone_config * httpcheck args plugin setup now creates keystone_config in init_config only if required. * unecessary keystone_config section in init_config for http_check.yaml file would cause all http check instances to fail because of missing keystone credentials like e.g. keystone_url, username, password, project. * This change creates a keystone_config section in init_config only if keystone_url is being passed as an argument during httpcheck plugin setup. Story: 2005296 Task: 30182 Change-Id: Id31d2e5b5d22cb6c6f1fbdb942dac4b1b5aea76d --- monasca_setup/detection/plugins/http_check.py | 47 ++++++++++--------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/monasca_setup/detection/plugins/http_check.py b/monasca_setup/detection/plugins/http_check.py index 7120a920..854d6629 100644 --- a/monasca_setup/detection/plugins/http_check.py +++ b/monasca_setup/detection/plugins/http_check.py @@ -56,12 +56,15 @@ class HttpCheck(monasca_setup.detection.ArgsPlugin): instance = self._build_instance(['url', 'timeout', 'username', 'password', 'match_pattern', 'disable_ssl_validation', 'name', 'use_keystone', 'collect_response_time']) - init_config = {'keystone_config': self._build_instance(['keystone_url', - 'keystone_project', - 'keystone_project_domain', - 'keystone_user', - 'keystone_user_domain', - 'keystone_password'])} + + init_config = None + if 'keystone_url' in self.args: + init_config = {'keystone_config': self._build_instance(['keystone_url', + 'keystone_project', + 'keystone_project_domain', + 'keystone_user', + 'keystone_user_domain', + 'keystone_password'])} # Normalize any boolean parameters for param in ['use_keystone', 'collect_response_time']: @@ -74,22 +77,22 @@ class HttpCheck(monasca_setup.detection.ArgsPlugin): instance['name'] = self.args['url'] # Configure http check wide Keystone settings - if 'keystone_project' in init_config['keystone_config']: - init_config['keystone_config']['project_name'] = init_config['keystone_config']\ - .pop('keystone_project') - if 'keystone_project_domain' in init_config['keystone_config']: - init_config['keystone_config']['project_domain_name'] = \ - init_config['keystone_config'].pop('keystone_project_domain') - if 'keystone_user' in init_config['keystone_config']: - init_config['keystone_config']['username'] = init_config['keystone_config']\ - .pop('keystone_user') - if 'keystone_user_domain' in init_config['keystone_config']: - init_config['keystone_config']['user_domain_name'] = \ - init_config['keystone_config'].pop('keystone_user_domain') - if 'keystone_password' in init_config['keystone_config']: - init_config['keystone_config']['password'] = init_config['keystone_config']\ - .pop('keystone_password') + if init_config and ('keystone_config' in init_config): + if 'keystone_project' in init_config['keystone_config']: + init_config['keystone_config']['project_name'] = init_config['keystone_config']\ + .pop('keystone_project') + if 'keystone_project_domain' in init_config['keystone_config']: + init_config['keystone_config']['project_domain_name'] = \ + init_config['keystone_config'].pop('keystone_project_domain') + if 'keystone_user' in init_config['keystone_config']: + init_config['keystone_config']['username'] = init_config['keystone_config']\ + .pop('keystone_user') + if 'keystone_user_domain' in init_config['keystone_config']: + init_config['keystone_config']['user_domain_name'] = \ + init_config['keystone_config'].pop('keystone_user_domain') + if 'keystone_password' in init_config['keystone_config']: + init_config['keystone_config']['password'] = init_config['keystone_config']\ + .pop('keystone_password') config['http_check'] = {'init_config': init_config, 'instances': [instance]} - return config