lsst-ctrl-bps-panda 29.2025.4400__tar.gz → 29.2025.4500__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.
- {lsst_ctrl_bps_panda-29.2025.4400/python/lsst_ctrl_bps_panda.egg-info → lsst_ctrl_bps_panda-29.2025.4500}/PKG-INFO +1 -1
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/constants.py +1 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/edgenode/build_cmd_line_decoder.py +24 -2
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/panda_service.py +25 -2
- lsst_ctrl_bps_panda-29.2025.4500/python/lsst/ctrl/bps/panda/version.py +2 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500/python/lsst_ctrl_bps_panda.egg-info}/PKG-INFO +1 -1
- lsst_ctrl_bps_panda-29.2025.4400/python/lsst/ctrl/bps/panda/version.py +0 -2
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/COPYRIGHT +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/LICENSE +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/README.rst +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/bsd_license.txt +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/gpl-v3.0.txt +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/pyproject.toml +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/__init__.py +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/cli/__init__.py +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/cli/cmd/__init__.py +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/cli/cmd/panda_auth_commands.py +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/cli/panda_auth.py +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/cmd_line_embedder.py +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/conf_example/example_panda_SLAC.yaml +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/conf_example/pipelines_check_idf.yaml +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/conf_example/test_idf.yaml +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/conf_example/test_sdf.yaml +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/conf_example/test_usdf.yaml +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/edgenode/__init__.py +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/edgenode/cmd_line_decoder.py +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/panda_auth_drivers.py +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/panda_auth_utils.py +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/panda_exceptions.py +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst/ctrl/bps/panda/utils.py +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst_ctrl_bps_panda.egg-info/SOURCES.txt +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst_ctrl_bps_panda.egg-info/dependency_links.txt +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst_ctrl_bps_panda.egg-info/requires.txt +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst_ctrl_bps_panda.egg-info/top_level.txt +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/python/lsst_ctrl_bps_panda.egg-info/zip-safe +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/setup.cfg +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/tests/test_cmd_line_decoder.py +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/tests/test_cmd_line_embedder.py +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/tests/test_panda_auth_utils.py +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/tests/test_panda_service.py +0 -0
- {lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-ctrl-bps-panda
|
|
3
|
-
Version: 29.2025.
|
|
3
|
+
Version: 29.2025.4500
|
|
4
4
|
Summary: PanDA plugin for lsst-ctrl-bps.
|
|
5
5
|
Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
|
|
6
6
|
License-Expression: BSD-3-Clause OR GPL-3.0-or-later
|
|
@@ -15,8 +15,13 @@ import sys
|
|
|
15
15
|
|
|
16
16
|
from lsst.ctrl.bps.constants import DEFAULT_MEM_FMT, DEFAULT_MEM_UNIT
|
|
17
17
|
from lsst.ctrl.bps.drivers import prepare_driver
|
|
18
|
-
from lsst.ctrl.bps.panda.constants import PANDA_DEFAULT_MAX_COPY_WORKERS
|
|
19
|
-
from lsst.ctrl.bps.panda.utils import
|
|
18
|
+
from lsst.ctrl.bps.panda.constants import PANDA_DEFAULT_MAX_COPY_WORKERS, PANDA_DEFAULT_MAX_REQUEST_LENGTH
|
|
19
|
+
from lsst.ctrl.bps.panda.utils import (
|
|
20
|
+
copy_files_for_distribution,
|
|
21
|
+
download_extract_archive,
|
|
22
|
+
get_idds_client,
|
|
23
|
+
get_idds_result,
|
|
24
|
+
)
|
|
20
25
|
from lsst.resources import ResourcePath
|
|
21
26
|
from lsst.utils.timer import time_this
|
|
22
27
|
|
|
@@ -90,6 +95,23 @@ file_distribution_uri = ResourcePath(config["fileDistributionEndPoint"], forceDi
|
|
|
90
95
|
copy_files_for_distribution(bps_workflow.files_to_pre_stage, file_distribution_uri, max_copy_workers)
|
|
91
96
|
|
|
92
97
|
idds_client = get_idds_client(config)
|
|
98
|
+
|
|
99
|
+
# split workflow into steps if the workflow is hughe
|
|
100
|
+
_, max_request_length = config.search("maxRequestLength", opt={"default": PANDA_DEFAULT_MAX_REQUEST_LENGTH})
|
|
101
|
+
workflow_steps = idds_workflow.split_workflow_to_steps(
|
|
102
|
+
request_cache=config["submitPath"], max_request_length=max_request_length
|
|
103
|
+
)
|
|
104
|
+
print(f"workflow_steps: {workflow_steps}")
|
|
105
|
+
for wf_step in workflow_steps:
|
|
106
|
+
ret_step = idds_client.submit(wf_step, username=None, use_dataset_name=False)
|
|
107
|
+
status, result_step, error = get_idds_result(ret_step)
|
|
108
|
+
if status and result_step == 0:
|
|
109
|
+
msg = f"iDDS client manager successfully uploaded workflow step: {wf_step.step_name}"
|
|
110
|
+
print(msg)
|
|
111
|
+
else:
|
|
112
|
+
msg = f"iDDS client manager failed to submit workflow step {wf_step.step_name}: {ret_step}"
|
|
113
|
+
raise RuntimeError(msg)
|
|
114
|
+
|
|
93
115
|
ret = idds_client.update_build_request(request_id, signature, idds_workflow)
|
|
94
116
|
print(f"update_build_request returns: {ret}")
|
|
95
117
|
sys.exit(ret[0])
|
|
@@ -45,7 +45,10 @@ from lsst.ctrl.bps import (
|
|
|
45
45
|
WmsRunReport,
|
|
46
46
|
WmsStates,
|
|
47
47
|
)
|
|
48
|
-
from lsst.ctrl.bps.panda.constants import
|
|
48
|
+
from lsst.ctrl.bps.panda.constants import (
|
|
49
|
+
PANDA_DEFAULT_MAX_COPY_WORKERS,
|
|
50
|
+
PANDA_DEFAULT_MAX_REQUEST_LENGTH,
|
|
51
|
+
)
|
|
49
52
|
from lsst.ctrl.bps.panda.utils import (
|
|
50
53
|
add_final_idds_work,
|
|
51
54
|
add_idds_work,
|
|
@@ -111,6 +114,9 @@ class PanDAService(BaseWmsService):
|
|
|
111
114
|
return idds_build_workflow
|
|
112
115
|
|
|
113
116
|
else:
|
|
117
|
+
_, max_request_length = self.config.search(
|
|
118
|
+
"maxRequestLength", opt={"default": PANDA_DEFAULT_MAX_REQUEST_LENGTH}
|
|
119
|
+
)
|
|
114
120
|
_, max_copy_workers = self.config.search(
|
|
115
121
|
"maxCopyWorkers", opt={"default": PANDA_DEFAULT_MAX_COPY_WORKERS}
|
|
116
122
|
)
|
|
@@ -122,6 +128,7 @@ class PanDAService(BaseWmsService):
|
|
|
122
128
|
if not protocol_pattern.match(file_distribution_uri):
|
|
123
129
|
file_distribution_uri = "file://" + file_distribution_uri
|
|
124
130
|
|
|
131
|
+
idds_client = get_idds_client(self.config)
|
|
125
132
|
submit_cmd = workflow.run_attrs.get("bps_iscustom", False)
|
|
126
133
|
if not submit_cmd:
|
|
127
134
|
copy_files_for_distribution(
|
|
@@ -130,7 +137,23 @@ class PanDAService(BaseWmsService):
|
|
|
130
137
|
max_copy_workers,
|
|
131
138
|
)
|
|
132
139
|
|
|
133
|
-
|
|
140
|
+
idds_wf = workflow.idds_client_workflow
|
|
141
|
+
workflow_steps = idds_wf.split_workflow_to_steps(
|
|
142
|
+
request_cache=self.config["submitPath"], max_request_length=max_request_length
|
|
143
|
+
)
|
|
144
|
+
for wf_step in workflow_steps:
|
|
145
|
+
ret_step = idds_client.submit(wf_step, username=None, use_dataset_name=False)
|
|
146
|
+
status, result_step, error = get_idds_result(ret_step)
|
|
147
|
+
if status and result_step == 0:
|
|
148
|
+
msg = f"iDDS client manager successfully uploaded workflow step: {wf_step.step_name}"
|
|
149
|
+
_LOG.info(msg)
|
|
150
|
+
else:
|
|
151
|
+
msg = (
|
|
152
|
+
f"iDDS client manager failed to submit workflow step {wf_step.step_name}: "
|
|
153
|
+
f"{ret_step}"
|
|
154
|
+
)
|
|
155
|
+
raise RuntimeError(msg)
|
|
156
|
+
|
|
134
157
|
ret = idds_client.submit(workflow.idds_client_workflow, username=None, use_dataset_name=False)
|
|
135
158
|
_LOG.debug("iDDS client manager submit returned = %s", ret)
|
|
136
159
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-ctrl-bps-panda
|
|
3
|
-
Version: 29.2025.
|
|
3
|
+
Version: 29.2025.4500
|
|
4
4
|
Summary: PanDA plugin for lsst-ctrl-bps.
|
|
5
5
|
Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
|
|
6
6
|
License-Expression: BSD-3-Clause OR GPL-3.0-or-later
|
|
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
|
|
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
|
{lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/tests/test_cmd_line_decoder.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/tests/test_panda_auth_utils.py
RENAMED
|
File without changes
|
{lsst_ctrl_bps_panda-29.2025.4400 → lsst_ctrl_bps_panda-29.2025.4500}/tests/test_panda_service.py
RENAMED
|
File without changes
|
|
File without changes
|