mirror of
https://github.com/ansible/awx.git
synced 2026-03-02 17:28:51 -03:30
Removing references to 'any' state notifications
This commit is contained in:
@@ -1246,7 +1246,6 @@ class OrganizationSerializer(BaseSerializer):
|
|||||||
applications = self.reverse('api:organization_applications_list', kwargs={'pk': obj.pk}),
|
applications = self.reverse('api:organization_applications_list', kwargs={'pk': obj.pk}),
|
||||||
activity_stream = self.reverse('api:organization_activity_stream_list', kwargs={'pk': obj.pk}),
|
activity_stream = self.reverse('api:organization_activity_stream_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates = self.reverse('api:organization_notification_templates_list', kwargs={'pk': obj.pk}),
|
notification_templates = self.reverse('api:organization_notification_templates_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_any = self.reverse('api:organization_notification_templates_any_list', kwargs={'pk': obj.pk}),
|
|
||||||
notification_templates_started = self.reverse('api:organization_notification_templates_started_list', kwargs={'pk': obj.pk}),
|
notification_templates_started = self.reverse('api:organization_notification_templates_started_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_success = self.reverse('api:organization_notification_templates_success_list', kwargs={'pk': obj.pk}),
|
notification_templates_success = self.reverse('api:organization_notification_templates_success_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_error = self.reverse('api:organization_notification_templates_error_list', kwargs={'pk': obj.pk}),
|
notification_templates_error = self.reverse('api:organization_notification_templates_error_list', kwargs={'pk': obj.pk}),
|
||||||
@@ -1353,7 +1352,6 @@ class ProjectSerializer(UnifiedJobTemplateSerializer, ProjectOptionsSerializer):
|
|||||||
scm_inventory_sources = self.reverse('api:project_scm_inventory_sources', kwargs={'pk': obj.pk}),
|
scm_inventory_sources = self.reverse('api:project_scm_inventory_sources', kwargs={'pk': obj.pk}),
|
||||||
schedules = self.reverse('api:project_schedules_list', kwargs={'pk': obj.pk}),
|
schedules = self.reverse('api:project_schedules_list', kwargs={'pk': obj.pk}),
|
||||||
activity_stream = self.reverse('api:project_activity_stream_list', kwargs={'pk': obj.pk}),
|
activity_stream = self.reverse('api:project_activity_stream_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_any = self.reverse('api:project_notification_templates_any_list', kwargs={'pk': obj.pk}),
|
|
||||||
notification_templates_started = self.reverse('api:project_notification_templates_started_list', kwargs={'pk': obj.pk}),
|
notification_templates_started = self.reverse('api:project_notification_templates_started_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_success = self.reverse('api:project_notification_templates_success_list', kwargs={'pk': obj.pk}),
|
notification_templates_success = self.reverse('api:project_notification_templates_success_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_error = self.reverse('api:project_notification_templates_error_list', kwargs={'pk': obj.pk}),
|
notification_templates_error = self.reverse('api:project_notification_templates_error_list', kwargs={'pk': obj.pk}),
|
||||||
@@ -1972,7 +1970,6 @@ class InventorySourceSerializer(UnifiedJobTemplateSerializer, InventorySourceOpt
|
|||||||
activity_stream = self.reverse('api:inventory_source_activity_stream_list', kwargs={'pk': obj.pk}),
|
activity_stream = self.reverse('api:inventory_source_activity_stream_list', kwargs={'pk': obj.pk}),
|
||||||
hosts = self.reverse('api:inventory_source_hosts_list', kwargs={'pk': obj.pk}),
|
hosts = self.reverse('api:inventory_source_hosts_list', kwargs={'pk': obj.pk}),
|
||||||
groups = self.reverse('api:inventory_source_groups_list', kwargs={'pk': obj.pk}),
|
groups = self.reverse('api:inventory_source_groups_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_any = self.reverse('api:inventory_source_notification_templates_any_list', kwargs={'pk': obj.pk}),
|
|
||||||
notification_templates_started = self.reverse('api:inventory_source_notification_templates_started_list', kwargs={'pk': obj.pk}),
|
notification_templates_started = self.reverse('api:inventory_source_notification_templates_started_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_success = self.reverse('api:inventory_source_notification_templates_success_list', kwargs={'pk': obj.pk}),
|
notification_templates_success = self.reverse('api:inventory_source_notification_templates_success_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_error = self.reverse('api:inventory_source_notification_templates_error_list', kwargs={'pk': obj.pk}),
|
notification_templates_error = self.reverse('api:inventory_source_notification_templates_error_list', kwargs={'pk': obj.pk}),
|
||||||
@@ -2795,7 +2792,6 @@ class JobTemplateSerializer(JobTemplateMixin, UnifiedJobTemplateSerializer, JobO
|
|||||||
schedules = self.reverse('api:job_template_schedules_list', kwargs={'pk': obj.pk}),
|
schedules = self.reverse('api:job_template_schedules_list', kwargs={'pk': obj.pk}),
|
||||||
activity_stream = self.reverse('api:job_template_activity_stream_list', kwargs={'pk': obj.pk}),
|
activity_stream = self.reverse('api:job_template_activity_stream_list', kwargs={'pk': obj.pk}),
|
||||||
launch = self.reverse('api:job_template_launch', kwargs={'pk': obj.pk}),
|
launch = self.reverse('api:job_template_launch', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_any = self.reverse('api:job_template_notification_templates_any_list', kwargs={'pk': obj.pk}),
|
|
||||||
notification_templates_started = self.reverse('api:job_template_notification_templates_started_list', kwargs={'pk': obj.pk}),
|
notification_templates_started = self.reverse('api:job_template_notification_templates_started_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_success = self.reverse('api:job_template_notification_templates_success_list', kwargs={'pk': obj.pk}),
|
notification_templates_success = self.reverse('api:job_template_notification_templates_success_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_error = self.reverse('api:job_template_notification_templates_error_list', kwargs={'pk': obj.pk}),
|
notification_templates_error = self.reverse('api:job_template_notification_templates_error_list', kwargs={'pk': obj.pk}),
|
||||||
@@ -3208,7 +3204,6 @@ class SystemJobTemplateSerializer(UnifiedJobTemplateSerializer):
|
|||||||
jobs = self.reverse('api:system_job_template_jobs_list', kwargs={'pk': obj.pk}),
|
jobs = self.reverse('api:system_job_template_jobs_list', kwargs={'pk': obj.pk}),
|
||||||
schedules = self.reverse('api:system_job_template_schedules_list', kwargs={'pk': obj.pk}),
|
schedules = self.reverse('api:system_job_template_schedules_list', kwargs={'pk': obj.pk}),
|
||||||
launch = self.reverse('api:system_job_template_launch', kwargs={'pk': obj.pk}),
|
launch = self.reverse('api:system_job_template_launch', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_any = self.reverse('api:system_job_template_notification_templates_any_list', kwargs={'pk': obj.pk}),
|
|
||||||
notification_templates_started = self.reverse('api:system_job_template_notification_templates_started_list', kwargs={'pk': obj.pk}),
|
notification_templates_started = self.reverse('api:system_job_template_notification_templates_started_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_success = self.reverse('api:system_job_template_notification_templates_success_list', kwargs={'pk': obj.pk}),
|
notification_templates_success = self.reverse('api:system_job_template_notification_templates_success_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_error = self.reverse('api:system_job_template_notification_templates_error_list', kwargs={'pk': obj.pk}),
|
notification_templates_error = self.reverse('api:system_job_template_notification_templates_error_list', kwargs={'pk': obj.pk}),
|
||||||
@@ -3276,7 +3271,6 @@ class WorkflowJobTemplateSerializer(JobTemplateMixin, LabelsListMixin, UnifiedJo
|
|||||||
workflow_nodes = self.reverse('api:workflow_job_template_workflow_nodes_list', kwargs={'pk': obj.pk}),
|
workflow_nodes = self.reverse('api:workflow_job_template_workflow_nodes_list', kwargs={'pk': obj.pk}),
|
||||||
labels = self.reverse('api:workflow_job_template_label_list', kwargs={'pk': obj.pk}),
|
labels = self.reverse('api:workflow_job_template_label_list', kwargs={'pk': obj.pk}),
|
||||||
activity_stream = self.reverse('api:workflow_job_template_activity_stream_list', kwargs={'pk': obj.pk}),
|
activity_stream = self.reverse('api:workflow_job_template_activity_stream_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_any = self.reverse('api:workflow_job_template_notification_templates_any_list', kwargs={'pk': obj.pk}),
|
|
||||||
notification_templates_started = self.reverse('api:workflow_job_template_notification_templates_started_list', kwargs={'pk': obj.pk}),
|
notification_templates_started = self.reverse('api:workflow_job_template_notification_templates_started_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_success = self.reverse('api:workflow_job_template_notification_templates_success_list', kwargs={'pk': obj.pk}),
|
notification_templates_success = self.reverse('api:workflow_job_template_notification_templates_success_list', kwargs={'pk': obj.pk}),
|
||||||
notification_templates_error = self.reverse('api:workflow_job_template_notification_templates_error_list', kwargs={'pk': obj.pk}),
|
notification_templates_error = self.reverse('api:workflow_job_template_notification_templates_error_list', kwargs={'pk': obj.pk}),
|
||||||
|
|||||||
@@ -30,8 +30,6 @@ urls = [
|
|||||||
url(r'^(?P<pk>[0-9]+)/credentials/$', InventorySourceCredentialsList.as_view(), name='inventory_source_credentials_list'),
|
url(r'^(?P<pk>[0-9]+)/credentials/$', InventorySourceCredentialsList.as_view(), name='inventory_source_credentials_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/groups/$', InventorySourceGroupsList.as_view(), name='inventory_source_groups_list'),
|
url(r'^(?P<pk>[0-9]+)/groups/$', InventorySourceGroupsList.as_view(), name='inventory_source_groups_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/hosts/$', InventorySourceHostsList.as_view(), name='inventory_source_hosts_list'),
|
url(r'^(?P<pk>[0-9]+)/hosts/$', InventorySourceHostsList.as_view(), name='inventory_source_hosts_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_any/$', InventorySourceNotificationTemplatesAnyList.as_view(),
|
|
||||||
name='inventory_source_notification_templates_any_list'),
|
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_started/$', InventorySourceNotificationTemplatesStartedList.as_view(),
|
url(r'^(?P<pk>[0-9]+)/notification_templates_started/$', InventorySourceNotificationTemplatesStartedList.as_view(),
|
||||||
name='inventory_source_notification_templates_started_list'),
|
name='inventory_source_notification_templates_started_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', InventorySourceNotificationTemplatesErrorList.as_view(),
|
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', InventorySourceNotificationTemplatesErrorList.as_view(),
|
||||||
|
|||||||
@@ -35,8 +35,6 @@ urls = [
|
|||||||
url(r'^(?P<pk>[0-9]+)/schedules/$', JobTemplateSchedulesList.as_view(), name='job_template_schedules_list'),
|
url(r'^(?P<pk>[0-9]+)/schedules/$', JobTemplateSchedulesList.as_view(), name='job_template_schedules_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/survey_spec/$', JobTemplateSurveySpec.as_view(), name='job_template_survey_spec'),
|
url(r'^(?P<pk>[0-9]+)/survey_spec/$', JobTemplateSurveySpec.as_view(), name='job_template_survey_spec'),
|
||||||
url(r'^(?P<pk>[0-9]+)/activity_stream/$', JobTemplateActivityStreamList.as_view(), name='job_template_activity_stream_list'),
|
url(r'^(?P<pk>[0-9]+)/activity_stream/$', JobTemplateActivityStreamList.as_view(), name='job_template_activity_stream_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_any/$', JobTemplateNotificationTemplatesAnyList.as_view(),
|
|
||||||
name='job_template_notification_templates_any_list'),
|
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_started/$', JobTemplateNotificationTemplatesStartedList.as_view(),
|
url(r'^(?P<pk>[0-9]+)/notification_templates_started/$', JobTemplateNotificationTemplatesStartedList.as_view(),
|
||||||
name='job_template_notification_templates_started_list'),
|
name='job_template_notification_templates_started_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', JobTemplateNotificationTemplatesErrorList.as_view(),
|
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', JobTemplateNotificationTemplatesErrorList.as_view(),
|
||||||
|
|||||||
@@ -38,8 +38,6 @@ urls = [
|
|||||||
url(r'^(?P<pk>[0-9]+)/credentials/$', OrganizationCredentialList.as_view(), name='organization_credential_list'),
|
url(r'^(?P<pk>[0-9]+)/credentials/$', OrganizationCredentialList.as_view(), name='organization_credential_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/activity_stream/$', OrganizationActivityStreamList.as_view(), name='organization_activity_stream_list'),
|
url(r'^(?P<pk>[0-9]+)/activity_stream/$', OrganizationActivityStreamList.as_view(), name='organization_activity_stream_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates/$', OrganizationNotificationTemplatesList.as_view(), name='organization_notification_templates_list'),
|
url(r'^(?P<pk>[0-9]+)/notification_templates/$', OrganizationNotificationTemplatesList.as_view(), name='organization_notification_templates_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_any/$', OrganizationNotificationTemplatesAnyList.as_view(),
|
|
||||||
name='organization_notification_templates_any_list'),
|
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_started/$', OrganizationNotificationTemplatesStartedList.as_view(),
|
url(r'^(?P<pk>[0-9]+)/notification_templates_started/$', OrganizationNotificationTemplatesStartedList.as_view(),
|
||||||
name='organization_notification_templates_started_list'),
|
name='organization_notification_templates_started_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', OrganizationNotificationTemplatesErrorList.as_view(),
|
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', OrganizationNotificationTemplatesErrorList.as_view(),
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ urls = [
|
|||||||
url(r'^(?P<pk>[0-9]+)/project_updates/$', ProjectUpdatesList.as_view(), name='project_updates_list'),
|
url(r'^(?P<pk>[0-9]+)/project_updates/$', ProjectUpdatesList.as_view(), name='project_updates_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/activity_stream/$', ProjectActivityStreamList.as_view(), name='project_activity_stream_list'),
|
url(r'^(?P<pk>[0-9]+)/activity_stream/$', ProjectActivityStreamList.as_view(), name='project_activity_stream_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/schedules/$', ProjectSchedulesList.as_view(), name='project_schedules_list'),
|
url(r'^(?P<pk>[0-9]+)/schedules/$', ProjectSchedulesList.as_view(), name='project_schedules_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_any/$', ProjectNotificationTemplatesAnyList.as_view(), name='project_notification_templates_any_list'),
|
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', ProjectNotificationTemplatesErrorList.as_view(), name='project_notification_templates_error_list'),
|
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', ProjectNotificationTemplatesErrorList.as_view(), name='project_notification_templates_error_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_success/$', ProjectNotificationTemplatesSuccessList.as_view(),
|
url(r'^(?P<pk>[0-9]+)/notification_templates_success/$', ProjectNotificationTemplatesSuccessList.as_view(),
|
||||||
name='project_notification_templates_success_list'),
|
name='project_notification_templates_success_list'),
|
||||||
|
|||||||
@@ -22,8 +22,6 @@ urls = [
|
|||||||
url(r'^(?P<pk>[0-9]+)/launch/$', SystemJobTemplateLaunch.as_view(), name='system_job_template_launch'),
|
url(r'^(?P<pk>[0-9]+)/launch/$', SystemJobTemplateLaunch.as_view(), name='system_job_template_launch'),
|
||||||
url(r'^(?P<pk>[0-9]+)/jobs/$', SystemJobTemplateJobsList.as_view(), name='system_job_template_jobs_list'),
|
url(r'^(?P<pk>[0-9]+)/jobs/$', SystemJobTemplateJobsList.as_view(), name='system_job_template_jobs_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/schedules/$', SystemJobTemplateSchedulesList.as_view(), name='system_job_template_schedules_list'),
|
url(r'^(?P<pk>[0-9]+)/schedules/$', SystemJobTemplateSchedulesList.as_view(), name='system_job_template_schedules_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_any/$', SystemJobTemplateNotificationTemplatesAnyList.as_view(),
|
|
||||||
name='system_job_template_notification_templates_any_list'),
|
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_started/$', SystemJobTemplateNotificationTemplatesStartedList.as_view(),
|
url(r'^(?P<pk>[0-9]+)/notification_templates_started/$', SystemJobTemplateNotificationTemplatesStartedList.as_view(),
|
||||||
name='system_job_template_notification_templates_started_list'),
|
name='system_job_template_notification_templates_started_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', SystemJobTemplateNotificationTemplatesErrorList.as_view(),
|
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', SystemJobTemplateNotificationTemplatesErrorList.as_view(),
|
||||||
|
|||||||
@@ -33,8 +33,6 @@ urls = [
|
|||||||
url(r'^(?P<pk>[0-9]+)/survey_spec/$', WorkflowJobTemplateSurveySpec.as_view(), name='workflow_job_template_survey_spec'),
|
url(r'^(?P<pk>[0-9]+)/survey_spec/$', WorkflowJobTemplateSurveySpec.as_view(), name='workflow_job_template_survey_spec'),
|
||||||
url(r'^(?P<pk>[0-9]+)/workflow_nodes/$', WorkflowJobTemplateWorkflowNodesList.as_view(), name='workflow_job_template_workflow_nodes_list'),
|
url(r'^(?P<pk>[0-9]+)/workflow_nodes/$', WorkflowJobTemplateWorkflowNodesList.as_view(), name='workflow_job_template_workflow_nodes_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/activity_stream/$', WorkflowJobTemplateActivityStreamList.as_view(), name='workflow_job_template_activity_stream_list'),
|
url(r'^(?P<pk>[0-9]+)/activity_stream/$', WorkflowJobTemplateActivityStreamList.as_view(), name='workflow_job_template_activity_stream_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_any/$', WorkflowJobTemplateNotificationTemplatesAnyList.as_view(),
|
|
||||||
name='workflow_job_template_notification_templates_any_list'),
|
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_started/$', WorkflowJobTemplateNotificationTemplatesStartedList.as_view(),
|
url(r'^(?P<pk>[0-9]+)/notification_templates_started/$', WorkflowJobTemplateNotificationTemplatesStartedList.as_view(),
|
||||||
name='workflow_job_template_notification_templates_started_list'),
|
name='workflow_job_template_notification_templates_started_list'),
|
||||||
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', WorkflowJobTemplateNotificationTemplatesErrorList.as_view(),
|
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', WorkflowJobTemplateNotificationTemplatesErrorList.as_view(),
|
||||||
|
|||||||
@@ -748,7 +748,6 @@ class ProjectNotificationTemplatesAnyList(SubListCreateAttachDetachAPIView):
|
|||||||
model = models.NotificationTemplate
|
model = models.NotificationTemplate
|
||||||
serializer_class = serializers.NotificationTemplateSerializer
|
serializer_class = serializers.NotificationTemplateSerializer
|
||||||
parent_model = models.Project
|
parent_model = models.Project
|
||||||
relationship = 'notification_templates_any'
|
|
||||||
|
|
||||||
|
|
||||||
class ProjectNotificationTemplatesStartedList(ProjectNotificationTemplatesAnyList):
|
class ProjectNotificationTemplatesStartedList(ProjectNotificationTemplatesAnyList):
|
||||||
@@ -2102,7 +2101,6 @@ class InventorySourceNotificationTemplatesAnyList(SubListCreateAttachDetachAPIVi
|
|||||||
model = models.NotificationTemplate
|
model = models.NotificationTemplate
|
||||||
serializer_class = serializers.NotificationTemplateSerializer
|
serializer_class = serializers.NotificationTemplateSerializer
|
||||||
parent_model = models.InventorySource
|
parent_model = models.InventorySource
|
||||||
relationship = 'notification_templates_any'
|
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
parent = self.get_parent_object()
|
parent = self.get_parent_object()
|
||||||
@@ -2631,7 +2629,6 @@ class JobTemplateNotificationTemplatesAnyList(SubListCreateAttachDetachAPIView):
|
|||||||
model = models.NotificationTemplate
|
model = models.NotificationTemplate
|
||||||
serializer_class = serializers.NotificationTemplateSerializer
|
serializer_class = serializers.NotificationTemplateSerializer
|
||||||
parent_model = models.JobTemplate
|
parent_model = models.JobTemplate
|
||||||
relationship = 'notification_templates_any'
|
|
||||||
|
|
||||||
|
|
||||||
class JobTemplateNotificationTemplatesStartedList(JobTemplateNotificationTemplatesAnyList):
|
class JobTemplateNotificationTemplatesStartedList(JobTemplateNotificationTemplatesAnyList):
|
||||||
@@ -3238,7 +3235,6 @@ class WorkflowJobTemplateNotificationTemplatesAnyList(SubListCreateAttachDetachA
|
|||||||
model = models.NotificationTemplate
|
model = models.NotificationTemplate
|
||||||
serializer_class = serializers.NotificationTemplateSerializer
|
serializer_class = serializers.NotificationTemplateSerializer
|
||||||
parent_model = models.WorkflowJobTemplate
|
parent_model = models.WorkflowJobTemplate
|
||||||
relationship = 'notification_templates_any'
|
|
||||||
|
|
||||||
|
|
||||||
class WorkflowJobTemplateNotificationTemplatesStartedList(WorkflowJobTemplateNotificationTemplatesAnyList):
|
class WorkflowJobTemplateNotificationTemplatesStartedList(WorkflowJobTemplateNotificationTemplatesAnyList):
|
||||||
@@ -3414,7 +3410,6 @@ class SystemJobTemplateNotificationTemplatesAnyList(SubListCreateAttachDetachAPI
|
|||||||
model = models.NotificationTemplate
|
model = models.NotificationTemplate
|
||||||
serializer_class = serializers.NotificationTemplateSerializer
|
serializer_class = serializers.NotificationTemplateSerializer
|
||||||
parent_model = models.SystemJobTemplate
|
parent_model = models.SystemJobTemplate
|
||||||
relationship = 'notification_templates_any'
|
|
||||||
|
|
||||||
|
|
||||||
class SystemJobTemplateNotificationTemplatesStartedList(SystemJobTemplateNotificationTemplatesAnyList):
|
class SystemJobTemplateNotificationTemplatesStartedList(SystemJobTemplateNotificationTemplatesAnyList):
|
||||||
|
|||||||
@@ -178,7 +178,6 @@ class OrganizationNotificationTemplatesAnyList(SubListCreateAttachDetachAPIView)
|
|||||||
model = NotificationTemplate
|
model = NotificationTemplate
|
||||||
serializer_class = NotificationTemplateSerializer
|
serializer_class = NotificationTemplateSerializer
|
||||||
parent_model = Organization
|
parent_model = Organization
|
||||||
relationship = 'notification_templates_any'
|
|
||||||
|
|
||||||
|
|
||||||
class OrganizationNotificationTemplatesStartedList(OrganizationNotificationTemplatesAnyList):
|
class OrganizationNotificationTemplatesStartedList(OrganizationNotificationTemplatesAnyList):
|
||||||
|
|||||||
@@ -22,4 +22,13 @@ class Migration(migrations.Migration):
|
|||||||
name='notification_templates_started',
|
name='notification_templates_started',
|
||||||
field=models.ManyToManyField(blank=True, related_name='unifiedjobtemplate_notification_templates_for_started', to='main.NotificationTemplate'),
|
field=models.ManyToManyField(blank=True, related_name='unifiedjobtemplate_notification_templates_for_started', to='main.NotificationTemplate'),
|
||||||
),
|
),
|
||||||
|
# migrations.RunPython() stuff goes in here
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='organization',
|
||||||
|
name='notification_templates_any',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='unifiedjobtemplate',
|
||||||
|
name='notification_templates_any',
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ class AdHocCommand(UnifiedJob, JobNotificationMixin):
|
|||||||
all_orgs.add(h.inventory.organization)
|
all_orgs.add(h.inventory.organization)
|
||||||
active_templates = dict(error=set(),
|
active_templates = dict(error=set(),
|
||||||
success=set(),
|
success=set(),
|
||||||
any=set())
|
started=set())
|
||||||
base_notification_templates = NotificationTemplate.objects
|
base_notification_templates = NotificationTemplate.objects
|
||||||
for org in all_orgs:
|
for org in all_orgs:
|
||||||
for templ in base_notification_templates.filter(organization_notification_templates_for_errors=org):
|
for templ in base_notification_templates.filter(organization_notification_templates_for_errors=org):
|
||||||
@@ -172,10 +172,7 @@ class AdHocCommand(UnifiedJob, JobNotificationMixin):
|
|||||||
active_templates['success'].add(templ)
|
active_templates['success'].add(templ)
|
||||||
for templ in base_notification_templates.filter(organization_notification_templates_for_started=org):
|
for templ in base_notification_templates.filter(organization_notification_templates_for_started=org):
|
||||||
active_templates['started'].add(templ)
|
active_templates['started'].add(templ)
|
||||||
for templ in base_notification_templates.filter(organization_notification_templates_for_any=org):
|
|
||||||
active_templates['any'].add(templ)
|
|
||||||
active_templates['error'] = list(active_templates['error'])
|
active_templates['error'] = list(active_templates['error'])
|
||||||
active_templates['any'] = list(active_templates['any'])
|
|
||||||
active_templates['success'] = list(active_templates['success'])
|
active_templates['success'] = list(active_templates['success'])
|
||||||
active_templates['started'] = list(active_templates['started'])
|
active_templates['started'] = list(active_templates['started'])
|
||||||
return active_templates
|
return active_templates
|
||||||
|
|||||||
@@ -392,13 +392,6 @@ class NotificationFieldsModel(BaseModel):
|
|||||||
related_name='%(class)s_notification_templates_for_started'
|
related_name='%(class)s_notification_templates_for_started'
|
||||||
)
|
)
|
||||||
|
|
||||||
notification_templates_any = models.ManyToManyField(
|
|
||||||
"NotificationTemplate",
|
|
||||||
blank=True,
|
|
||||||
related_name='%(class)s_notification_templates_for_any'
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def prevent_search(relation):
|
def prevent_search(relation):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -1623,8 +1623,6 @@ class InventorySource(UnifiedJobTemplate, InventorySourceOptions, CustomVirtualE
|
|||||||
.filter(unifiedjobtemplate_notification_templates_for_started__in=[self]))
|
.filter(unifiedjobtemplate_notification_templates_for_started__in=[self]))
|
||||||
success_notification_templates = list(base_notification_templates
|
success_notification_templates = list(base_notification_templates
|
||||||
.filter(unifiedjobtemplate_notification_templates_for_success__in=[self]))
|
.filter(unifiedjobtemplate_notification_templates_for_success__in=[self]))
|
||||||
any_notification_templates = list(base_notification_templates
|
|
||||||
.filter(unifiedjobtemplate_notification_templates_for_any__in=[self]))
|
|
||||||
if self.inventory.organization is not None:
|
if self.inventory.organization is not None:
|
||||||
error_notification_templates = set(error_notification_templates + list(base_notification_templates
|
error_notification_templates = set(error_notification_templates + list(base_notification_templates
|
||||||
.filter(organization_notification_templates_for_errors=self.inventory.organization)))
|
.filter(organization_notification_templates_for_errors=self.inventory.organization)))
|
||||||
@@ -1632,12 +1630,9 @@ class InventorySource(UnifiedJobTemplate, InventorySourceOptions, CustomVirtualE
|
|||||||
.filter(organization_notification_templates_for_started=self.inventory.organization)))
|
.filter(organization_notification_templates_for_started=self.inventory.organization)))
|
||||||
success_notification_templates = set(success_notification_templates + list(base_notification_templates
|
success_notification_templates = set(success_notification_templates + list(base_notification_templates
|
||||||
.filter(organization_notification_templates_for_success=self.inventory.organization)))
|
.filter(organization_notification_templates_for_success=self.inventory.organization)))
|
||||||
any_notification_templates = set(any_notification_templates + list(base_notification_templates
|
|
||||||
.filter(organization_notification_templates_for_any=self.inventory.organization)))
|
|
||||||
return dict(error=list(error_notification_templates),
|
return dict(error=list(error_notification_templates),
|
||||||
started=list(started_notification_templates),
|
started=list(started_notification_templates),
|
||||||
success=list(success_notification_templates),
|
success=list(success_notification_templates))
|
||||||
any=list(any_notification_templates))
|
|
||||||
|
|
||||||
def clean_source(self): # TODO: remove in 3.3
|
def clean_source(self): # TODO: remove in 3.3
|
||||||
source = self.source
|
source = self.source
|
||||||
|
|||||||
@@ -439,8 +439,6 @@ class JobTemplate(UnifiedJobTemplate, JobOptions, SurveyJobTemplateMixin, Resour
|
|||||||
unifiedjobtemplate_notification_templates_for_started__in=[self, self.project]))
|
unifiedjobtemplate_notification_templates_for_started__in=[self, self.project]))
|
||||||
success_notification_templates = list(base_notification_templates.filter(
|
success_notification_templates = list(base_notification_templates.filter(
|
||||||
unifiedjobtemplate_notification_templates_for_success__in=[self, self.project]))
|
unifiedjobtemplate_notification_templates_for_success__in=[self, self.project]))
|
||||||
any_notification_templates = list(base_notification_templates.filter(
|
|
||||||
unifiedjobtemplate_notification_templates_for_any__in=[self, self.project]))
|
|
||||||
# Get Organization NotificationTemplates
|
# Get Organization NotificationTemplates
|
||||||
if self.project is not None and self.project.organization is not None:
|
if self.project is not None and self.project.organization is not None:
|
||||||
error_notification_templates = set(error_notification_templates + list(base_notification_templates.filter(
|
error_notification_templates = set(error_notification_templates + list(base_notification_templates.filter(
|
||||||
@@ -449,12 +447,9 @@ class JobTemplate(UnifiedJobTemplate, JobOptions, SurveyJobTemplateMixin, Resour
|
|||||||
organization_notification_templates_for_started=self.project.organization)))
|
organization_notification_templates_for_started=self.project.organization)))
|
||||||
success_notification_templates = set(success_notification_templates + list(base_notification_templates.filter(
|
success_notification_templates = set(success_notification_templates + list(base_notification_templates.filter(
|
||||||
organization_notification_templates_for_success=self.project.organization)))
|
organization_notification_templates_for_success=self.project.organization)))
|
||||||
any_notification_templates = set(any_notification_templates + list(base_notification_templates.filter(
|
|
||||||
organization_notification_templates_for_any=self.project.organization)))
|
|
||||||
return dict(error=list(error_notification_templates),
|
return dict(error=list(error_notification_templates),
|
||||||
started=list(started_notification_templates),
|
started=list(started_notification_templates),
|
||||||
success=list(success_notification_templates),
|
success=list(success_notification_templates))
|
||||||
any=list(any_notification_templates))
|
|
||||||
|
|
||||||
'''
|
'''
|
||||||
RelatedJobsMixin
|
RelatedJobsMixin
|
||||||
@@ -1144,12 +1139,9 @@ class SystemJobTemplate(UnifiedJobTemplate, SystemJobOptions):
|
|||||||
.filter(unifiedjobtemplate_notification_templates_for_started__in=[self]))
|
.filter(unifiedjobtemplate_notification_templates_for_started__in=[self]))
|
||||||
success_notification_templates = list(base_notification_templates
|
success_notification_templates = list(base_notification_templates
|
||||||
.filter(unifiedjobtemplate_notification_templates_for_success__in=[self]))
|
.filter(unifiedjobtemplate_notification_templates_for_success__in=[self]))
|
||||||
any_notification_templates = list(base_notification_templates
|
|
||||||
.filter(unifiedjobtemplate_notification_templates_for_any__in=[self]))
|
|
||||||
return dict(error=list(error_notification_templates),
|
return dict(error=list(error_notification_templates),
|
||||||
started=list(started_notification_templates),
|
started=list(started_notification_templates),
|
||||||
success=list(success_notification_templates),
|
success=list(success_notification_templates))
|
||||||
any=list(any_notification_templates))
|
|
||||||
|
|
||||||
def _accept_or_ignore_job_kwargs(self, _exclude_errors=None, **kwargs):
|
def _accept_or_ignore_job_kwargs(self, _exclude_errors=None, **kwargs):
|
||||||
extra_data = kwargs.pop('extra_vars', {})
|
extra_data = kwargs.pop('extra_vars', {})
|
||||||
|
|||||||
@@ -235,18 +235,16 @@ class JobNotificationMixin(object):
|
|||||||
logger.warn("No notification template defined for emitting notification")
|
logger.warn("No notification template defined for emitting notification")
|
||||||
notification_templates = None
|
notification_templates = None
|
||||||
if notification_templates:
|
if notification_templates:
|
||||||
all_notification_templates = set()
|
if status_str == 'succeeded':
|
||||||
if status_str != 'running':
|
|
||||||
all_notification_templates.update(notification_templates.get('any', []))
|
|
||||||
notification_template_type = 'any'
|
|
||||||
elif status_str == 'succeeded':
|
|
||||||
notification_template_type = 'success'
|
notification_template_type = 'success'
|
||||||
elif status_str == 'running':
|
elif status_str == 'running':
|
||||||
notification_template_type = 'started'
|
notification_template_type = 'started'
|
||||||
else:
|
else:
|
||||||
notification_template_type = 'error'
|
notification_template_type = 'error'
|
||||||
all_notification_templates.update(notification_templates.get(notification_template_type, []))
|
all_notification_templates = set(notification_templates.get(notification_template_type, []))
|
||||||
if len(all_notification_templates):
|
if len(all_notification_templates):
|
||||||
|
# if status_str != 'running':
|
||||||
|
# all_notification_templates.update(notification_templates.get('any', []))
|
||||||
try:
|
try:
|
||||||
(notification_subject, notification_body) = getattr(self, 'build_notification_%s_message' % status_str)()
|
(notification_subject, notification_body) = getattr(self, 'build_notification_%s_message' % status_str)()
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
|
|||||||
@@ -415,8 +415,6 @@ class Project(UnifiedJobTemplate, ProjectOptions, ResourceMixin, CustomVirtualEn
|
|||||||
.filter(unifiedjobtemplate_notification_templates_for_started=self))
|
.filter(unifiedjobtemplate_notification_templates_for_started=self))
|
||||||
success_notification_templates = list(base_notification_templates
|
success_notification_templates = list(base_notification_templates
|
||||||
.filter(unifiedjobtemplate_notification_templates_for_success=self))
|
.filter(unifiedjobtemplate_notification_templates_for_success=self))
|
||||||
any_notification_templates = list(base_notification_templates
|
|
||||||
.filter(unifiedjobtemplate_notification_templates_for_any=self))
|
|
||||||
# Get Organization NotificationTemplates
|
# Get Organization NotificationTemplates
|
||||||
if self.organization is not None:
|
if self.organization is not None:
|
||||||
error_notification_templates = set(error_notification_templates +
|
error_notification_templates = set(error_notification_templates +
|
||||||
@@ -428,13 +426,9 @@ class Project(UnifiedJobTemplate, ProjectOptions, ResourceMixin, CustomVirtualEn
|
|||||||
success_notification_templates = set(success_notification_templates +
|
success_notification_templates = set(success_notification_templates +
|
||||||
list(base_notification_templates
|
list(base_notification_templates
|
||||||
.filter(organization_notification_templates_for_success=self.organization)))
|
.filter(organization_notification_templates_for_success=self.organization)))
|
||||||
any_notification_templates = set(any_notification_templates +
|
|
||||||
list(base_notification_templates
|
|
||||||
.filter(organization_notification_templates_for_any=self.organization)))
|
|
||||||
return dict(error=list(error_notification_templates),
|
return dict(error=list(error_notification_templates),
|
||||||
started=list(started_notification_templates),
|
started=list(started_notification_templates),
|
||||||
success=list(success_notification_templates),
|
success=list(success_notification_templates))
|
||||||
any=list(any_notification_templates))
|
|
||||||
|
|
||||||
def get_absolute_url(self, request=None):
|
def get_absolute_url(self, request=None):
|
||||||
return reverse('api:project_detail', kwargs={'pk': self.pk}, request=request)
|
return reverse('api:project_detail', kwargs={'pk': self.pk}, request=request)
|
||||||
|
|||||||
@@ -423,12 +423,9 @@ class WorkflowJobTemplate(UnifiedJobTemplate, WorkflowJobOptions, SurveyJobTempl
|
|||||||
.filter(unifiedjobtemplate_notification_templates_for_started__in=[self]))
|
.filter(unifiedjobtemplate_notification_templates_for_started__in=[self]))
|
||||||
success_notification_templates = list(base_notification_templates
|
success_notification_templates = list(base_notification_templates
|
||||||
.filter(unifiedjobtemplate_notification_templates_for_success__in=[self]))
|
.filter(unifiedjobtemplate_notification_templates_for_success__in=[self]))
|
||||||
any_notification_templates = list(base_notification_templates
|
|
||||||
.filter(unifiedjobtemplate_notification_templates_for_any__in=[self]))
|
|
||||||
return dict(error=list(error_notification_templates),
|
return dict(error=list(error_notification_templates),
|
||||||
started=list(started_notification_templates),
|
started=list(started_notification_templates),
|
||||||
success=list(success_notification_templates),
|
success=list(success_notification_templates))
|
||||||
any=list(any_notification_templates))
|
|
||||||
|
|
||||||
def create_unified_job(self, **kwargs):
|
def create_unified_job(self, **kwargs):
|
||||||
workflow_job = super(WorkflowJobTemplate, self).create_unified_job(**kwargs)
|
workflow_job = super(WorkflowJobTemplate, self).create_unified_job(**kwargs)
|
||||||
|
|||||||
@@ -42,9 +42,10 @@ def test_inventory_source_notification_on_cloud_only(get, post, inventory_source
|
|||||||
|
|
||||||
not_is = inventory_source_factory("not_ec2")
|
not_is = inventory_source_factory("not_ec2")
|
||||||
|
|
||||||
url = reverse('api:inventory_source_notification_templates_any_list', kwargs={'pk': cloud_is.id})
|
# Delete the below portion?
|
||||||
response = post(url, dict(id=notification_template.id), u)
|
# url = reverse('api:inventory_source_notification_templates_any_list', kwargs={'pk': cloud_is.id})
|
||||||
assert response.status_code == 204
|
# response = post(url, dict(id=notification_template.id), u)
|
||||||
|
# assert response.status_code == 204
|
||||||
|
|
||||||
url = reverse('api:inventory_source_notification_templates_success_list', kwargs={'pk': not_is.id})
|
url = reverse('api:inventory_source_notification_templates_success_list', kwargs={'pk': not_is.id})
|
||||||
response = post(url, dict(id=notification_template.id), u)
|
response = post(url, dict(id=notification_template.id), u)
|
||||||
|
|||||||
@@ -92,18 +92,19 @@ def test_inherited_notification_templates(get, post, user, organization, project
|
|||||||
isrc.save()
|
isrc.save()
|
||||||
jt = JobTemplate.objects.create(name='test', inventory=i, project=project, playbook='debug.yml')
|
jt = JobTemplate.objects.create(name='test', inventory=i, project=project, playbook='debug.yml')
|
||||||
jt.save()
|
jt.save()
|
||||||
url = reverse('api:organization_notification_templates_any_list', kwargs={'pk': organization.id})
|
# What can we replace the below tests with?
|
||||||
response = post(url, dict(id=notification_templates[0]), u)
|
# url = reverse('api:organization_notification_templates_any_list', kwargs={'pk': organization.id})
|
||||||
assert response.status_code == 204
|
# response = post(url, dict(id=notification_templates[0]), u)
|
||||||
url = reverse('api:project_notification_templates_any_list', kwargs={'pk': project.id})
|
# assert response.status_code == 204
|
||||||
response = post(url, dict(id=notification_templates[1]), u)
|
# url = reverse('api:project_notification_templates_any_list', kwargs={'pk': project.id})
|
||||||
assert response.status_code == 204
|
# response = post(url, dict(id=notification_templates[1]), u)
|
||||||
url = reverse('api:job_template_notification_templates_any_list', kwargs={'pk': jt.id})
|
# assert response.status_code == 204
|
||||||
response = post(url, dict(id=notification_templates[2]), u)
|
# url = reverse('api:job_template_notification_templates_any_list', kwargs={'pk': jt.id})
|
||||||
assert response.status_code == 204
|
# response = post(url, dict(id=notification_templates[2]), u)
|
||||||
assert len(jt.notification_templates['any']) == 3
|
# assert response.status_code == 204
|
||||||
assert len(project.notification_templates['any']) == 2
|
# assert len(jt.notification_templates['any']) == 3
|
||||||
assert len(isrc.notification_templates['any']) == 1
|
# assert len(project.notification_templates['any']) == 2
|
||||||
|
# assert len(isrc.notification_templates['any']) == 1
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ class TestInventorySourceSerializerGetRelated(object):
|
|||||||
'activity_stream',
|
'activity_stream',
|
||||||
'notification_templates_error',
|
'notification_templates_error',
|
||||||
'notification_templates_success',
|
'notification_templates_success',
|
||||||
'notification_templates_any',
|
'notification_templates_started',
|
||||||
'inventory_updates',
|
'inventory_updates',
|
||||||
'update',
|
'update',
|
||||||
'hosts',
|
'hosts',
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class TestJobTemplateSerializerGetRelated():
|
|||||||
'schedules',
|
'schedules',
|
||||||
'activity_stream',
|
'activity_stream',
|
||||||
'launch',
|
'launch',
|
||||||
'notification_templates_any',
|
'notification_templates_started',
|
||||||
'notification_templates_success',
|
'notification_templates_success',
|
||||||
'notification_templates_error',
|
'notification_templates_error',
|
||||||
'survey_spec',
|
'survey_spec',
|
||||||
|
|||||||
@@ -22,9 +22,7 @@ Notification templates assigned at certain levels will inherit notifications def
|
|||||||
|
|
||||||
## Workflow
|
## Workflow
|
||||||
|
|
||||||
When a job starts, succeeds or fails, the running, error or success handler will pull a list of relevant notifications using the procedure defined above. It will then create a Notification object for each one containing relevant details about the job and then **sends** it to the destination (email addresses, slack channel(s), SMS numbers, etc.). These Notification objects are available as related resources on job types (Jobs, Inventory Updates, Project Updates), and also at `/api/v2/notifications`. You may also see what notifications have been sent from a notifications by examining its related resources.
|
When a job starts, succeeds or fails, the running, success or error handler, respectively, will pull a list of relevant notifications using the procedure defined above. It then creates a Notification Object for each one containing relevant details about the job and then **sends** it to the destination (email addresses, Slack channel(s), SMS numbers, etc.). These Notification objects are available as related resources on job types (Jobs, Inventory Updates, Project Updates), and also at `/api/v2/notifications`. You may also see what notifications have been sent by examining its related resources.
|
||||||
|
|
||||||
When a notification is associated to a job via the `/api/v2/.../notification_templates_any/` endpoint, it will send upon success OR fail, but _not_ on start.
|
|
||||||
|
|
||||||
Notifications can succeed or fail but that will _not_ cause its associated job to succeed or fail. The status of the notification can be viewed at its detail endpoint: `/api/v2/notifications/<n>`
|
Notifications can succeed or fail but that will _not_ cause its associated job to succeed or fail. The status of the notification can be viewed at its detail endpoint: `/api/v2/notifications/<n>`
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user