diff --git a/src/config.yaml b/src/config.yaml index c7249ad..e0b3214 100644 --- a/src/config.yaml +++ b/src/config.yaml @@ -14,6 +14,10 @@ options: Note that updating this setting to a source that is known to provide a later version of OpenStack will trigger a software upgrade. + service-user: + default: manila + type: string + description: Username used for keystone's service credential. rabbit-user: default: manila type: string diff --git a/src/reactive/manila_ganesha.py b/src/reactive/manila_ganesha.py index 7563043..4e95bc9 100644 --- a/src/reactive/manila_ganesha.py +++ b/src/reactive/manila_ganesha.py @@ -7,7 +7,10 @@ import charms.reactive.relations as relations import charmhelpers.core as ch_core -from charmhelpers.core.hookenv import log +from charmhelpers.core.hookenv import ( + log, + config, +) charms_openstack.bus.discover() @@ -42,12 +45,18 @@ def setup_manila(): } +@reactive.when('config.changed.service-user') +@reactive.when('identity-service.connected') +def update_ident_username(keystone): + """Updates the user to the Identity Service""" + configure_ident_username(keystone) + + @reactive.when_not('identity-service.available') @reactive.when('identity-service.connected') def configure_ident_username(keystone): - """Requests a user to the Identity Service - """ - username = 'manila' + """Requests a user to the Identity Service""" + username = config().get('service-user') keystone.request_credentials(username) diff --git a/unit_tests/test_manila_ganesha_handlers.py b/unit_tests/test_manila_ganesha_handlers.py index 02a449e..c41b858 100644 --- a/unit_tests/test_manila_ganesha_handlers.py +++ b/unit_tests/test_manila_ganesha_handlers.py @@ -49,6 +49,8 @@ def test_hooks(self): 'enable_services_in_non_ha': ('config.rendered', 'ganesha-pool-configured',), 'disable_services': ('cluster.connected',), + 'update_ident_username': ('config.changed.service-user', + 'identity-service.connected',), }, 'when_not': { 'ceph_connected': ('ganesha-pool-configured',),