From 9e8c0c9928c9f2ffe7b735f888b6a5edd42c945d Mon Sep 17 00:00:00 2001 From: Edward Hope-Morley Date: Mon, 4 Apr 2022 14:39:26 +0100 Subject: [PATCH] Ensure service name is not None before lookup We need to ensure value for 'service' provided on identity relation before doing valid_services lookup. Change-Id: I42fb9dbb48b3bcf8fd40700db84ec8210b8433a4 Related-Bug: #1965967 --- hooks/keystone_utils.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/hooks/keystone_utils.py b/hooks/keystone_utils.py index fb94117d..69ee2771 100644 --- a/hooks/keystone_utils.py +++ b/hooks/keystone_utils.py @@ -1941,10 +1941,15 @@ def add_service_to_keystone(relation_id=None, remote_unit=None): relation_data["admin_domain_id"] = leader_get( attribute='admin_domain_id') - if 'service' in settings: + if settings.get('service') is not None: svc_name = settings['service'].partition('_')[0] - relation_data['service_type'] = \ - valid_services[svc_name]['type'] + if svc_name in valid_services: + relation_data['service_type'] = \ + valid_services[svc_name]['type'] + else: + log("service '{}' not found in valid_services " + "catalog so unable to set service_type on relation". + format(svc_name), level=WARNING) # Allow the remote service to request creation of any additional # roles. Currently used by Horizon