diff options
author | Jürg Billeter <j@bitron.ch> | 2020-10-28 11:38:40 +0100 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2020-12-09 14:51:06 +0000 |
commit | c35f843d4e027caf209d88a384a2c3f7a2dd8680 (patch) | |
tree | 5b1ae535ad30e81dda5a54030d9580182588ae71 | |
parent | 47ef74f0ba4868eeba94baea3a8beb2874ec6b24 (diff) | |
download | buildstream-c35f843d4e027caf209d88a384a2c3f7a2dd8680.tar.gz |
Move _reachable_refs_dir() method from cascache.py to testutils
It's not used outside testutils.
-rw-r--r-- | src/buildstream/_cas/cascache.py | 32 | ||||
-rw-r--r-- | tests/testutils/artifactshare.py | 21 |
2 files changed, 20 insertions, 33 deletions
diff --git a/src/buildstream/_cas/cascache.py b/src/buildstream/_cas/cascache.py index d13531c6c..3182ec050 100644 --- a/src/buildstream/_cas/cascache.py +++ b/src/buildstream/_cas/cascache.py @@ -470,38 +470,6 @@ class CASCache: # Local Private Methods # ################################################ - def _reachable_refs_dir(self, reachable, tree, update_mtime=False, check_exists=False): - if tree.hash in reachable: - return - try: - if update_mtime: - os.utime(self.objpath(tree)) - - reachable.add(tree.hash) - - directory = remote_execution_pb2.Directory() - - with open(self.objpath(tree), "rb") as f: - directory.ParseFromString(f.read()) - - except FileNotFoundError: - if check_exists: - raise - - # Just exit early if the file doesn't exist - return - - for filenode in directory.files: - if update_mtime: - os.utime(self.objpath(filenode.digest)) - if check_exists: - if not os.path.exists(self.objpath(filenode.digest)): - raise FileNotFoundError - reachable.add(filenode.digest.hash) - - for dirnode in directory.directories: - self._reachable_refs_dir(reachable, dirnode.digest, update_mtime=update_mtime, check_exists=check_exists) - # _temporary_object(): # # Returns: diff --git a/tests/testutils/artifactshare.py b/tests/testutils/artifactshare.py index bd9c97c61..8ce8a4198 100644 --- a/tests/testutils/artifactshare.py +++ b/tests/testutils/artifactshare.py @@ -209,7 +209,7 @@ class ArtifactShare(BaseArtifactShare): reachable = set() def reachable_dir(digest): - self.cas._reachable_refs_dir(reachable, digest, update_mtime=False, check_exists=True) + self._reachable_refs_dir(reachable, digest) try: artifact_proto_path = self.cas.objpath(artifact_proto_digest) @@ -271,6 +271,25 @@ class ArtifactShare(BaseArtifactShare): shutil.rmtree(self.directory) + def _reachable_refs_dir(self, reachable, tree): + if tree.hash in reachable: + return + + reachable.add(tree.hash) + + directory = remote_execution_pb2.Directory() + + with open(self.cas.objpath(tree), "rb") as f: + directory.ParseFromString(f.read()) + + for filenode in directory.files: + if not os.path.exists(self.cas.objpath(filenode.digest)): + raise FileNotFoundError + reachable.add(filenode.digest.hash) + + for dirnode in directory.directories: + self._reachable_refs_dir(reachable, dirnode.digest) + # create_artifact_share() # |