From 897cd139a88dfbf62901e54a83869adea860a594 Mon Sep 17 00:00:00 2001 From: Hemanth Nakkina Date: Thu, 20 Jun 2024 05:46:52 +0530 Subject: [PATCH] Fix internal-* in identity service relation data internal-host, internal-port, internal-protocol holds the values of admin endpoint. Change them to use internal endpoint. Change-Id: Ibb6985a9a67f4372d58ff199c09f82df0b7eb3b5 --- charms/keystone-k8s/src/charm.py | 15 ++++++++++++--- .../tests/unit/test_keystone_charm.py | 4 ++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/charms/keystone-k8s/src/charm.py b/charms/keystone-k8s/src/charm.py index 55fa472f..339eb0a0 100755 --- a/charms/keystone-k8s/src/charm.py +++ b/charms/keystone-k8s/src/charm.py @@ -40,6 +40,9 @@ from typing import ( Dict, List, ) +from urllib.parse import ( + urlparse, +) import charms.keystone_k8s.v0.domain_config as sunbeam_dc_svc import charms.keystone_k8s.v0.identity_credentials as sunbeam_cc_svc @@ -1244,6 +1247,12 @@ export OS_AUTH_VERSION=3 region=region, may_exist=True, ) + parsed_internal_endpoint = urlparse(self.internal_endpoint) + internal_host = parsed_internal_endpoint.hostname + internal_protocol = parsed_internal_endpoint.scheme + internal_port = parsed_internal_endpoint.port + if not internal_port: + internal_port = 80 if internal_protocol == "http" else 443 self.id_svc.interface.set_identity_service_credentials( relation_name, relation_id, @@ -1251,9 +1260,9 @@ export OS_AUTH_VERSION=3 ingress_address, self.default_public_ingress_port, "http", - ingress_address, - self.default_public_ingress_port, - "http", + internal_host, + internal_port, + internal_protocol, ingress_address, self.default_public_ingress_port, "http", diff --git a/charms/keystone-k8s/tests/unit/test_keystone_charm.py b/charms/keystone-k8s/tests/unit/test_keystone_charm.py index e86dddd5..f77bff95 100644 --- a/charms/keystone-k8s/tests/unit/test_keystone_charm.py +++ b/charms/keystone-k8s/tests/unit/test_keystone_charm.py @@ -213,8 +213,8 @@ class TestKeystoneOperatorCharm(test_utils.CharmTestCase): "auth-port": "5000", "auth-protocol": "http", "internal-auth-url": "http://internal-url/v3", - "internal-host": "10.0.0.10", - "internal-port": "5000", + "internal-host": "internal-url", + "internal-port": "80", "internal-protocol": "http", "public-auth-url": "http://public-url/v3", "service-domain-id": "sdomain_id",