summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2019-12-05 17:17:24 +0100
committerJürg Billeter <j@bitron.ch>2019-12-10 11:43:30 +0000
commitd9274f0106ac53a38ee29ae1084291f637cc811d (patch)
treef241aa0a32cb116af2eb54c486c20a5888af77f8
parenta57347d8459cd57a704bfec9bab1e46b686a8e92 (diff)
downloadbuildstream-d9274f0106ac53a38ee29ae1084291f637cc811d.tar.gz
_platform: Support experimental buildbox-run sandbox on all platforms
The buildbox-run sandbox is used only if BST_FORCE_SANDBOX is set to buildbox-run.
-rw-r--r--src/buildstream/_platform/linux.py1
-rw-r--r--src/buildstream/_platform/platform.py27
2 files changed, 25 insertions, 3 deletions
diff --git a/src/buildstream/_platform/linux.py b/src/buildstream/_platform/linux.py
index bdc2e0df1..a6215c90f 100644
--- a/src/buildstream/_platform/linux.py
+++ b/src/buildstream/_platform/linux.py
@@ -32,6 +32,7 @@ class Linux(Platform):
sandbox_setups = {
"bwrap": self._setup_bwrap_sandbox,
"buildbox": self._setup_buildbox_sandbox,
+ "buildbox-run": self.setup_buildboxrun_sandbox,
"chroot": self._setup_chroot_sandbox,
"dummy": self._setup_dummy_sandbox,
}
diff --git a/src/buildstream/_platform/platform.py b/src/buildstream/_platform/platform.py
index 1fddbe82c..e4fa1b9f2 100644
--- a/src/buildstream/_platform/platform.py
+++ b/src/buildstream/_platform/platform.py
@@ -45,7 +45,8 @@ class Platform:
self._setup_sandbox(force_sandbox)
def _setup_sandbox(self, force_sandbox):
- sandbox_setups = {"dummy": self._setup_dummy_sandbox}
+ # The buildbox-run interface is not platform-specific
+ sandbox_setups = {"buildbox-run": self.setup_buildboxrun_sandbox, "dummy": self._setup_dummy_sandbox}
preferred_sandboxes = []
self._try_sandboxes(force_sandbox, sandbox_setups, preferred_sandboxes)
@@ -209,10 +210,10 @@ class Platform:
# Returns:
# (Sandbox) A sandbox
#
- def create_sandbox(self, *args, **kwargs):
+ def create_sandbox(self, *args, **kwargs): # pylint: disable=method-hidden
raise ImplError("Platform {platform} does not implement create_sandbox()".format(platform=type(self).__name__))
- def check_sandbox_config(self, config):
+ def check_sandbox_config(self, config): # pylint: disable=method-hidden
raise ImplError(
"Platform {platform} does not implement check_sandbox_config()".format(platform=type(self).__name__)
)
@@ -237,3 +238,23 @@ class Platform:
raise ImplError(
"Platform {platform} does not implement _setup_dummy_sandbox()".format(platform=type(self).__name__)
)
+
+ # Buildbox run sandbox methods
+ def _check_sandbox_config_buildboxrun(self, config):
+ from ..sandbox._sandboxbuildboxrun import SandboxBuildBoxRun
+
+ return SandboxBuildBoxRun.check_sandbox_config(self, config)
+
+ @staticmethod
+ def _create_buildboxrun_sandbox(*args, **kwargs):
+ from ..sandbox._sandboxbuildboxrun import SandboxBuildBoxRun
+
+ return SandboxBuildBoxRun(*args, **kwargs)
+
+ def setup_buildboxrun_sandbox(self):
+ from ..sandbox._sandboxbuildboxrun import SandboxBuildBoxRun
+
+ self._check_sandbox(SandboxBuildBoxRun)
+ self.check_sandbox_config = self._check_sandbox_config_buildboxrun
+ self.create_sandbox = self._create_buildboxrun_sandbox
+ return True