def test_notification(): phases = [ _execution.WorkflowExecutionPhase.FAILED, _execution.WorkflowExecutionPhase.SUCCEEDED, ] recipients = ["a", "b", "c"] obj = _common.Notification(phases, email=_common.EmailNotification(recipients)) assert obj.phases == phases assert obj.email.recipients_email == recipients obj2 = _common.Notification.from_flyte_idl(obj.to_flyte_idl()) assert obj == obj2 assert obj2.phases == phases assert obj2.email.recipients_email == recipients obj = _common.Notification( phases, pager_duty=_common.PagerDutyNotification(recipients)) assert obj.phases == phases assert obj.pager_duty.recipients_email == recipients obj2 = _common.Notification.from_flyte_idl(obj.to_flyte_idl()) assert obj == obj2 assert obj2.phases == phases assert obj2.pager_duty.recipients_email == recipients obj = _common.Notification(phases, slack=_common.SlackNotification(recipients)) assert obj.phases == phases assert obj.slack.recipients_email == recipients obj2 = _common.Notification.from_flyte_idl(obj.to_flyte_idl()) assert obj == obj2 assert obj2.phases == phases assert obj2.slack.recipients_email == recipients
def __init__(self, phases: List[int], recipients_email: List[str]): """ :param list[int] phases: A required list of phases for which to fire the event. Events can only be fired for terminal phases. Phases should be as defined in: flytekit.models.core.execution.WorkflowExecutionPhase :param list[str] recipients_email: A required non-empty list of recipients for the notification. """ super(PagerDuty, self).__init__(phases, pager_duty=_common_model.PagerDutyNotification(recipients_email))
def __init__(self, phases, recipients_email): """ :param list[Text] recipients_email: A required non-empty list of recipients for the notification. """ super(PagerDuty, self).__init__( phases, pager_duty=_common_model.PagerDutyNotification(recipients_email))
def test_pager_duty_notification(): pager_duty_notif = notification.PagerDuty( phases=[_workflow_execution_succeeded], recipients_email=["*****@*****.**"]) assert pager_duty_notif.to_flyte_idl() == _common_pb2.Notification( phases=[_workflow_execution_succeeded], email=None, pager_duty=_common_model.PagerDutyNotification( ["*****@*****.**"]).to_flyte_idl(), slack=None, )
def test_execution_spec(literal_value_pair): literal_value, _ = literal_value_pair obj = _execution.ExecutionSpec( _identifier.Identifier(_identifier.ResourceType.LAUNCH_PLAN, "project", "domain", "name", "version"), _execution.ExecutionMetadata( _execution.ExecutionMetadata.ExecutionMode.MANUAL, "tester", 1), notifications=_execution.NotificationList([ _common_models.Notification( [_core_exec.WorkflowExecutionPhase.ABORTED], pager_duty=_common_models.PagerDutyNotification( recipients_email=["a", "b", "c"]), ) ]), ) assert obj.launch_plan.resource_type == _identifier.ResourceType.LAUNCH_PLAN assert obj.launch_plan.domain == "domain" assert obj.launch_plan.project == "project" assert obj.launch_plan.name == "name" assert obj.launch_plan.version == "version" assert obj.metadata.mode == _execution.ExecutionMetadata.ExecutionMode.MANUAL assert obj.metadata.nesting == 1 assert obj.metadata.principal == "tester" assert obj.notifications.notifications[0].phases == [ _core_exec.WorkflowExecutionPhase.ABORTED ] assert obj.notifications.notifications[0].pager_duty.recipients_email == [ "a", "b", "c", ] assert obj.disable_all is None obj2 = _execution.ExecutionSpec.from_flyte_idl(obj.to_flyte_idl()) assert obj == obj2 assert obj2.launch_plan.resource_type == _identifier.ResourceType.LAUNCH_PLAN assert obj2.launch_plan.domain == "domain" assert obj2.launch_plan.project == "project" assert obj2.launch_plan.name == "name" assert obj2.launch_plan.version == "version" assert obj2.metadata.mode == _execution.ExecutionMetadata.ExecutionMode.MANUAL assert obj2.metadata.nesting == 1 assert obj2.metadata.principal == "tester" assert obj2.notifications.notifications[0].phases == [ _core_exec.WorkflowExecutionPhase.ABORTED ] assert obj2.notifications.notifications[0].pager_duty.recipients_email == [ "a", "b", "c", ] assert obj2.disable_all is None obj = _execution.ExecutionSpec( _identifier.Identifier(_identifier.ResourceType.LAUNCH_PLAN, "project", "domain", "name", "version"), _execution.ExecutionMetadata( _execution.ExecutionMetadata.ExecutionMode.MANUAL, "tester", 1), disable_all=True, ) assert obj.launch_plan.resource_type == _identifier.ResourceType.LAUNCH_PLAN assert obj.launch_plan.domain == "domain" assert obj.launch_plan.project == "project" assert obj.launch_plan.name == "name" assert obj.launch_plan.version == "version" assert obj.metadata.mode == _execution.ExecutionMetadata.ExecutionMode.MANUAL assert obj.metadata.nesting == 1 assert obj.metadata.principal == "tester" assert obj.notifications is None assert obj.disable_all is True obj2 = _execution.ExecutionSpec.from_flyte_idl(obj.to_flyte_idl()) assert obj == obj2 assert obj2.launch_plan.resource_type == _identifier.ResourceType.LAUNCH_PLAN assert obj2.launch_plan.domain == "domain" assert obj2.launch_plan.project == "project" assert obj2.launch_plan.name == "name" assert obj2.launch_plan.version == "version" assert obj2.metadata.mode == _execution.ExecutionMetadata.ExecutionMode.MANUAL assert obj2.metadata.nesting == 1 assert obj2.metadata.principal == "tester" assert obj2.notifications is None assert obj2.disable_all is True
def test_notification_pagerduty(): obj = _common.PagerDutyNotification(["a", "b", "c"]) assert obj.recipients_email == ["a", "b", "c"] obj2 = _common.PagerDutyNotification.from_flyte_idl(obj.to_flyte_idl()) assert obj2 == obj