Repository: aurora Updated Branches: refs/heads/master e89521f1e -> d26a32358
Don't require user when initializing a Docker sandbox. Bugs closed: AURORA-1709 Reviewed at https://reviews.apache.org/r/48492/ Project: http://git-wip-us.apache.org/repos/asf/aurora/repo Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/d26a3235 Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/d26a3235 Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/d26a3235 Branch: refs/heads/master Commit: d26a32358a9f9d16e1d0749afdc9c00b75e52e3b Parents: e89521f Author: Joshua Cohen <[email protected]> Authored: Thu Jun 9 12:25:42 2016 -0500 Committer: Joshua Cohen <[email protected]> Committed: Thu Jun 9 12:25:42 2016 -0500 ---------------------------------------------------------------------- .../apache/aurora/executor/common/sandbox.py | 4 ++- .../aurora/executor/common/test_sandbox.py | 31 +++++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/aurora/blob/d26a3235/src/main/python/apache/aurora/executor/common/sandbox.py ---------------------------------------------------------------------- diff --git a/src/main/python/apache/aurora/executor/common/sandbox.py b/src/main/python/apache/aurora/executor/common/sandbox.py index be1deba..6d8b7f5 100644 --- a/src/main/python/apache/aurora/executor/common/sandbox.py +++ b/src/main/python/apache/aurora/executor/common/sandbox.py @@ -63,7 +63,9 @@ class DefaultSandboxProvider(SandboxProvider): def from_assigned_task(self, assigned_task): container = assigned_task.task.container - if container.docker or container.mesos and container.mesos.image: + if container.docker: + return FileSystemImageSandbox(self.SANDBOX_NAME) + elif container.mesos and container.mesos.image: return FileSystemImageSandbox(self.SANDBOX_NAME, self._get_sandbox_user(assigned_task)) else: return DirectorySandbox( http://git-wip-us.apache.org/repos/asf/aurora/blob/d26a3235/src/test/python/apache/aurora/executor/common/test_sandbox.py ---------------------------------------------------------------------- diff --git a/src/test/python/apache/aurora/executor/common/test_sandbox.py b/src/test/python/apache/aurora/executor/common/test_sandbox.py index e47d9b8..63f46e2 100644 --- a/src/test/python/apache/aurora/executor/common/test_sandbox.py +++ b/src/test/python/apache/aurora/executor/common/test_sandbox.py @@ -18,7 +18,13 @@ import mock import pytest from twitter.common.contextutil import temporary_dir -from apache.aurora.executor.common.sandbox import DirectorySandbox, FileSystemImageSandbox +from apache.aurora.executor.common.sandbox import ( + DefaultSandboxProvider, + DirectorySandbox, + FileSystemImageSandbox +) + +from gen.apache.aurora.api.ttypes import AssignedTask, Container, DockerContainer, TaskConfig def test_directory_sandbox(): @@ -57,6 +63,29 @@ def test_create(chmod, chown, getpwnam, getgrgid): chmod.assert_called_with(real_path, 0700) [email protected]('grp.getgrgid') [email protected]('pwd.getpwnam') [email protected]('os.chown') [email protected]('os.chmod') +def test_create_no_user(*args): + with temporary_dir() as d: + real_path = os.path.join(d, 'sandbox') + ds = DirectorySandbox(real_path) + ds.create() + assert os.path.exists(real_path) + + for mocked in args: + mocked.assert_not_called() + + [email protected](os.environ, {'MESOS_DIRECTORY': '/some/path'}) +def test_sandbox_provider_docker_container(): + sandbox = DefaultSandboxProvider().from_assigned_task( + AssignedTask(task=TaskConfig(container=Container(docker=DockerContainer())))) + + assert sandbox._user is None + + @mock.patch('pwd.getpwnam') def test_user_does_not_exist(getpwnam): getpwnam.side_effect = KeyError('johndoe')
