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
This commit is contained in:
Felipe Monteiro 2018-06-13 19:35:25 +01:00
parent 3e129745b4
commit bb8c77bfe1
2 changed files with 27 additions and 1 deletions

View File

@ -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():

View File

@ -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)