The code that migrates ConfKeyManager encryption keys to Barbican hits DuplicateOptError when it tries to load the fixed_key config option.
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: Traceback (most recent call last):
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: File "/usr/lib/python2.7/site-packages/eventlet/greenpool.py", line 82, in _spawn_n_impl
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: func(*args, **kwargs)
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: File "/opt/stack/cinder/cinder/keymgr/migration.py", line 162, in migrate_fixed_key
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: KeyMigrator(conf).handle_key_migration(volumes)
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: File "/opt/stack/cinder/cinder/keymgr/migration.py", line 49, in handle_key_migration
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: group='key_manager')
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2721, in import_opt
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: __import__(module_str)
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: File "/opt/stack/cinder/cinder/keymgr/conf_key_mgr.py", line 52, in <module>
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: CONF.register_opts(key_mgr_opts, group='key_manager')
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2436, in __inner
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: result = f(self, *args, **kwargs)
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2634, in register_opts
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: self.register_opt(opt, group, clear_cache=False)
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2440, in __inner
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: return f(self, *args, **kwargs)
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2610, in register_opt
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: return group._register_opt(opt, cli)
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 1837, in _register_opt
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: if _is_opt_registered(self._opts, opt):
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 786, in _is_opt_registered
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: raise DuplicateOptError(opt.name)
Feb 01 18:54:56 devstack.localdomain cinder-volume[1583]: DuplicateOptError: duplicate option: fixed_key
I previously thought olso_config.cfg.import_opt() would not do that, but apparently it can.
Fix proposed to branch: master /review. openstack. org/540427
Review: https:/