From bb8c77bfe1017f6c25507cf563b26f4522651575 Mon Sep 17 00:00:00 2001 From: Felipe Monteiro Date: Wed, 13 Jun 2018 19:35:25 +0100 Subject: [PATCH] Remove duplicate option certfile from Armada config This removes duplicate option certfile from Armada config causing: 2018-06-13 16:44:42.093 24 ERROR armada File "/usr/local/lib/python3.5/site-packages/oslo_config/cfg.py", line 801, in _is_opt_registered 2018-06-13 16:44:42.093 24 ERROR armada raise DuplicateOptError(opt.name) 2018-06-13 16:44:42.093 24 ERROR armada oslo_config.cfg.DuplicateOptError: duplicate option: certfile 2018-06-13 16:44:42.093 24 ERROR armada This appears to because authtoken Keystone middleware automatically adds Keystone session options to Armada's CONF automatically [0]. Thus including `ks_loading.register_session_conf_options` causes option duplication. However, I still don't understand where auth options are set automatically by other services, which is why `ks_loading.register_auth_conf_options` is left in the code (which adds yet other options related to Keystone auth plugin options, required for creating a Keystone session). [0] https://docs.openstack.org/keystonemiddleware/latest/middlewarearchitecture.html#configuration Change-Id: I2c2576c35d87a7b0e3c96ad64fcd88ce54fff86b --- armada/conf/default.py | 1 - .../tests/unit/api/test_api_initialization.py | 27 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 armada/tests/unit/api/test_api_initialization.py diff --git a/armada/conf/default.py b/armada/conf/default.py index 26be474e..a60a90e7 100644 --- a/armada/conf/default.py +++ b/armada/conf/default.py @@ -95,7 +95,6 @@ path to the private key that includes the name of the key itself.""")), def register_opts(conf): conf.register_opts(default_options) ks_loading.register_auth_conf_options(conf, group='keystone_authtoken') - ks_loading.register_session_conf_options(conf, group='keystone_authtoken') def list_opts(): diff --git a/armada/tests/unit/api/test_api_initialization.py b/armada/tests/unit/api/test_api_initialization.py new file mode 100644 index 00000000..1149be5b --- /dev/null +++ b/armada/tests/unit/api/test_api_initialization.py @@ -0,0 +1,27 @@ +# Copyright 2018 AT&T Intellectual Property. All other rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the 'License'); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an 'AS IS' BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import importlib + +import falcon + +from armada.tests.unit.api import base as test_base + + +class TestApi(test_base.BaseControllerTest): + + def test_init_application(self): + server = importlib.import_module('armada.api.server') + api = server.create() + self.assertIsInstance(api, falcon.API)