girder-worker 0.10.2.dev4__tar.gz → 0.10.2.dev8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/PKG-INFO +1 -1
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/docker/transforms/__init__.py +11 -5
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/docker/transforms/girder.py +27 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker.egg-info/PKG-INFO +1 -1
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/.circleci/config.yml +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/.codecov.yml +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/.coveragerc.pytest +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/.dockerignore +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/.gitignore +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/CHANGELOG.rst +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/CONTRIBUTING.md +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/Dockerfile +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/HACKING.md +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/LICENSE +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/MANIFEST.in +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/NOTICE +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/README.rst +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/TRANSITION.md +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/docker-compose.yml +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/docker-entrypoint.sh +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/docker.env +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/.gitignore +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/__init__.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/__main__.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/_test_plugins/__init__.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/_test_plugins/plugins.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/_test_plugins/tasks.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/app.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/celeryconfig.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/configure.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/context/__init__.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/context/girder_context.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/context/nongirder_context.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/docker/__init__.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/docker/io/__init__.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/docker/io/girder.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/docker/nvidia.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/docker/stream_adapter.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/docker/tasks/__init__.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/docker/utils.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/entrypoint.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/__init__.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/api/__init__.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/api/worker.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/celery.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/constants.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/event_handlers.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/status.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/utils.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/web_client/JobStatus.js +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/web_client/main.js +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/web_client/package.json +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/web_client/routes.js +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/web_client/stylesheets/jobDetailsWidget.styl +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/web_client/stylesheets/taskStatusView.styl +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/web_client/templates/configView.pug +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/web_client/templates/taskStatusView.pug +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/web_client/views/ConfigView.js +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/web_client/views/taskStatusView.js +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/log_utils.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/task.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/utils.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/worker.dist.cfg +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker.egg-info/SOURCES.txt +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker.egg-info/dependency_links.txt +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker.egg-info/entry_points.txt +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker.egg-info/not-zip-safe +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker.egg-info/requires.txt +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker.egg-info/top_level.txt +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/requirements-dev.in +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/requirements.in +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/requirements.txt +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/scripts/install_requirements.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/setup.cfg +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/setup.py +0 -0
- {girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/tox.ini +0 -0
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/docker/transforms/__init__.py
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
import uuid
|
|
1
|
+
import abc
|
|
3
2
|
import os
|
|
3
|
+
import stat
|
|
4
|
+
import sys
|
|
4
5
|
import tempfile
|
|
5
|
-
import
|
|
6
|
+
import uuid
|
|
6
7
|
|
|
7
8
|
from girder_worker_utils.transform import Transform
|
|
8
9
|
|
|
9
|
-
|
|
10
10
|
TEMP_VOLUME_MOUNT_PREFIX = '/mnt/girder_worker'
|
|
11
11
|
|
|
12
12
|
|
|
@@ -130,6 +130,12 @@ class _TemporaryVolumeBase(BindMountVolume):
|
|
|
130
130
|
# os.chmod.
|
|
131
131
|
os.chmod(host_dir, mode)
|
|
132
132
|
self._host_path = tempfile.mkdtemp(dir=host_dir)
|
|
133
|
+
try:
|
|
134
|
+
# this is permissive as a worker may be running as a different user
|
|
135
|
+
# and could otherwise not read or create files.
|
|
136
|
+
os.chmod(self._host_path, 0o777 | stat.S_ISGID)
|
|
137
|
+
except Exception:
|
|
138
|
+
pass
|
|
133
139
|
self._container_path = os.path.join(TEMP_VOLUME_MOUNT_PREFIX, uuid.uuid4().hex)
|
|
134
140
|
|
|
135
141
|
|
|
@@ -150,7 +156,7 @@ class TemporaryVolume(_TemporaryVolumeBase, metaclass=_TemporaryVolumeMetaClass)
|
|
|
150
156
|
"""
|
|
151
157
|
# Note that this mode is explicitly set with os.chmod. What you
|
|
152
158
|
# set, is what you get - no os.makedirs umask shenanigans.
|
|
153
|
-
def __init__(self, host_dir=None, mode=
|
|
159
|
+
def __init__(self, host_dir=None, mode=0o777):
|
|
154
160
|
super().__init__(None, None)
|
|
155
161
|
self.host_dir = host_dir
|
|
156
162
|
self._mode = mode
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/docker/transforms/girder.py
RENAMED
|
@@ -11,6 +11,30 @@ from girder_worker_utils.transforms.girder_io import (
|
|
|
11
11
|
from . import TemporaryVolume, Connect, NamedOutputPipe, _maybe_transform
|
|
12
12
|
|
|
13
13
|
|
|
14
|
+
def setPermissions(path, dirmode=0o777, filemode=0o644):
|
|
15
|
+
"""
|
|
16
|
+
Set permissions on download assets so that workers can have full read
|
|
17
|
+
access to them regardless of user. For directories, they have full general
|
|
18
|
+
access.
|
|
19
|
+
"""
|
|
20
|
+
if os.path.isfile(path):
|
|
21
|
+
try:
|
|
22
|
+
os.chmod(path, filemode)
|
|
23
|
+
except Exception:
|
|
24
|
+
pass
|
|
25
|
+
else:
|
|
26
|
+
for dirpath, _, filenames in os.walk(path):
|
|
27
|
+
try:
|
|
28
|
+
os.chmod(dirpath, dirmode)
|
|
29
|
+
except Exception:
|
|
30
|
+
pass
|
|
31
|
+
for filename in filenames:
|
|
32
|
+
try:
|
|
33
|
+
os.chmod(os.path.join(dirpath, filename), filemode)
|
|
34
|
+
except Exception:
|
|
35
|
+
pass
|
|
36
|
+
|
|
37
|
+
|
|
14
38
|
class ProgressPipe(Transform):
|
|
15
39
|
"""
|
|
16
40
|
This can be used to stream progress information out of a running docker container as
|
|
@@ -98,6 +122,7 @@ class GirderFileIdToVolume(GirderClientTransform):
|
|
|
98
122
|
rel_path, self._file_path = self._create_file_path(dir)
|
|
99
123
|
|
|
100
124
|
self.gc.downloadFile(self._file_id, self._file_path)
|
|
125
|
+
setPermissions(self._file_path)
|
|
101
126
|
|
|
102
127
|
# Return the path inside the container
|
|
103
128
|
return os.path.join(self._volume.container_path, rel_path)
|
|
@@ -155,6 +180,7 @@ class GirderFolderIdToVolume(GirderClientTransform):
|
|
|
155
180
|
rel_path, self._folder_path = self._create_folder_path(dir)
|
|
156
181
|
|
|
157
182
|
self.gc.downloadFolderRecursive(self._folder_id, self._folder_path)
|
|
183
|
+
setPermissions(self._folder_path)
|
|
158
184
|
|
|
159
185
|
# Return the path inside the container
|
|
160
186
|
return os.path.join(self._volume.container_path, rel_path)
|
|
@@ -201,6 +227,7 @@ class GirderItemIdToVolume(GirderClientTransform):
|
|
|
201
227
|
rel_path, self._item_path = self._create_item_path(self._volume.host_path)
|
|
202
228
|
|
|
203
229
|
self.gc.downloadItem(self._item_id, self._item_path)
|
|
230
|
+
setPermissions(self._item_path)
|
|
204
231
|
|
|
205
232
|
# downloadItem always puts the item underneath the dest at its transformed name,
|
|
206
233
|
# so we find where it placed it with listdir
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/_test_plugins/__init__.py
RENAMED
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/_test_plugins/plugins.py
RENAMED
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/_test_plugins/tasks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/context/girder_context.py
RENAMED
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/context/nongirder_context.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/docker/stream_adapter.py
RENAMED
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/docker/tasks/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/__init__.py
RENAMED
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/api/__init__.py
RENAMED
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/api/worker.py
RENAMED
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/celery.py
RENAMED
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/constants.py
RENAMED
|
File without changes
|
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/status.py
RENAMED
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker/girder_plugin/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{girder-worker-0.10.2.dev4 → girder-worker-0.10.2.dev8}/girder_worker.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|