diff --git a/awx/conf/views.py b/awx/conf/views.py index 107910b2b3..18f8a6d2d5 100644 --- a/awx/conf/views.py +++ b/awx/conf/views.py @@ -10,6 +10,7 @@ import socket from socket import SHUT_RDWR # Django +from django.db import connection from django.conf import settings from django.http import Http404 from django.utils.translation import ugettext_lazy as _ @@ -130,7 +131,8 @@ class SettingSingletonDetail(RetrieveUpdateDestroyAPIView): setting.save(update_fields=['value']) settings_change_list.append(key) if settings_change_list: - handle_setting_changes.delay(settings_change_list) + connection.on_commit(lambda: handle_setting_changes.delay(settings_change_list)) + def destroy(self, request, *args, **kwargs): instance = self.get_object() @@ -145,7 +147,7 @@ class SettingSingletonDetail(RetrieveUpdateDestroyAPIView): setting.delete() settings_change_list.append(setting.key) if settings_change_list: - handle_setting_changes.delay(settings_change_list) + connection.on_commit(lambda: handle_setting_changes.delay(settings_change_list)) # When TOWER_URL_BASE is deleted from the API, reset it to the hostname # used to make the request as a default. diff --git a/awx/main/tasks.py b/awx/main/tasks.py index 26e73f4d6e..fd2ecb121b 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -288,7 +288,7 @@ def handle_setting_changes(setting_keys): setting.startswith('LOG_AGGREGATOR') for setting in setting_keys ]): - connection.on_commit(reconfigure_rsyslog) + reconfigure_rsyslog() @task(queue='tower_broadcast_all')