mirror of
https://github.com/ansible/awx.git
synced 2026-05-07 09:27:36 -02:30
Remove json serialization for notify validation (#14847)
* Remove json serialization for notify validation * Update serializers.py
This commit is contained in:
@@ -5177,16 +5177,21 @@ class NotificationTemplateSerializer(BaseSerializer):
|
|||||||
body = messages[event].get('body', {})
|
body = messages[event].get('body', {})
|
||||||
if body:
|
if body:
|
||||||
try:
|
try:
|
||||||
rendered_body = (
|
sandbox.ImmutableSandboxedEnvironment(undefined=DescriptiveUndefined).from_string(body).render(JobNotificationMixin.context_stub())
|
||||||
sandbox.ImmutableSandboxedEnvironment(undefined=DescriptiveUndefined).from_string(body).render(JobNotificationMixin.context_stub())
|
|
||||||
)
|
# https://github.com/ansible/awx/issues/14410
|
||||||
potential_body = json.loads(rendered_body)
|
|
||||||
if not isinstance(potential_body, dict):
|
# When rendering something such as "{{ job.id }}"
|
||||||
error_list.append(
|
# the return type is not a dict, unlike "{{ job_metadata }}" which is a dict
|
||||||
_("Webhook body for '{}' should be a json dictionary. Found type '{}'.".format(event, type(potential_body).__name__))
|
|
||||||
)
|
# potential_body = json.loads(rendered_body)
|
||||||
except json.JSONDecodeError as exc:
|
|
||||||
error_list.append(_("Webhook body for '{}' is not a valid json dictionary ({}).".format(event, exc)))
|
# if not isinstance(potential_body, dict):
|
||||||
|
# error_list.append(
|
||||||
|
# _("Webhook body for '{}' should be a json dictionary. Found type '{}'.".format(event, type(potential_body).__name__))
|
||||||
|
# )
|
||||||
|
except Exception as exc:
|
||||||
|
error_list.append(_("Webhook body for '{}' is not valid. The following gave an error ({}).".format(event, exc)))
|
||||||
|
|
||||||
if error_list:
|
if error_list:
|
||||||
raise serializers.ValidationError(error_list)
|
raise serializers.ValidationError(error_list)
|
||||||
|
|||||||
Reference in New Issue
Block a user