add option to run sched task asap after scheduled start was missed #247

This commit is contained in:
wh1te909 2021-02-24 06:14:28 +00:00
parent 4fb6d9aa5d
commit e248a99f79
4 changed files with 33 additions and 3 deletions

View File

@ -0,0 +1,18 @@
# Generated by Django 3.1.7 on 2021-02-24 05:37
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('autotasks', '0017_auto_20210210_1512'),
]
operations = [
migrations.AddField(
model_name='automatedtask',
name='run_asap_after_missed',
field=models.BooleanField(default=False),
),
]

View File

@ -96,6 +96,7 @@ class AutomatedTask(BaseAuditModel):
) )
run_time_date = DateTimeField(null=True, blank=True) run_time_date = DateTimeField(null=True, blank=True)
remove_if_not_scheduled = models.BooleanField(default=False) remove_if_not_scheduled = models.BooleanField(default=False)
run_asap_after_missed = models.BooleanField(default=False) # added in agent v1.4.7
managed_by_policy = models.BooleanField(default=False) managed_by_policy = models.BooleanField(default=False)
parent_task = models.PositiveIntegerField(null=True, blank=True) parent_task = models.PositiveIntegerField(null=True, blank=True)
win_task_name = models.CharField(max_length=255, null=True, blank=True) win_task_name = models.CharField(max_length=255, null=True, blank=True)
@ -218,6 +219,7 @@ class AutomatedTask(BaseAuditModel):
timeout=self.timeout, timeout=self.timeout,
enabled=self.enabled, enabled=self.enabled,
remove_if_not_scheduled=self.remove_if_not_scheduled, remove_if_not_scheduled=self.remove_if_not_scheduled,
run_asap_after_missed=self.run_asap_after_missed,
) )
create_win_task_schedule.delay(task.pk) create_win_task_schedule.delay(task.pk)

View File

@ -62,9 +62,12 @@ def create_win_task_schedule(pk, pending_action=False):
}, },
} }
if task.remove_if_not_scheduled and pyver.parse( if task.run_asap_after_missed and pyver.parse(
task.agent.version task.agent.version
) >= pyver.parse("1.1.2"): ) >= pyver.parse("1.4.7"):
nats_data["schedtaskpayload"]["run_asap_after_missed"] = True
if task.remove_if_not_scheduled:
nats_data["schedtaskpayload"]["deleteafter"] = True nats_data["schedtaskpayload"]["deleteafter"] = True
elif task.task_type == "checkfailure" or task.task_type == "manual": elif task.task_type == "checkfailure" or task.task_type == "manual":

View File

@ -120,7 +120,13 @@
</template> </template>
</q-input> </q-input>
<div class="q-gutter-sm"> <div class="q-gutter-sm">
<q-checkbox v-model="autotask.remove_if_not_scheduled" label="Delete task after schedule date" /> <q-checkbox v-model="autotask.remove_if_not_scheduled" label="Delete task after scheduled date" />
</div>
<div class="q-gutter-sm">
<q-checkbox
v-model="autotask.run_asap_after_missed"
label="Run task ASAP after a scheduled start is missed (requires agent v1.4.7)"
/>
</div> </div>
</div> </div>
<div class="col-1"></div> <div class="col-1"></div>
@ -181,6 +187,7 @@ export default {
run_time_minute: null, run_time_minute: null,
run_time_date: null, run_time_date: null,
remove_if_not_scheduled: false, remove_if_not_scheduled: false,
run_asap_after_missed: true,
task_type: "scheduled", task_type: "scheduled",
timeout: 120, timeout: 120,
alert_severity: "info", alert_severity: "info",