Enable approval-related email notifications to send properly

This commit is contained in:
beeankha 2019-11-27 16:20:56 -05:00
parent 1048baa98c
commit 0d92b2e703
2 changed files with 33 additions and 13 deletions

View File

@ -6,15 +6,23 @@ class CustomNotificationBase(object):
DEFAULT_MSG = "{{ job_friendly_name }} #{{ job.id }} '{{ job.name }}' {{ job.status }}: {{ url }}"
DEFAULT_BODY = "{{ job_friendly_name }} #{{ job.id }} had status {{ job.status }}, view details at {{ url }}\n\n{{ job_metadata }}"
DEFAULT_APPROVAL_RUNNING_MSG = "The approval node '{{ approval_node_name }}' needs review. This node can be viewed at: {{ workflow_url }}"
DEFAULT_APPROVAL_RUNNING_BODY = "'{{ approval_node_name }}' needs review. This approval node can be viewed at: {{ workflow_url }}\n\n{{ job_metadata }}"
DEFAULT_APPROVAL_APPROVED_MSG = "The approval node '{{ approval_node_name }}' was approved. {{ workflow_url }}"
DEFAULT_APPROVAL_APPROVED_BODY = "The approval node '{{ approval_node_name }}' was approved. {{ workflow_url }}\n\n{{ job_metadata }}"
DEFAULT_APPROVAL_TIMEOUT_MSG = "The approval node '{{ approval_node_name }}' has timed out. {{ workflow_url }}"
DEFAULT_APPROVAL_TIMEOUT_BODY = "The approval node '{{ approval_node_name }}' has timed out. {{ workflow_url }}\n\n{{ job_metadata }}"
DEFAULT_APPROVAL_DENIED_MSG = "The approval node '{{ approval_node_name }}' was denied. {{ workflow_url }}"
DEFAULT_APPROVAL_DENIED_BODY = "The approval node '{{ approval_node_name }}' was denied. {{ workflow_url }}\n\n{{ job_metadata }}"
default_messages = {"started": {"message": DEFAULT_MSG, "body": None},
"success": {"message": DEFAULT_MSG, "body": None},
"error": {"message": DEFAULT_MSG, "body": None},
"workflow_approval": {"running": {"message": 'The approval node "{{ approval_node_name }}" needs review. '
'This node can be viewed at: {{ workflow_url }}',
"body": None},
"approved": {"message": 'The approval node "{{ approval_node_name }}" was approved. {{ workflow_url }}',
"body": None},
"timed_out": {"message": 'The approval node "{{ approval_node_name }}" has timed out. {{ workflow_url }}',
"body": None},
"denied": {"message": 'The approval node "{{ approval_node_name }}" was denied. {{ workflow_url }}',
"body": None}}}
"workflow_approval": {"running": {"message": DEFAULT_APPROVAL_RUNNING_MSG, "body": None},
"approved": {"message": DEFAULT_APPROVAL_APPROVED_MSG, "body": None},
"timed_out": {"message": DEFAULT_APPROVAL_TIMEOUT_MSG, "body": None},
"denied": {"message": DEFAULT_APPROVAL_DENIED_MSG, "body": None}}}

View File

@ -8,6 +8,18 @@ from awx.main.notifications.custom_notification_base import CustomNotificationBa
DEFAULT_MSG = CustomNotificationBase.DEFAULT_MSG
DEFAULT_BODY = CustomNotificationBase.DEFAULT_BODY
DEFAULT_APPROVAL_RUNNING_MSG = CustomNotificationBase.DEFAULT_APPROVAL_RUNNING_MSG
DEFAULT_APPROVAL_RUNNING_BODY = CustomNotificationBase.DEFAULT_APPROVAL_RUNNING_BODY
DEFAULT_APPROVAL_APPROVED_MSG = CustomNotificationBase.DEFAULT_APPROVAL_APPROVED_MSG
DEFAULT_APPROVAL_APPROVED_BODY = CustomNotificationBase.DEFAULT_APPROVAL_APPROVED_BODY
DEFAULT_APPROVAL_TIMEOUT_MSG = CustomNotificationBase.DEFAULT_APPROVAL_TIMEOUT_MSG
DEFAULT_APPROVAL_TIMEOUT_BODY = CustomNotificationBase.DEFAULT_APPROVAL_TIMEOUT_BODY
DEFAULT_APPROVAL_DENIED_MSG = CustomNotificationBase.DEFAULT_APPROVAL_DENIED_MSG
DEFAULT_APPROVAL_DENIED_BODY = CustomNotificationBase.DEFAULT_APPROVAL_DENIED_BODY
class CustomEmailBackend(EmailBackend, CustomNotificationBase):
@ -26,10 +38,10 @@ class CustomEmailBackend(EmailBackend, CustomNotificationBase):
default_messages = {"started": {"message": DEFAULT_MSG, "body": DEFAULT_BODY},
"success": {"message": DEFAULT_MSG, "body": DEFAULT_BODY},
"error": {"message": DEFAULT_MSG, "body": DEFAULT_BODY},
"workflow_approval": {"running": {"message": DEFAULT_MSG, "body": DEFAULT_BODY},
"approved": {"message": DEFAULT_MSG, "body": DEFAULT_BODY},
"timed_out": {"message": DEFAULT_MSG, "body": DEFAULT_BODY},
"denied": {"message": DEFAULT_MSG, "body": DEFAULT_BODY}}}
"workflow_approval": {"running": {"message": DEFAULT_APPROVAL_RUNNING_MSG, "body": DEFAULT_APPROVAL_RUNNING_BODY},
"approved": {"message": DEFAULT_APPROVAL_APPROVED_MSG, "body": DEFAULT_APPROVAL_APPROVED_BODY},
"timed_out": {"message": DEFAULT_APPROVAL_TIMEOUT_MSG, "body": DEFAULT_APPROVAL_TIMEOUT_BODY},
"denied": {"message": DEFAULT_APPROVAL_DENIED_MSG, "body": DEFAULT_APPROVAL_DENIED_BODY}}}
def format_body(self, body):
# leave body unchanged (expect a string)