Exemple #1
0
def agent_outages_task():
    agents = Agent.objects.only("pk")

    for agent in agents:
        if agent.status == "overdue":
            outages = AgentOutage.objects.filter(agent=agent)
            if outages and outages.last().is_active:
                continue

            outage = AgentOutage(agent=agent)
            outage.save()

            if agent.overdue_email_alert and not agent.maintenance_mode:
                agent_outage_email_task.delay(pk=outage.pk)

            if agent.overdue_text_alert and not agent.maintenance_mode:
                agent_outage_sms_task.delay(pk=outage.pk)
Exemple #2
0
def agent_outages_task():
    agents = Agent.objects.only("pk", "last_seen", "overdue_time",
                                "overdue_email_alert", "overdue_text_alert")

    for agent in agents:
        if agent.overdue_email_alert or agent.overdue_text_alert:
            if agent.status == "overdue":
                outages = AgentOutage.objects.filter(agent=agent)
                if outages and outages.last().is_active:
                    continue

                outage = AgentOutage(agent=agent)
                outage.save()

                # add a null check history to allow gaps in graph
                for check in agent.agentchecks.all():
                    check.add_check_history(None)

                if agent.overdue_email_alert and not agent.maintenance_mode:
                    agent_outage_email_task.delay(pk=outage.pk)

                if agent.overdue_text_alert and not agent.maintenance_mode:
                    agent_outage_sms_task.delay(pk=outage.pk)