mirror of
https://github.com/ansible/awx.git
synced 2026-01-14 03:10:42 -03:30
Merge pull request #5505 from ryanpetrello/fix-5470
set the default in OPTIONS for TOWER_URL_BASE to the request hostname
This commit is contained in:
commit
f11e9076cf
@ -67,7 +67,10 @@ class Metadata(metadata.SimpleMetadata):
|
||||
# Indicate if a field has a default value.
|
||||
# FIXME: Still isn't showing all default values?
|
||||
try:
|
||||
field_info['default'] = field.get_default()
|
||||
default = field.get_default()
|
||||
if not default and field.field_name == 'TOWER_URL_BASE':
|
||||
default = '{}://{}'.format(self.request.scheme, self.request.get_host())
|
||||
field_info['default'] = default
|
||||
except serializers.SkipField:
|
||||
pass
|
||||
|
||||
@ -167,6 +170,10 @@ class Metadata(metadata.SimpleMetadata):
|
||||
return actions
|
||||
|
||||
def determine_metadata(self, request, view):
|
||||
# store request on self so we can use it to generate field defaults
|
||||
# (such as TOWER_URL_BASE)
|
||||
self.request = request
|
||||
|
||||
metadata = super(Metadata, self).determine_metadata(request, view)
|
||||
|
||||
# Add version number in which view was added to Tower.
|
||||
|
||||
@ -30,6 +30,7 @@ def test_license_cannot_be_removed_via_system_settings(mock_no_license_file, get
|
||||
url = reverse('api:setting_singleton_detail', args=('system',))
|
||||
response = get(url, user=admin, expect=200)
|
||||
assert not response.data['LICENSE']
|
||||
Setting.objects.create(key='TOWER_URL_BASE', value='https://towerhost')
|
||||
Setting.objects.create(key='LICENSE', value=enterprise_license)
|
||||
response = get(url, user=admin, expect=200)
|
||||
assert response.data['LICENSE']
|
||||
@ -44,6 +45,13 @@ def test_license_cannot_be_removed_via_system_settings(mock_no_license_file, get
|
||||
assert response.data['LICENSE']
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_url_base_defaults_to_request(options, admin):
|
||||
# If TOWER_URL_BASE is not set, default to the Tower request hostname
|
||||
resp = options(reverse('api:setting_singleton_detail', args=('system',)), user=admin, expect=200)
|
||||
assert resp.data['actions']['PUT']['TOWER_URL_BASE']['default'] == 'http://testserver'
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_jobs_settings(get, put, patch, delete, admin):
|
||||
url = reverse('api:setting_singleton_detail', args=('jobs',))
|
||||
|
||||
@ -861,7 +861,7 @@ ORG_ADMINS_CAN_SEE_ALL_USERS = True
|
||||
TOWER_ADMIN_ALERTS = True
|
||||
|
||||
# Note: This setting may be overridden by database settings.
|
||||
TOWER_URL_BASE = "https://towerhost"
|
||||
TOWER_URL_BASE = ""
|
||||
|
||||
TOWER_SETTINGS_MANIFEST = {}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user