Ejemplo n.º 1
0
def update_policy_task_fields_task(taskpk, update_agent=False):
    from autotasks.tasks import enable_or_disable_win_task

    task = AutomatedTask.objects.get(pk=taskpk)

    AutomatedTask.objects.filter(parent_task=taskpk).update(
        alert_severity=task.alert_severity,
        email_alert=task.email_alert,
        text_alert=task.text_alert,
        dashboard_alert=task.dashboard_alert,
        script=task.script,
        script_args=task.script_args,
        name=task.name,
        timeout=task.timeout,
        enabled=task.enabled,
    )

    if update_agent:
        for task in AutomatedTask.objects.filter(parent_task=taskpk):
            enable_or_disable_win_task.delay(task.pk, task.enabled)
Ejemplo n.º 2
0
    def handle_pending_actions(self):
        pending_actions = self.pendingactions.filter(status="pending")

        for action in pending_actions:
            if action.action_type == "taskaction":
                from autotasks.tasks import (
                    create_win_task_schedule,
                    enable_or_disable_win_task,
                    delete_win_task_schedule,
                )

                task_id = action.details["task_id"]

                if action.details["action"] == "taskcreate":
                    create_win_task_schedule.delay(task_id, pending_action=action.id)
                elif action.details["action"] == "tasktoggle":
                    enable_or_disable_win_task.delay(
                        task_id, action.details["value"], pending_action=action.id
                    )
                elif action.details["action"] == "taskdelete":
                    delete_win_task_schedule.delay(task_id, pending_action=action.id)
Ejemplo n.º 3
0
    def patch(self, request, pk):
        from automation.tasks import update_policy_autotasks_fields_task
        from autotasks.tasks import enable_or_disable_win_task

        task = get_object_or_404(AutomatedTask, pk=pk)

        if "enableordisable" in request.data:
            action = request.data["enableordisable"]
            task.enabled = action
            task.save(update_fields=["enabled"])
            action = "enabled" if action else "disabled"

            if task.policy:
                update_policy_autotasks_fields_task.delay(task=task.pk,
                                                          update_agent=True)
            elif task.agent:
                enable_or_disable_win_task.delay(pk=task.pk)

            return Response(f"Task will be {action} shortly")

        else:
            return notify_error("The request was invalid")