def clean_targets(job_list, db): # print('clean_targets (%r)' % job_list) job_list = set(job_list) # now we need to delete the definition closure from compmake.jobs.queries import definition_closure closure = definition_closure(job_list, db) basic = job_list - closure from compmake.jobs.queries import parents other_clean = set() for job_id in job_list: other_clean.update(parents(job_id, db)) other_clean = other_clean - closure # # print('deleting: %r' % closure) # print('only cleaning: %r' % basic) # print('other cleaning: %r' % other_clean) # for job_id in closure | basic | other_clean: clean_cache_relations(job_id, db) # delete all in closure for job_id in closure: from compmake.jobs.storage import delete_all_job_data delete_all_job_data(job_id, db) # just remove cache in basic for job_id in basic: # Cleans associated objects if job_cache_exists(job_id, db): delete_job_cache(job_id, db)
def delete(job_list, context): """ Remove completely the job from the DB. Useful for generated jobs ( "delete not root"). """ from compmake.jobs.storage import delete_all_job_data job_list = [x for x in job_list] db = context.get_compmake_db() for job_id in job_list: delete_all_job_data(job_id=job_id, db=db)
def delete_jobs_recurse_definition(jobs, db): """ Deletes all jobs given and the jobs that they defined. Returns the set of jobs deleted. """ from compmake.jobs.queries import definition_closure closure = definition_closure(jobs, db) all_jobs = jobs | closure for job_id in all_jobs: clean_cache_relations(job_id, db) for job_id in all_jobs: from compmake.jobs.storage import delete_all_job_data delete_all_job_data(job_id, db) return all_jobs