Fix a couple bugs with chain reactions

This commit is contained in:
Andrew 2022-02-24 00:19:54 -05:00
parent 8b981f3f27
commit 31cb2793fd
3 changed files with 15 additions and 6 deletions

View File

@ -240,7 +240,9 @@ class helpers_management:
comment=None,
enabled=True,
one_time=False,
cron_string='* * * * *'):
cron_string='* * * * *',
parent=None,
delay=0):
sch_id = Schedules.insert({
Schedules.server_id: server_id,
Schedules.action: action,
@ -251,7 +253,9 @@ class helpers_management:
Schedules.command: command,
Schedules.comment: comment,
Schedules.one_time: one_time,
Schedules.cron_string: cron_string
Schedules.cron_string: cron_string,
Schedules.parent: parent,
Schedules.delay: delay
}).execute()
return sch_id
@ -285,6 +289,10 @@ class helpers_management:
def get_child_schedules_by_server(schedule_id, server_id):
return Schedules.select().where(Schedules.server_id == server_id, Schedules.parent == schedule_id).execute()
@staticmethod
def get_child_schedules(schedule_id):
return Schedules.select().where(Schedules.parent == schedule_id)
@staticmethod
def get_schedules_all():
return Schedules.select().execute()

View File

@ -232,7 +232,9 @@ class TasksManager:
"None",
job_data['enabled'],
job_data['one_time'],
job_data['cron_string'])
job_data['cron_string'],
job_data['parent'],
job_data['delay'])
#Check to see if it's enabled and is not a chain reaction.
if job_data['enabled'] and job_data['interval_type'] != 'reaction':
if job_data['cron_string'] != "":
@ -301,6 +303,8 @@ class TasksManager:
def remove_job(self, sch_id):
job = management_helper.get_scheduled_task_model(sch_id)
for schedule in management_helper.get_child_schedules(sch_id):
management_helper.update_scheduled_task(schedule.schedule_id, {'parent':None})
management_helper.delete_scheduled_task(sch_id)
if job.enabled and job.interval_type != 'reaction':
self.scheduler.remove_job(str(sch_id))

View File

@ -1072,7 +1072,6 @@ class PanelHandler(BaseHandler):
command = "restart_server"
elif action == "backup":
command = "backup_server"
parent = bleach.clean(self.get_argument('parent', None))
else:
interval_type = ''
@ -1123,8 +1122,6 @@ class PanelHandler(BaseHandler):
"interval": interval,
"command": command,
"start_time": sch_time,
"parent": '',
"delay": '',
"enabled": enabled,
"one_time": one_time,
"cron_string": ''