From f2d3f3a9b71c2de5c7dfb219dbe690705e595e1c Mon Sep 17 00:00:00 2001 From: Markus Lehtonen Date: Fri, 19 Feb 2016 15:21:33 +0200 Subject: SignatureGenerator: make checksum_cache arg of get_taskhash() mandatory Drop support for the "old" API. Now anyone extending SignatureGenerator by overriding get_taskhash() has to use the new function prototype. Signed-off-by: Markus Lehtonen --- lib/bb/runqueue.py | 28 +++++++--------------------- lib/bb/siggen.py | 9 +++------ 2 files changed, 10 insertions(+), 27 deletions(-) diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py index 73567408c1..27bf6893cf 100644 --- a/lib/bb/runqueue.py +++ b/lib/bb/runqueue.py @@ -231,16 +231,10 @@ class RunQueueData: self.stampwhitelist = cfgData.getVar("BB_STAMP_WHITELIST", True) or "" self.multi_provider_whitelist = (cfgData.getVar("MULTI_PROVIDER_WHITELIST", True) or "").split() - # Check if get_taskhash implements the new API. If so, use our own file - # checksum cache - self.checksum_cache = None - if 'checksum_cache' in inspect.getargspec(bb.parse.siggen.get_taskhash).args: - checksum_cache_file = cfgData.getVar("BB_HASH_CHECKSUM_CACHE_FILE", True) - self.checksum_cache = FileChecksumCache() - self.checksum_cache.init_cache(cfgData, checksum_cache_file) - else: - logger.warn("%s implements deprecated API of get_taskhash(), " - "missing the 'checksum_cache' argument" % bb.parse.siggen.__class__.__name__) + checksum_cache_file = cfgData.getVar("BB_HASH_CHECKSUM_CACHE_FILE", True) + self.checksum_cache = FileChecksumCache() + self.checksum_cache.init_cache(cfgData, checksum_cache_file) + self.reset() def reset(self): @@ -908,18 +902,10 @@ class RunQueueData: procdep = [] for dep in self.runq_depends[task]: procdep.append(self.taskData.fn_index[self.runq_fnid[dep]] + "." + self.runq_task[dep]) - if self.checksum_cache: - self.runq_hash[task] = bb.parse.siggen.get_taskhash(self.taskData.fn_index[self.runq_fnid[task]], self.runq_task[task], procdep, self.dataCache, self.checksum_cache) - else: - self.runq_hash[task] = bb.parse.siggen.get_taskhash(self.taskData.fn_index[self.runq_fnid[task]], self.runq_task[task], procdep, self.dataCache) + self.runq_hash[task] = bb.parse.siggen.get_taskhash(self.taskData.fn_index[self.runq_fnid[task]], self.runq_task[task], procdep, self.dataCache, self.checksum_cache) # Write out checksum cache onto disk - if self.checksum_cache: - self.checksum_cache.save_extras() - self.checksum_cache.save_merge() - else: - # This relies on the "knowledge" that siggen uses cache of bb.fetch2 - bb.fetch2.fetcher_parse_save() - bb.fetch2.fetcher_parse_done() + self.checksum_cache.save_extras() + self.checksum_cache.save_merge() return len(self.runq_fnid) diff --git a/lib/bb/siggen.py b/lib/bb/siggen.py index 81b42d12f3..182ce62a76 100644 --- a/lib/bb/siggen.py +++ b/lib/bb/siggen.py @@ -43,7 +43,7 @@ class SignatureGenerator(object): def finalise(self, fn, d, varient): return - def get_taskhash(self, fn, task, deps, dataCache, checksum_cache=None): + def get_taskhash(self, fn, task, deps, dataCache, checksum_cache): return "0" def stampfile(self, stampbase, file_name, taskname, extrainfo): @@ -173,7 +173,7 @@ class SignatureGeneratorBasic(SignatureGenerator): pass return taint - def get_taskhash(self, fn, task, deps, dataCache, checksum_cache=None): + def get_taskhash(self, fn, task, deps, dataCache, checksum_cache): k = fn + "." + task data = dataCache.basetaskhash[k] self.runtaskdeps[k] = [] @@ -190,10 +190,7 @@ class SignatureGeneratorBasic(SignatureGenerator): self.runtaskdeps[k].append(dep) if task in dataCache.file_checksums[fn]: - if checksum_cache: - checksums = checksum_cache.get_checksums(dataCache.file_checksums[fn][task], recipename) - else: - checksums = bb.fetch2.get_file_checksums(dataCache.file_checksums[fn][task], recipename) + checksums = checksum_cache.get_checksums(dataCache.file_checksums[fn][task], recipename) for (f,cs) in checksums: self.file_checksum_values[k].append((f,cs)) if cs: -- cgit 1.2.3-korg