girder-worker 0.10.7.dev3__tar.gz → 0.10.7.dev5__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.
Files changed (79) hide show
  1. {girder_worker-0.10.7.dev3/girder_worker.egg-info → girder_worker-0.10.7.dev5}/PKG-INFO +1 -1
  2. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/docker/tasks/__init__.py +37 -9
  3. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5/girder_worker.egg-info}/PKG-INFO +1 -1
  4. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker.egg-info/SOURCES.txt +2 -0
  5. girder_worker-0.10.7.dev5/girder_worker.egg-info/scm_file_list.json +157 -0
  6. girder_worker-0.10.7.dev5/girder_worker.egg-info/scm_version.json +8 -0
  7. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/.circleci/config.yml +0 -0
  8. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/.codecov.yml +0 -0
  9. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/.coveragerc.pytest +0 -0
  10. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/.dockerignore +0 -0
  11. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/.gitignore +0 -0
  12. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/CHANGELOG.rst +0 -0
  13. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/CONTRIBUTING.md +0 -0
  14. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/Dockerfile +0 -0
  15. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/HACKING.md +0 -0
  16. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/LICENSE +0 -0
  17. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/MANIFEST.in +0 -0
  18. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/NOTICE +0 -0
  19. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/README.rst +0 -0
  20. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/TRANSITION.md +0 -0
  21. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/docker-compose.yml +0 -0
  22. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/docker-entrypoint.sh +0 -0
  23. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/docker.env +0 -0
  24. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/.gitignore +0 -0
  25. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/__init__.py +0 -0
  26. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/__main__.py +0 -0
  27. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/_test_plugins/__init__.py +0 -0
  28. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/_test_plugins/plugins.py +0 -0
  29. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/_test_plugins/tasks.py +0 -0
  30. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/app.py +0 -0
  31. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/celeryconfig.py +0 -0
  32. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/configure.py +0 -0
  33. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/context/__init__.py +0 -0
  34. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/context/girder_context.py +0 -0
  35. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/context/nongirder_context.py +0 -0
  36. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/docker/__init__.py +0 -0
  37. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/docker/io/__init__.py +0 -0
  38. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/docker/io/girder.py +0 -0
  39. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/docker/nvidia.py +0 -0
  40. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/docker/stream_adapter.py +0 -0
  41. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/docker/transforms/__init__.py +0 -0
  42. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/docker/transforms/girder.py +0 -0
  43. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/docker/utils.py +0 -0
  44. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/entrypoint.py +0 -0
  45. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/__init__.py +0 -0
  46. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/api/__init__.py +0 -0
  47. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/api/worker.py +0 -0
  48. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/celery.py +0 -0
  49. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/constants.py +0 -0
  50. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/event_handlers.py +0 -0
  51. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/status.py +0 -0
  52. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/utils.py +0 -0
  53. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/web_client/JobStatus.js +0 -0
  54. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/web_client/main.js +0 -0
  55. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/web_client/package.json +0 -0
  56. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/web_client/routes.js +0 -0
  57. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/web_client/stylesheets/jobDetailsWidget.styl +0 -0
  58. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/web_client/stylesheets/taskStatusView.styl +0 -0
  59. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/web_client/templates/configView.pug +0 -0
  60. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/web_client/templates/taskStatusView.pug +0 -0
  61. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/web_client/views/ConfigView.js +0 -0
  62. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/girder_plugin/web_client/views/taskStatusView.js +0 -0
  63. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/log_utils.py +0 -0
  64. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/task.py +0 -0
  65. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/utils.py +0 -0
  66. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker/worker.dist.cfg +0 -0
  67. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker.egg-info/dependency_links.txt +0 -0
  68. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker.egg-info/entry_points.txt +0 -0
  69. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker.egg-info/not-zip-safe +0 -0
  70. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker.egg-info/requires.txt +0 -0
  71. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/girder_worker.egg-info/top_level.txt +0 -0
  72. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/pyproject.toml +0 -0
  73. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/requirements-dev.in +0 -0
  74. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/requirements.in +0 -0
  75. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/requirements.txt +0 -0
  76. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/scripts/install_requirements.py +0 -0
  77. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/setup.cfg +0 -0
  78. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/setup.py +0 -0
  79. {girder_worker-0.10.7.dev3 → girder_worker-0.10.7.dev5}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: girder-worker
