mirror of
https://github.com/ansible/awx.git
synced 2026-03-21 10:57:36 -02:30
get logging test endpoint to work again
The handler and formatter classes are expecting an object and the previous method passed a dict, so this change converts the data into a mock settings object.
This commit is contained in:
@@ -152,7 +152,12 @@ class SettingLoggingTest(GenericAPIView):
|
|||||||
serializer = self.get_serializer(obj, data=request.data)
|
serializer = self.get_serializer(obj, data=request.data)
|
||||||
serializer.is_valid(raise_exception=True)
|
serializer.is_valid(raise_exception=True)
|
||||||
try:
|
try:
|
||||||
BaseHTTPSHandler.perform_test(serializer.validated_data)
|
class MockSettings:
|
||||||
|
pass
|
||||||
|
mock_settings = MockSettings()
|
||||||
|
for k, v in serializer.validated_data.items():
|
||||||
|
setattr(mock_settings, k, v)
|
||||||
|
BaseHTTPSHandler.perform_test(mock_settings)
|
||||||
except LoggingConnectivityException as e:
|
except LoggingConnectivityException as e:
|
||||||
return Response({'error': str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
return Response({'error': str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||||
return Response(status=status.HTTP_200_OK)
|
return Response(status=status.HTTP_200_OK)
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
# All Rights Reserved.
|
# All Rights Reserved.
|
||||||
|
|
||||||
# Python
|
# Python
|
||||||
from collections import OrderedDict
|
|
||||||
import pytest
|
import pytest
|
||||||
import os
|
import os
|
||||||
|
|
||||||
@@ -209,26 +208,18 @@ def test_logging_aggregrator_connection_test_bad_request(get, post, admin, key):
|
|||||||
def test_logging_aggregrator_connection_test_valid(mocker, get, post, admin):
|
def test_logging_aggregrator_connection_test_valid(mocker, get, post, admin):
|
||||||
with mock.patch.object(BaseHTTPSHandler, 'perform_test') as perform_test:
|
with mock.patch.object(BaseHTTPSHandler, 'perform_test') as perform_test:
|
||||||
url = reverse('api:setting_logging_test')
|
url = reverse('api:setting_logging_test')
|
||||||
post(url, {
|
user_data = {
|
||||||
'LOG_AGGREGATOR_TYPE': 'logstash',
|
'LOG_AGGREGATOR_TYPE': 'logstash',
|
||||||
'LOG_AGGREGATOR_HOST': 'localhost',
|
'LOG_AGGREGATOR_HOST': 'localhost',
|
||||||
'LOG_AGGREGATOR_PORT': 8080,
|
'LOG_AGGREGATOR_PORT': 8080,
|
||||||
'LOG_AGGREGATOR_USERNAME': 'logger',
|
'LOG_AGGREGATOR_USERNAME': 'logger',
|
||||||
'LOG_AGGREGATOR_PASSWORD': 'mcstash'
|
'LOG_AGGREGATOR_PASSWORD': 'mcstash'
|
||||||
}, user=admin, expect=200)
|
}
|
||||||
perform_test.assert_called_with(OrderedDict([
|
post(url, user_data, user=admin, expect=200)
|
||||||
('LOG_AGGREGATOR_HOST', u'localhost'),
|
create_settings = perform_test.call_args[0][0]
|
||||||
('LOG_AGGREGATOR_PORT', 8080),
|
for k, v in user_data.items():
|
||||||
('LOG_AGGREGATOR_TYPE', 'logstash'),
|
assert hasattr(create_settings, k)
|
||||||
('LOG_AGGREGATOR_USERNAME', 'logger'),
|
assert getattr(create_settings, k) == v
|
||||||
('LOG_AGGREGATOR_PASSWORD', 'mcstash'),
|
|
||||||
('LOG_AGGREGATOR_LOGGERS', ['awx', 'activity_stream', 'job_events', 'system_tracking']),
|
|
||||||
('LOG_AGGREGATOR_INDIVIDUAL_FACTS', False),
|
|
||||||
('LOG_AGGREGATOR_ENABLED', False),
|
|
||||||
('LOG_AGGREGATOR_TOWER_UUID', ''),
|
|
||||||
('LOG_AGGREGATOR_PROTOCOL', 'https'),
|
|
||||||
('LOG_AGGREGATOR_TCP_TIMEOUT', 5),
|
|
||||||
]))
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ class LogstashFormatter(LogstashFormatterVersion1):
|
|||||||
settings_module = kwargs.pop('settings_module', None)
|
settings_module = kwargs.pop('settings_module', None)
|
||||||
ret = super(LogstashFormatter, self).__init__(**kwargs)
|
ret = super(LogstashFormatter, self).__init__(**kwargs)
|
||||||
if settings_module:
|
if settings_module:
|
||||||
self.host_id = settings_module.CLUSTER_HOST_ID
|
self.host_id = getattr(settings_module, 'CLUSTER_HOST_ID', None)
|
||||||
if hasattr(settings_module, 'LOG_AGGREGATOR_TOWER_UUID'):
|
if hasattr(settings_module, 'LOG_AGGREGATOR_TOWER_UUID'):
|
||||||
self.tower_uuid = settings_module.LOG_AGGREGATOR_TOWER_UUID
|
self.tower_uuid = settings_module.LOG_AGGREGATOR_TOWER_UUID
|
||||||
self.message_type = getattr(settings_module, 'LOG_AGGREGATOR_TYPE', 'other')
|
self.message_type = getattr(settings_module, 'LOG_AGGREGATOR_TYPE', 'other')
|
||||||
|
|||||||
Reference in New Issue
Block a user