Merge pull request #12701 from AlanCoding/no_more_schedules

Make schedule teardown more reliable
This commit is contained in:
Alan Rominger 2022-08-20 07:05:21 -04:00 committed by GitHub
commit 2357e24d1d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 8 deletions

View File

@ -15,13 +15,15 @@ class Schedule(HasCreate, base.Base):
NATURAL_KEY = ('unified_job_template', 'name')
def silent_delete(self):
"""If we are told to prevent_teardown of schedules, then keep them
but do not leave them activated, or system will be swamped quickly"""
"""
In every case, we start by disabling the schedule
to avoid cascading errors from a cleanup failure.
Then, if we are told to prevent_teardown of schedules, we keep them
"""
try:
self.patch(enabled=False)
if not config.prevent_teardown:
return self.delete()
else:
self.patch(enabled=False)
except (exc.NoContent, exc.NotFound, exc.Forbidden):
pass

View File

@ -1,7 +1,6 @@
from awxkit.api.resources import resources
from awxkit.utils import random_title, update_payload
from awxkit.api.mixins import HasStatus
from awxkit.config import config
from . import base
from . import page
@ -53,9 +52,7 @@ class UnifiedJobTemplate(HasStatus, base.Base):
return schedule
def silent_delete(self):
if hasattr(self, '_schedules_store') and config.prevent_teardown:
# when prevent_teardown is off, we rely on cascade deletes
# in this case, looping is needed to turn them off
if hasattr(self, '_schedules_store'):
for schedule in self._schedules_store:
schedule.silent_delete()
return super(UnifiedJobTemplate, self).silent_delete()