mirror of
https://github.com/ansible/awx.git
synced 2026-02-26 07:26:03 -03:30
set the default in OPTIONS for TOWER_URL_BASE to the request hostname
see: #5470
This commit is contained in:
@@ -67,7 +67,10 @@ class Metadata(metadata.SimpleMetadata):
|
|||||||
# Indicate if a field has a default value.
|
# Indicate if a field has a default value.
|
||||||
# FIXME: Still isn't showing all default values?
|
# FIXME: Still isn't showing all default values?
|
||||||
try:
|
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:
|
except serializers.SkipField:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -167,6 +170,10 @@ class Metadata(metadata.SimpleMetadata):
|
|||||||
return actions
|
return actions
|
||||||
|
|
||||||
def determine_metadata(self, request, view):
|
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)
|
metadata = super(Metadata, self).determine_metadata(request, view)
|
||||||
|
|
||||||
# Add version number in which view was added to Tower.
|
# 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',))
|
url = reverse('api:setting_singleton_detail', args=('system',))
|
||||||
response = get(url, user=admin, expect=200)
|
response = get(url, user=admin, expect=200)
|
||||||
assert not response.data['LICENSE']
|
assert not response.data['LICENSE']
|
||||||
|
Setting.objects.create(key='TOWER_URL_BASE', value='https://towerhost')
|
||||||
Setting.objects.create(key='LICENSE', value=enterprise_license)
|
Setting.objects.create(key='LICENSE', value=enterprise_license)
|
||||||
response = get(url, user=admin, expect=200)
|
response = get(url, user=admin, expect=200)
|
||||||
assert response.data['LICENSE']
|
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']
|
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
|
@pytest.mark.django_db
|
||||||
def test_jobs_settings(get, put, patch, delete, admin):
|
def test_jobs_settings(get, put, patch, delete, admin):
|
||||||
url = reverse('api:setting_singleton_detail', args=('jobs',))
|
url = reverse('api:setting_singleton_detail', args=('jobs',))
|
||||||
|
|||||||
@@ -861,7 +861,7 @@ ORG_ADMINS_CAN_SEE_ALL_USERS = True
|
|||||||
TOWER_ADMIN_ALERTS = True
|
TOWER_ADMIN_ALERTS = True
|
||||||
|
|
||||||
# Note: This setting may be overridden by database settings.
|
# Note: This setting may be overridden by database settings.
|
||||||
TOWER_URL_BASE = "https://towerhost"
|
TOWER_URL_BASE = ""
|
||||||
|
|
||||||
TOWER_SETTINGS_MANIFEST = {}
|
TOWER_SETTINGS_MANIFEST = {}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user