Skip to content
Snippets Groups Projects
Commit a41224b2 authored by Jim MacArthur's avatar Jim MacArthur
Browse files

sandbox.py: Allow setting the virtual directory

This is for use after remote execution has finished, since remote
execution produces a new output directory rather than modifying
the initial directory.
parent 8cfc39ab
No related branches found
No related tags found
No related merge requests found
......@@ -155,6 +155,9 @@ class BuildElement(Element):
command_dir = build_root
sandbox.set_work_directory(command_dir)
# Tell sandbox which directory is preserved in the finished artifact
sandbox.set_output_directory(install_root)
# Setup environment
sandbox.set_environment(self.get_environment())
......
......@@ -99,9 +99,11 @@ class Sandbox():
self.__stdout = kwargs['stdout']
self.__stderr = kwargs['stderr']
# Setup the directories. Root should be available to subclasses, hence
# being single-underscore. The others are private to this class.
# Setup the directories. Root and output_directory should be
# available to subclasses, hence being single-underscore. The
# others are private to this class.
self._root = os.path.join(directory, 'root')
self._output_directory = None
self.__directory = directory
self.__scratch = os.path.join(self.__directory, 'scratch')
for directory_ in [self._root, self.__scratch]:
......@@ -144,11 +146,17 @@ class Sandbox():
self._vdir = FileBasedDirectory(self._root)
return self._vdir
def _set_virtual_directory(self, vdir):
""" Sets virtual directory. Useful after remote execution
has rewritten the working directory.
"""
self._vdir = vdir
def set_environment(self, environment):
"""Sets the environment variables for the sandbox
Args:
directory (dict): The environment variables to use in the sandbox
environment (dict): The environment variables to use in the sandbox
"""
self.__env = environment
......@@ -160,6 +168,15 @@ class Sandbox():
"""
self.__cwd = directory
def set_output_directory(self, directory):
"""Sets the output directory - the directory which is preserved
as an artifact after assembly.
Args:
directory (str): An absolute path within the sandbox
"""
self._output_directory = directory
def mark_directory(self, directory, *, artifact=False):
"""Marks a sandbox directory and ensures it will exist
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment