def _dehydrate_locks(self, bundle, write): if bundle.obj.locks_json: locks = json.loads(bundle.obj.locks_json) locks = [StateLock.from_dict(bundle.obj, lock) for lock in locks if lock['write'] == write] slr = StateLockResource() return [slr.full_dehydrate(slr.build_bundle(obj = l)).data for l in locks] else: return []
def __init__(self): from chroma_core.models import Job, StateLock self.write_locks = [] self.write_by_item = defaultdict(list) self.read_locks = [] self.read_by_item = defaultdict(list) self.all_by_job = defaultdict(list) self.all_by_item = defaultdict(list) for job in Job.objects.filter(~Q(state='complete')): if job.locks_json: locks = json.loads(job.locks_json) for lock in locks: self._add(StateLock.from_dict(job, lock))