def add_jobs(self, jobs, command):
"""Add a job, and any others which are required in order to reach its prerequisite state"""
# Important: the Job must not be committed until all
# its dependencies and locks are in.
assert transaction.is_managed()
for job in jobs:
for dependency in self._dep_cache.get(job).all():
if not dependency.satisfied():
log.info("add_jobs: setting required dependency %s %s" % (dependency.stateful_object, dependency.preferred_state))
self._set_state(dependency.get_stateful_object(), dependency.preferred_state, command)
log.info("add_jobs: done checking dependencies")
locks = self._create_locks(job)
job.locks_json = json.dumps([l.to_dict() for l in locks])
self._create_dependencies(job, locks)
with transaction.commit_on_success():
job.save()
log.info("add_jobs: created Job %s (%s)" % (job.pk, job.description()))
for l in locks:
self._lock_cache.add(l)
command.jobs.add(job)
self._job_collection.add_command(command, jobs)
command_plan.py 文件源码
python
阅读 28
收藏 0
点赞 0
评论 0
评论列表
文章目录