Merge "Allow to hide openrc and clouds.yaml download links"

This commit is contained in:
Zuul 2019-01-13 16:43:52 +00:00 committed by Gerrit Code Review
commit a1ffa9620e
5 changed files with 51 additions and 7 deletions

View File

@ -835,6 +835,25 @@ MEMOIZED_MAX_SIZE_DEFAULT allows setting a global default to help control
memory usage when caching. It should at least be 2 x the number of threads memory usage when caching. It should at least be 2 x the number of threads
with a little bit of extra buffer. with a little bit of extra buffer.
SHOW_OPENRC_FILE
----------------
.. versionadded:: 15.0.0(Stein)
Default:: ``True``
Controls whether the keystone openrc file is accesible from the user
menu and the api access panel.
SHOW_OPENSTACK_CLOUDS_YAML
--------------------------
.. versionadded:: 15.0.0(Stein)
Default:: ``True``
Controls whether clouds.yaml is accesible from the user
menu and the api access panel.
SHOW_KEYSTONE_V2_RC SHOW_KEYSTONE_V2_RC
-------------------- --------------------

View File

@ -51,6 +51,9 @@ class DownloadCloudsYaml(tables.LinkAction):
icon = "download" icon = "download"
url = "horizon:project:api_access:clouds.yaml" url = "horizon:project:api_access:clouds.yaml"
def allowed(self, request, datum=None):
return settings.SHOW_OPENSTACK_CLOUDS_YAML
class DownloadOpenRC(tables.LinkAction): class DownloadOpenRC(tables.LinkAction):
name = "download_openrc" name = "download_openrc"
@ -68,7 +71,8 @@ class DownloadOpenRC(tables.LinkAction):
self.verbose_name = _("OpenStack RC File (Identity API v3)") self.verbose_name = _("OpenStack RC File (Identity API v3)")
def allowed(self, request, datum=None): def allowed(self, request, datum=None):
return utils.get_keystone_version() >= 3 return (settings.SHOW_OPENRC_FILE and
utils.get_keystone_version() >= 3)
class DownloadOpenRCv2(tables.LinkAction): class DownloadOpenRCv2(tables.LinkAction):

View File

@ -114,6 +114,14 @@ WEBROOT = '/'
# and the API Access page # and the API Access page
#SHOW_KEYSTONE_V2_RC = False #SHOW_KEYSTONE_V2_RC = False
# Controls whether the keystone openrc file is accesible from the user
# menu and the api access panel.
SHOW_OPENRC_FILE = True
# Controls whether clouds.yaml is accesible from the user
# menu and the api access panel.
SHOW_OPENSTACK_CLOUDS_YAML = True
# If provided, a "Report Bug" link will be displayed in the site header # If provided, a "Report Bug" link will be displayed in the site header
# which links to the value of this setting (ideally a URL containing # which links to the value of this setting (ideally a URL containing
# information on how to report issues). # information on how to report issues).

View File

@ -348,6 +348,8 @@ CSRF_COOKIE_AGE = None
COMPRESS_OFFLINE_CONTEXT = 'horizon.themes.offline_context' COMPRESS_OFFLINE_CONTEXT = 'horizon.themes.offline_context'
SHOW_KEYSTONE_V2_RC = False SHOW_KEYSTONE_V2_RC = False
SHOW_OPENRC_FILE = True
SHOW_OPENSTACK_CLOUDS_YAML = True
# Dictionary of currently available angular features # Dictionary of currently available angular features
ANGULAR_FEATURES = { ANGULAR_FEATURES = {
@ -429,12 +431,13 @@ if USER_MENU_LINKS is None:
'icon_classes': ['fa-download', ], 'icon_classes': ['fa-download', ],
'url': 'horizon:project:api_access:openrcv2', 'url': 'horizon:project:api_access:openrcv2',
}) })
USER_MENU_LINKS.append({ if SHOW_OPENRC_FILE:
'name': (_('OpenStack RC File v3') if SHOW_KEYSTONE_V2_RC USER_MENU_LINKS.append({
else _('OpenStack RC File')), 'name': (_('OpenStack RC File v3') if SHOW_KEYSTONE_V2_RC
'icon_classes': ['fa-download', ], else _('OpenStack RC File')),
'url': 'horizon:project:api_access:openrc', 'icon_classes': ['fa-download', ],
}) 'url': 'horizon:project:api_access:openrc',
})
if not WEBROOT.endswith('/'): if not WEBROOT.endswith('/'):
WEBROOT += '/' WEBROOT += '/'

View File

@ -0,0 +1,10 @@
---
features:
- |
[:bug:`1795851`] Operators now can control whether the links of
"Download OpenRC" and "Download clouds.yaml" are displayed or not
via new settings ``SHOW_OPENRC_FILE`` and ``SHOW_OPENSTACK_CLOUDS_YAML``.
``openrc`` and ``clouds.yaml`` files provided by horizon now assume
the basic simple deployment and do not cover keystone authentication
like saml2, openid and so on. The default ``openrc`` and ``clouds.yaml``
from horizon do not make sense for such environments.