3
- Version: 0.10.7.dev3
3
+ Version: 0.10.7.dev5
4
4
  Summary: Batch execution engine built on celery.
5
5
  Home-page: https://github.com/girder/girder_worker
6
6
  Author: Kitware, Inc.
@@ -49,6 +49,10 @@ def _pull_image(image):
49
49
  raise
50
50
 
51
51
 
52
+ def _is_no_such_container(exc):
53
+ return 'No such container' in str(exc) or type(exc).__name__ == 'NotFound'
54
+
55
+
52
56
  def _get_docker_network():
53
57
  try:
54
58
  ip = socket.gethostbyname(socket.gethostname())
@@ -57,10 +61,23 @@ def _get_docker_network():
57
61
  client = docker.from_env(version='auto', timeout=timeout)
58
62
  else:
59
63
  client = docker.from_env(version='auto')
60
- for container in client.containers.list(all=True, filters={'status': 'running'}):
61
- for nw in container.attrs['NetworkSettings']['Networks'].values():
64
+ # we use client.api.containers rather than client.containers.list
65
+ # because containers.lists casts to a list which can throw an
66
+ # exception rather than allowing graceful handling.
67
+ for container in client.api.containers(all=True, filters={'status': ['running']}):
68
+ cid = container.get('Id') or container.get('ID')
69
+ if not cid:
70
+ continue
71
+ try:
72
+ data = client.api.inspect_container(cid)
73
+ except Exception as exc:
74
+ if _is_no_such_container(exc):
75
+ continue
76
+ raise
77
+ networks = (data.get('NetworkSettings', {}) or {}).get('Networks', {}) or {}
78
+ for nw in networks.values():
62
79
  if nw['IPAddress'] == ip:
63
- return 'container:%s' % container.id
80
+ return 'container:%s' % cid
64
81
  except Exception:
65
82
  logger.exception('Failed to get docker network')
66
83
 
@@ -68,12 +85,23 @@ def _get_docker_network():
68
85
  def _remove_stopped_container(client, name):
69
86
  if name is None:
70
87
  return
71
- for container in client.containers.list(all=True, filters={'name': name}):
72
- try:
73
- logger.info('Removing container %s ' % (name))
74
- container.remove()
75
- except Exception:
76
- pass
88
+ # we use client.api.containers rather than client.containers.list
89
+ # because containers.lists casts to a list which can throw an
90
+ # exception rather than allowing graceful handling.
91
+ try:
92
+ for container in client.api.containers(all=True, filters={'name': [name]}):
93
+ cid = container.get('Id') or container.get('ID')
94
+ if not cid:
95
+ continue
96
+ try:
97
+ logger.info('Removing container %s ' % (name))
98
+ client.api.remove_container(cid)
99
+ except Exception:
100
+ pass
101
+ except Exception as exc:
102
+ if _is_no_such_container(exc):
103
+ return
104
+ raise
77
105
 
78
106
 
79
107
  def _run_container(image, container_args, **kwargs):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: girder-worker
3
- Version: 0.10.7.dev3
3
+ Version: 0.10.7.dev5
4
4
  Summary: Batch execution engine built on celery.
5
5
  Home-page: https://github.com/girder/girder_worker
6
6
  Author: Kitware, Inc.
@@ -38,6 +38,8 @@ girder_worker.egg-info/dependency_links.txt
38
38
  girder_worker.egg-info/entry_points.txt
39
39
  girder_worker.egg-info/not-zip-safe
40
40
  girder_worker.egg-info/requires.txt
41
+ girder_worker.egg-info/scm_file_list.json
42
+ girder_worker.egg-info/scm_version.json
41
43
  girder_worker.egg-info/top_level.txt
42
44
  girder_worker/_test_plugins/__init__.py
43
45
  girder_worker/_test_plugins/plugins.py
