From c9ac805eede72869775d67c4cabb2add5651f043 Mon Sep 17 00:00:00 2001 From: beeankha Date: Wed, 20 Mar 2019 16:17:48 -0400 Subject: [PATCH 1/3] [WIP] Provide Default Email Timeout Value --- awx/main/notifications/email_backend.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/awx/main/notifications/email_backend.py b/awx/main/notifications/email_backend.py index 6339519115..2986fa7e61 100644 --- a/awx/main/notifications/email_backend.py +++ b/awx/main/notifications/email_backend.py @@ -22,6 +22,14 @@ class CustomEmailBackend(EmailBackend): recipient_parameter = "recipients" sender_parameter = "sender" + def __init__(self, timeout=None, **kwargs): + self.timeout = timeout + if timeout is None: + self.timeout == 30 + if not (1 <= timeout <= 120): + raise ValueError("Email timeout range needs to be between 1 and 120 seconds") + return super(CustomEmailBackend, self).__init__(timeout, **kwargs) + def format_body(self, body): if "body" in body: body_actual = body['body'] From 3e13eff7f45dc6f03e63b3d05e205e4874673461 Mon Sep 17 00:00:00 2001 From: beeankha Date: Thu, 21 Mar 2019 15:22:34 -0400 Subject: [PATCH 2/3] Change serializer to take in init paramdefault value --- awx/api/serializers.py | 9 ++++++--- awx/main/notifications/email_backend.py | 9 +-------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index ca454a0b1e..4decf529cf 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -4618,12 +4618,15 @@ class NotificationTemplateSerializer(BaseSerializer): object_actual = self.context['view'].get_object() else: object_actual = None - for field in notification_class.init_parameters: + for field, params in notification_class.init_parameters.items(): if field not in attrs['notification_configuration']: - missing_fields.append(field) + if 'default' in params: + attrs['notification_configuration'][field] = params['default'] + else: + missing_fields.append(field) continue field_val = attrs['notification_configuration'][field] - field_type = notification_class.init_parameters[field]['type'] + field_type = params['type'] expected_types = self.type_map[field_type] if not type(field_val) in expected_types: incorrect_type_fields.append((field, field_type)) diff --git a/awx/main/notifications/email_backend.py b/awx/main/notifications/email_backend.py index 2986fa7e61..1b30b344bb 100644 --- a/awx/main/notifications/email_backend.py +++ b/awx/main/notifications/email_backend.py @@ -18,17 +18,10 @@ class CustomEmailBackend(EmailBackend): "use_ssl": {"label": "Use SSL", "type": "bool"}, "sender": {"label": "Sender Email", "type": "string"}, "recipients": {"label": "Recipient List", "type": "list"}, - "timeout": {"label": "Timeout", "type": "int"}} + "timeout": {"label": "Timeout", "type": "int", "default": 30}} recipient_parameter = "recipients" sender_parameter = "sender" - def __init__(self, timeout=None, **kwargs): - self.timeout = timeout - if timeout is None: - self.timeout == 30 - if not (1 <= timeout <= 120): - raise ValueError("Email timeout range needs to be between 1 and 120 seconds") - return super(CustomEmailBackend, self).__init__(timeout, **kwargs) def format_body(self, body): if "body" in body: From d7fc3f53b8f608c6e2a987c8d27ea5cc28cd05e6 Mon Sep 17 00:00:00 2001 From: beeankha Date: Thu, 21 Mar 2019 16:14:56 -0400 Subject: [PATCH 3/3] Update indentation --- awx/api/serializers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 4decf529cf..794ee938f6 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -4624,7 +4624,7 @@ class NotificationTemplateSerializer(BaseSerializer): attrs['notification_configuration'][field] = params['default'] else: missing_fields.append(field) - continue + continue field_val = attrs['notification_configuration'][field] field_type = params['type'] expected_types = self.type_map[field_type]