Provide service domain id for v3 deployments

The glance swift store configuration requires use of the domain
id for the service domain; update data set for identity-service
relation to include service_domain_id.

Change-Id: Ie6e2733f34de10a4d34b18dbf1fd9ba623af0e18
Closes-Bug: 1752027
This commit is contained in:
James Page 2018-02-27 12:46:01 +00:00
parent 984d341821
commit bd29991439
2 changed files with 9 additions and 0 deletions

View File

@ -2108,8 +2108,10 @@ def add_service_to_keystone(relation_id=None, remote_unit=None):
service_password = create_service_credentials(service_username,
new_roles=roles)
service_domain = None
service_domain_id = None
if get_api_version() > 2:
service_domain = SERVICE_DOMAIN
service_domain_id = manager.resolve_domain_id(SERVICE_DOMAIN)
service_tenant = config('service-tenant')
service_tenant_id = manager.resolve_tenant_id(service_tenant,
domain=service_domain)
@ -2125,6 +2127,7 @@ def add_service_to_keystone(relation_id=None, remote_unit=None):
"service_username": service_username,
"service_password": service_password,
"service_domain": service_domain,
"service_domain_id": service_domain_id,
"service_tenant": service_tenant,
"service_tenant_id": service_tenant_id,
"https_keystone": '__null__',

View File

@ -303,12 +303,15 @@ class TestKeystoneUtils(CharmTestCase):
self.relation_ids.return_value = ['cluster/0']
service_domain = None
service_domain_id = None
service_role = 'Admin'
if test_api_version > 2:
service_domain = 'service_domain'
service_domain_id = '1234567890'
mock_keystone = MagicMock()
mock_keystone.resolve_tenant_id.return_value = 'tenant_id'
mock_keystone.resolve_domain_id.return_value = service_domain_id
KeystoneManager.return_value = mock_keystone
self.relation_get.return_value = {'service': 'keystone',
@ -345,6 +348,7 @@ class TestKeystoneUtils(CharmTestCase):
'service_username': 'keystone',
'service_password': 'password',
'service_domain': service_domain,
'service_domain_id': service_domain_id,
'service_tenant': 'tenant',
'https_keystone': '__null__',
'ssl_cert': '__null__', 'ssl_key': '__null__',
@ -365,6 +369,8 @@ class TestKeystoneUtils(CharmTestCase):
**relation_data)
self.relation_set.assert_called_with(relation_id=relation_id,
**filtered)
if test_api_version > 2:
mock_keystone.resolve_domain_id.assert_called_with(service_domain)
def test_add_service_to_keystone_no_clustered_no_https_complete_values_v3(
self):