mirror of
https://github.com/ansible/awx.git
synced 2026-05-10 02:47:36 -02:30
Merge branch 'devel' of github.com:ansible/ansible-tower into credential-api
This commit is contained in:
@@ -2124,6 +2124,10 @@ class NotifierSerializer(BaseSerializer):
|
|||||||
incorrect_type_fields = []
|
incorrect_type_fields = []
|
||||||
if 'notification_configuration' not in attrs:
|
if 'notification_configuration' not in attrs:
|
||||||
return attrs
|
return attrs
|
||||||
|
if self.context['view'].kwargs:
|
||||||
|
object_actual = self.context['view'].get_object()
|
||||||
|
else:
|
||||||
|
object_actual = None
|
||||||
for field in notification_class.init_parameters:
|
for field in notification_class.init_parameters:
|
||||||
if field not in attrs['notification_configuration']:
|
if field not in attrs['notification_configuration']:
|
||||||
missing_fields.append(field)
|
missing_fields.append(field)
|
||||||
@@ -2134,8 +2138,8 @@ class NotifierSerializer(BaseSerializer):
|
|||||||
if not type(field_val) in expected_types:
|
if not type(field_val) in expected_types:
|
||||||
incorrect_type_fields.append((field, field_type))
|
incorrect_type_fields.append((field, field_type))
|
||||||
continue
|
continue
|
||||||
if field_type == "password" and field_val.startswith('$encrypted$'):
|
if field_type == "password" and field_val == "$encrypted$" and object_actual is not None:
|
||||||
missing_fields.append(field)
|
attrs['notification_configuration'][field] = object_actual.notification_configuration[field]
|
||||||
error_list = []
|
error_list = []
|
||||||
if missing_fields:
|
if missing_fields:
|
||||||
error_list.append("Missing required fields for Notification Configuration: {}".format(missing_fields))
|
error_list.append("Missing required fields for Notification Configuration: {}".format(missing_fields))
|
||||||
|
|||||||
@@ -286,7 +286,8 @@ v1_urls = patterns('awx.api.views',
|
|||||||
url(r'^me/$', 'user_me_list'),
|
url(r'^me/$', 'user_me_list'),
|
||||||
url(r'^dashboard/$', 'dashboard_view'),
|
url(r'^dashboard/$', 'dashboard_view'),
|
||||||
url(r'^dashboard/graphs/jobs/$','dashboard_jobs_graph_view'),
|
url(r'^dashboard/graphs/jobs/$','dashboard_jobs_graph_view'),
|
||||||
url(r'^settings/', include(settings_urls)),
|
# TODO: Uncomment aftger 3.0 when we bring database settings endpoints back
|
||||||
|
# url(r'^settings/', include(settings_urls)),
|
||||||
url(r'^schedules/', include(schedule_urls)),
|
url(r'^schedules/', include(schedule_urls)),
|
||||||
url(r'^organizations/', include(organization_urls)),
|
url(r'^organizations/', include(organization_urls)),
|
||||||
url(r'^users/', include(user_urls)),
|
url(r'^users/', include(user_urls)),
|
||||||
|
|||||||
@@ -112,7 +112,8 @@ class ApiV1RootView(APIView):
|
|||||||
data['authtoken'] = reverse('api:auth_token_view')
|
data['authtoken'] = reverse('api:auth_token_view')
|
||||||
data['ping'] = reverse('api:api_v1_ping_view')
|
data['ping'] = reverse('api:api_v1_ping_view')
|
||||||
data['config'] = reverse('api:api_v1_config_view')
|
data['config'] = reverse('api:api_v1_config_view')
|
||||||
data['settings'] = reverse('api:settings_list')
|
# TODO: Uncomment after 3.0 when we bring database settings endpoints back
|
||||||
|
# data['settings'] = reverse('api:settings_list')
|
||||||
data['me'] = reverse('api:user_me_list')
|
data['me'] = reverse('api:user_me_list')
|
||||||
data['dashboard'] = reverse('api:dashboard_view')
|
data['dashboard'] = reverse('api:dashboard_view')
|
||||||
data['organizations'] = reverse('api:organization_list')
|
data['organizations'] = reverse('api:organization_list')
|
||||||
|
|||||||
@@ -68,6 +68,8 @@ class Notifier(CommonModel):
|
|||||||
update_fields = kwargs.get('update_fields', [])
|
update_fields = kwargs.get('update_fields', [])
|
||||||
for field in filter(lambda x: self.notification_class.init_parameters[x]['type'] == "password",
|
for field in filter(lambda x: self.notification_class.init_parameters[x]['type'] == "password",
|
||||||
self.notification_class.init_parameters):
|
self.notification_class.init_parameters):
|
||||||
|
if self.notification_configuration[field].startswith("$encrypted$"):
|
||||||
|
continue
|
||||||
if new_instance:
|
if new_instance:
|
||||||
value = self.notification_configuration[field]
|
value = self.notification_configuration[field]
|
||||||
setattr(self, '_saved_{}_{}'.format("config", field), value)
|
setattr(self, '_saved_{}_{}'.format("config", field), value)
|
||||||
@@ -84,7 +86,6 @@ class Notifier(CommonModel):
|
|||||||
self.notification_class.init_parameters):
|
self.notification_class.init_parameters):
|
||||||
saved_value = getattr(self, '_saved_{}_{}'.format("config", field), '')
|
saved_value = getattr(self, '_saved_{}_{}'.format("config", field), '')
|
||||||
self.notification_configuration[field] = saved_value
|
self.notification_configuration[field] = saved_value
|
||||||
#setattr(self.notification_configuration, field, saved_value)
|
|
||||||
if 'notification_configuration' not in update_fields:
|
if 'notification_configuration' not in update_fields:
|
||||||
update_fields.append('notification_configuration')
|
update_fields.append('notification_configuration')
|
||||||
self.save(update_fields=update_fields)
|
self.save(update_fields=update_fields)
|
||||||
|
|||||||
@@ -46,7 +46,8 @@ TEST_TOWER_SETTINGS_MANIFEST = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override_settings(TOWER_SETTINGS_MANIFEST=TEST_TOWER_SETTINGS_MANIFEST)
|
@override_settings(TOWER_SETTINGS_MANIFEST=TEST_TOWER_SETTINGS_MANIFEST)
|
||||||
class SettingsTest(BaseTest):
|
@pytest.mark.skip(reason="Settings deferred to 3.1")
|
||||||
|
class SettingsPlaceholder(BaseTest):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(SettingsTest, self).setUp()
|
super(SettingsTest, self).setUp()
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ class TestApiV1RootView:
|
|||||||
'authtoken',
|
'authtoken',
|
||||||
'ping',
|
'ping',
|
||||||
'config',
|
'config',
|
||||||
'settings',
|
#'settings',
|
||||||
'me',
|
'me',
|
||||||
'dashboard',
|
'dashboard',
|
||||||
'organizations',
|
'organizations',
|
||||||
|
|||||||
Reference in New Issue
Block a user