Loading buildstream/_scheduler/queues/fetchqueue.py +1 −4 Original line number Original line Diff line number Diff line Loading @@ -40,10 +40,7 @@ class FetchQueue(Queue): self._skip_cached = skip_cached self._skip_cached = skip_cached def process(self, element): def process(self, element): previous_sources = [] element._fetch() for source in element.sources(): source._fetch(previous_sources) previous_sources.append(source) def status(self, element): def status(self, element): # state of dependencies may have changed, recalculate element state # state of dependencies may have changed, recalculate element state Loading buildstream/element.py +14 −0 Original line number Original line Diff line number Diff line Loading @@ -2022,6 +2022,20 @@ class Element(Plugin): return True return True # _fetch() # # Fetch the element's sources. # # Raises: # SourceError: If one of the element sources has an error # def _fetch(self): previous_sources = [] for source in self.sources(): if source._get_consistency() < Consistency.CACHED: source._fetch(previous_sources) previous_sources.append(source) ############################################################# ############################################################# # Private Local Methods # # Private Local Methods # ############################################################# ############################################################# Loading tests/sources/no-fetch-cached/files/file 0 → 100644 +1 −0 Original line number Original line Diff line number Diff line Hello World! tests/sources/no-fetch-cached/plugins/sources/always_cached.py 0 → 100644 +45 −0 Original line number Original line Diff line number Diff line """ always_cached ============= This is a test source plugin that is always cached. Used to test that BuildStream core does not call fetch() for cached sources. """ from buildstream import Consistency, Source class AlwaysCachedSource(Source): def configure(self, node): pass def preflight(self): pass def get_unique_key(self): return None def get_consistency(self): return Consistency.CACHED def load_ref(self, node): pass def get_ref(self): return None def set_ref(self, ref, node): pass def fetch(self): # Source is always cached, so fetch() should never be called assert False def stage(self, directory): pass def setup(): return AlwaysCachedSource tests/sources/no-fetch-cached/project.conf 0 → 100644 +8 −0 Original line number Original line Diff line number Diff line # Project with local source plugins name: no-fetch-cached plugins: - origin: local path: plugins/sources sources: always_cached: 0 Loading
buildstream/_scheduler/queues/fetchqueue.py +1 −4 Original line number Original line Diff line number Diff line Loading @@ -40,10 +40,7 @@ class FetchQueue(Queue): self._skip_cached = skip_cached self._skip_cached = skip_cached def process(self, element): def process(self, element): previous_sources = [] element._fetch() for source in element.sources(): source._fetch(previous_sources) previous_sources.append(source) def status(self, element): def status(self, element): # state of dependencies may have changed, recalculate element state # state of dependencies may have changed, recalculate element state Loading
buildstream/element.py +14 −0 Original line number Original line Diff line number Diff line Loading @@ -2022,6 +2022,20 @@ class Element(Plugin): return True return True # _fetch() # # Fetch the element's sources. # # Raises: # SourceError: If one of the element sources has an error # def _fetch(self): previous_sources = [] for source in self.sources(): if source._get_consistency() < Consistency.CACHED: source._fetch(previous_sources) previous_sources.append(source) ############################################################# ############################################################# # Private Local Methods # # Private Local Methods # ############################################################# ############################################################# Loading
tests/sources/no-fetch-cached/files/file 0 → 100644 +1 −0 Original line number Original line Diff line number Diff line Hello World!
tests/sources/no-fetch-cached/plugins/sources/always_cached.py 0 → 100644 +45 −0 Original line number Original line Diff line number Diff line """ always_cached ============= This is a test source plugin that is always cached. Used to test that BuildStream core does not call fetch() for cached sources. """ from buildstream import Consistency, Source class AlwaysCachedSource(Source): def configure(self, node): pass def preflight(self): pass def get_unique_key(self): return None def get_consistency(self): return Consistency.CACHED def load_ref(self, node): pass def get_ref(self): return None def set_ref(self, ref, node): pass def fetch(self): # Source is always cached, so fetch() should never be called assert False def stage(self, directory): pass def setup(): return AlwaysCachedSource
tests/sources/no-fetch-cached/project.conf 0 → 100644 +8 −0 Original line number Original line Diff line number Diff line # Project with local source plugins name: no-fetch-cached plugins: - origin: local path: plugins/sources sources: always_cached: 0