summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarius Makovsky <traveltissues@protonmail.com>2019-10-22 15:12:37 +0100
committerDarius Makovsky <traveltissues@protonmail.com>2019-10-30 12:35:12 +0000
commit66461f42c595b67a0a704d7a4007331e92783687 (patch)
tree81854dac8ce5df84ada8d2af4f234c9cfafa72c7
parentbffc0407fc9ae30df11fa0ac97bd057c383aa8eb (diff)
downloadbuildstream-66461f42c595b67a0a704d7a4007331e92783687.tar.gz
workspace.py: use the extended source api
-rw-r--r--src/buildstream/plugins/sources/workspace.py26
1 files changed, 3 insertions, 23 deletions
diff --git a/src/buildstream/plugins/sources/workspace.py b/src/buildstream/plugins/sources/workspace.py
index b5b92eb62..303b67938 100644
--- a/src/buildstream/plugins/sources/workspace.py
+++ b/src/buildstream/plugins/sources/workspace.py
@@ -48,6 +48,7 @@ class WorkspaceSource(Source):
# pylint: disable=attribute-defined-outside-init
BST_STAGE_VIRTUAL_DIRECTORY = True
+ BST_NO_PRESTAGE_KEY = True
def __init__(self, context, project, meta) -> None:
super().__init__(context, project, meta)
@@ -56,8 +57,6 @@ class WorkspaceSource(Source):
self.__unique_key = None
# the digest of the Directory following the import of the workspace
self.__digest = None
- # the CasBasedDirectory which the path is imported into
- self.__cas_dir = None
def track(self) -> SourceRef:
return None
@@ -79,23 +78,6 @@ class WorkspaceSource(Source):
def set_ref(self, ref: SourceRef, node: MappingNode) -> None:
pass # pragma: nocover
- def get_unique_key(self) -> (str, SourceRef):
- cas = self._get_context().get_cascache()
-
- if self.__cas_dir is None:
- self.__cas_dir = CasBasedDirectory(cas)
-
- if self.__digest is None:
-
- with self.timed_activity("Staging local files into CAS"):
- result = self.__cas_dir.import_files(self.path)
- if result.overwritten or result.ignored:
- raise SourceError(
- "Failed to stage source: files clash with existing directory",
- reason='ensure-stage-dir-fail')
- self.__digest = self.__cas_dir._get_digest().hash
- return (self.path, self.__digest)
-
# init_workspace()
#
# Raises AssertionError: existing workspaces should not be reinitialized
@@ -110,11 +92,9 @@ class WorkspaceSource(Source):
pass # pragma: nocover
def stage(self, directory: Directory) -> None:
- # directory should always be a Directory object
assert isinstance(directory, Directory)
- assert isinstance(self.__cas_dir, CasBasedDirectory)
- with self.timed_activity("Staging Workspace files"):
- result = directory.import_files(self.__cas_dir)
+ with self.timed_activity("Staging local files"):
+ result = directory.import_files(self.path)
if result.overwritten or result.ignored:
raise SourceError(