Fix OS_AUTH_URL for subcloud case
Expected IP in OS_AUTH_URL is the public interface of keystone identity, not the admin interface. TEST PLAN: [PASS] Build, install [PASS] Check if downloaded file shows correct endpoint for subcloud OS_AUTH_URL Closes-Bug: 2056782 Change-Id: I5c6b24cedf97cac3f58ddd2e78fa5d52b4e45ae0 Signed-off-by: Davi Frossard <dbarrosf@windriver.com>
This commit is contained in:
parent
ccb42149e9
commit
d6f2a27d42
@ -2,7 +2,7 @@
|
||||
{% load align_auth_url %}
|
||||
|
||||
#
|
||||
# Copyright (c) 2023 Wind River Systems, Inc.
|
||||
# Copyright (c) 2023-2024 Wind River Systems, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
@ -19,8 +19,10 @@
|
||||
# only for the Identity API served through keystone.
|
||||
{% if region == 'SystemController' %}
|
||||
export OS_AUTH_URL={{ auth_url|align_auth_url }}/v{{ os_identity_api_version }}
|
||||
{% else %}
|
||||
{% elif region == 'RegionOne' %}
|
||||
export OS_AUTH_URL={{ auth_url }}/v{{ os_identity_api_version }}
|
||||
{% else %}
|
||||
export OS_AUTH_URL={% align_subcloud_auth_url auth_url %}/v{{ os_identity_api_version }}
|
||||
{% endif %}
|
||||
|
||||
# With the addition of Keystone we have standardized on the term **project**
|
||||
|
@ -1,16 +1,42 @@
|
||||
#
|
||||
# Copyright (c) 2020 Wind River Systems, Inc.
|
||||
# Copyright (c) 2020-2024 Wind River Systems, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
from dcmanagerclient.api.v1 import client
|
||||
from django import template
|
||||
from openstack_dashboard.api import base
|
||||
|
||||
register = template.Library()
|
||||
AUTH_PORT = '5000'
|
||||
|
||||
|
||||
def align_ip_port(url, ip):
|
||||
url_list = url.split('//')
|
||||
url_list[-1] = ip
|
||||
return '//'.join(url_list) + ':' + AUTH_PORT
|
||||
|
||||
|
||||
@register.filter(name="align_auth_url")
|
||||
def align_auth_url(url):
|
||||
url_list = url.split(':')
|
||||
url_list[-1] = '5000'
|
||||
def align_auth_url(auth_url):
|
||||
url_list = auth_url.split(':')
|
||||
url_list[-1] = AUTH_PORT
|
||||
return ':'.join(url_list)
|
||||
|
||||
|
||||
@register.simple_tag(name='align_subcloud_auth_url', takes_context=True)
|
||||
def align_subcloud_auth_url(context, auth_url):
|
||||
request = context["request"]
|
||||
subcloud_name = request.COOKIES.get("subcloud_" +
|
||||
request.user.services_region)
|
||||
request.user.services_region = 'SystemController'
|
||||
endpoint = base.url_for(request, 'dcmanager')
|
||||
dc_manager = client.Client(project_id=request.user.project_id,
|
||||
user_id=request.user.id,
|
||||
auth_token=request.user.token.id,
|
||||
dcmanager_url=endpoint)
|
||||
result = dc_manager.subcloud_manager.\
|
||||
subcloud_additional_details(subcloud_name)
|
||||
subcloud_oam_floating_ip = result[0].oam_floating_ip
|
||||
return align_ip_port(auth_url, subcloud_oam_floating_ip)
|
||||
|
Loading…
Reference in New Issue
Block a user