@@ -0,0 +1,157 @@
1
+ {
2
+ "files": [
3
+ ".codecov.yml",
4
+ ".coveragerc.pytest",
5
+ ".dockerignore",
6
+ ".gitignore",
7
+ "CHANGELOG.rst",
8
+ "CONTRIBUTING.md",
9
+ "CTestConfig.cmake",
10
+ "Dockerfile",
11
+ "HACKING.md",
12
+ "LICENSE",
13
+ "MANIFEST.in",
14
+ "NOTICE",
15
+ "README.rst",
16
+ "TRANSITION.md",
17
+ "docker-compose.yml",
18
+ "docker-entrypoint.sh",
19
+ "docker.env",
20
+ "pyproject.toml",
21
+ "requirements-dev.in",
22
+ "requirements.in",
23
+ "requirements.txt",
24
+ "setup.py",
25
+ "tox.ini",
26
+ ".circleci/config.yml",
27
+ "docs/Makefile",
28
+ "docs/api-docs.rst",
29
+ "docs/builtin-plugins.rst",
30
+ "docs/conf.py",
31
+ "docs/developer-docs.rst",
32
+ "docs/getting-started.rst",
33
+ "docs/important-differences.rst",
34
+ "docs/index.rst",
35
+ "docs/installation.rst",
36
+ "docs/license.png",
37
+ "docs/plugins.rst",
38
+ "docs/using-from-girder.rst",
39
+ "docs/static/data.json",
40
+ "docs/static/facebook-data.json",
41
+ "docs/static/facebook-example-spec.json",
42
+ "docs/static/facebook-example-workflow.png",
43
+ "docs/static/facebook-example-workflow.xml",
44
+ "docs/static/facebook-example.css",
45
+ "docs/static/facebook-example.html",
46
+ "docs/static/facebook-example.js",
47
+ "docs/static/facebook-sample-data.txt",
48
+ "docs/static/favicon.png",
49
+ "docs/static/lenna.jpg",
50
+ "docs/static/lenna10.jpg",
51
+ "docs/static/sidebar.png",
52
+ "docs/templates/page.html",
53
+ "examples/plugin_example/.gitignore",
54
+ "examples/plugin_example/README.md",
55
+ "examples/plugin_example/example_client.py",
56
+ "examples/plugin_example/setup.py",
57
+ "examples/plugin_example/gwexample/__init__.py",
58
+ "examples/plugin_example/gwexample/analyses/__init__.py",
59
+ "examples/plugin_example/gwexample/analyses/tasks.py",
60
+ "girder_worker/.gitignore",
61
+ "girder_worker/__init__.py",
62
+ "girder_worker/__main__.py",
63
+ "girder_worker/app.py",
64
+ "girder_worker/celeryconfig.py",
65
+ "girder_worker/configure.py",
66
+ "girder_worker/entrypoint.py",
67
+ "girder_worker/log_utils.py",
68
+ "girder_worker/task.py",
69
+ "girder_worker/utils.py",
70
+ "girder_worker/worker.dist.cfg",
71
+ "girder_worker/_test_plugins/__init__.py",
72
+ "girder_worker/_test_plugins/plugins.py",
73
+ "girder_worker/_test_plugins/tasks.py",
74
+ "girder_worker/context/__init__.py",
75
+ "girder_worker/context/girder_context.py",
76
+ "girder_worker/context/nongirder_context.py",
77
+ "girder_worker/docker/__init__.py",
78
+ "girder_worker/docker/nvidia.py",
79
+ "girder_worker/docker/stream_adapter.py",
80
+ "girder_worker/docker/utils.py",
81
+ "girder_worker/docker/io/__init__.py",
82
+ "girder_worker/docker/io/girder.py",
83
+ "girder_worker/docker/tasks/__init__.py",
84
+ "girder_worker/docker/transforms/__init__.py",
85
+ "girder_worker/docker/transforms/girder.py",
86
+ "girder_worker/girder_plugin/__init__.py",
87
+ "girder_worker/girder_plugin/celery.py",
88
+ "girder_worker/girder_plugin/constants.py",
89
+ "girder_worker/girder_plugin/event_handlers.py",
90
+ "girder_worker/girder_plugin/status.py",
91
+ "girder_worker/girder_plugin/utils.py",
92
+ "girder_worker/girder_plugin/api/__init__.py",
93
+ "girder_worker/girder_plugin/api/worker.py",
94
+ "girder_worker/girder_plugin/web_client/JobStatus.js",
95
+ "girder_worker/girder_plugin/web_client/main.js",
96
+ "girder_worker/girder_plugin/web_client/package.json",
97
+ "girder_worker/girder_plugin/web_client/routes.js",
98
+ "girder_worker/girder_plugin/web_client/stylesheets/jobDetailsWidget.styl",
99
+ "girder_worker/girder_plugin/web_client/stylesheets/taskStatusView.styl",
100
+ "girder_worker/girder_plugin/web_client/templates/configView.pug",
101
+ "girder_worker/girder_plugin/web_client/templates/taskStatusView.pug",
102
+ "girder_worker/girder_plugin/web_client/views/ConfigView.js",
103
+ "girder_worker/girder_plugin/web_client/views/taskStatusView.js",
104
+ "scripts/install_requirements.py",
105
+ "tests/__init__.py",
106
+ "tests/config_test.py",
107
+ "tests/conftest.py",
108
+ "tests/task_cancellation_test.py",
109
+ "tests/task_plugin_test.py",
110
+ "tests/task_signal_test.py",
111
+ "tests/test_app.py",
112
+ "tests/test_docker_io.py",
113
+ "tests/test_docker_nvidia.py",
114
+ "tests/test_docker_stream_adapter.py",
115
+ "tests/test_docker_tasks.py",
116
+ "tests/test_docker_transforms.py",
117
+ "tests/test_docker_utils.py",
118
+ "tests/test_girder_plugin.py",
119
+ "tests/test_utils.py",
120
+ "tests/integration/.gitignore",
121
+ "tests/integration/Dockerfile.girder-py3",
122
+ "tests/integration/Dockerfile.girder_worker-py3",
123
+ "tests/integration/Makefile",
124
+ "tests/integration/README.md",
125
+ "tests/integration/__init__.py",
126
+ "tests/integration/conftest.py",
127
+ "tests/integration/docker-compose.py3.yml",
128
+ "tests/integration/docker-compose.yml",
129
+ "tests/integration/requirements.txt",
130
+ "tests/integration/test_celery.py",
131
+ "tests/integration/test_docker.py",
132
+ "tests/integration/utilities.py",
133
+ "tests/integration/common_tasks/setup.py",
134
+ "tests/integration/common_tasks/common_tasks/__init__.py",
135
+ "tests/integration/common_tasks/common_tasks/test_tasks/__init__.py",
136
+ "tests/integration/common_tasks/common_tasks/test_tasks/cancel.py",
137
+ "tests/integration/common_tasks/common_tasks/test_tasks/fail.py",
138
+ "tests/integration/common_tasks/common_tasks/test_tasks/fib.py",
139
+ "tests/integration/common_tasks/common_tasks/test_tasks/girder_client.py",
140
+ "tests/integration/fixtures/read.txt",
141
+ "tests/integration/fixtures/docker_test_image/Dockerfile",
142
+ "tests/integration/fixtures/docker_test_image/test.py",
143
+ "tests/integration/integration_test_endpoints/plugin.yml",
144
+ "tests/integration/integration_test_endpoints/setup.py",
145
+ "tests/integration/integration_test_endpoints/integration_test_endpoints/__init__.py",
146
+ "tests/integration/integration_test_endpoints/integration_test_endpoints/docker.py",
147
+ "tests/integration/integration_test_endpoints/integration_test_endpoints/raw.py",
148
+ "tests/integration/integration_test_endpoints/integration_test_endpoints/utilities.py",
149
+ "tests/integration/scripts/.gitignore",
150
+ "tests/integration/scripts/ansible.cfg",
151
+ "tests/integration/scripts/girder_entrypoint.sh",
152
+ "tests/integration/scripts/gw_entrypoint.sh",
153
+ "tests/integration/scripts/inventory",
154
+ "tests/integration/scripts/setup.yml",
155
+ "tests/integration/scripts/wait-for-it.sh"
156
+ ]
157
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.10.6",
3
+ "distance": 5,
4
+ "node": "ga8a9edf37465d114f87bc932dffb222606b9430c",
5
+ "dirty": false,
6
+ "branch": "master",
7
+ "node_date": "2026-07-28"
8
+ }