sliderule-cli 5.6.1__tar.gz → 5.6.2__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.
- {sliderule_cli-5.6.1/src/sliderule_cli.egg-info → sliderule_cli-5.6.2}/PKG-INFO +1 -1
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2/src/sliderule_cli.egg-info}/PKG-INFO +1 -1
- sliderule_cli-5.6.2/src/sliderule_cli.egg-info/scm_version.json +8 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/src/sliderule_runner/database.py +1 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/src/sliderule_runner/main.py +39 -8
- sliderule_cli-5.6.1/src/sliderule_cli.egg-info/scm_version.json +0 -8
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/.gitignore +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/LICENSE +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/README.md +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/pyproject.toml +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/setup.cfg +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/src/sliderule_cli.egg-info/SOURCES.txt +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/src/sliderule_cli.egg-info/dependency_links.txt +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/src/sliderule_cli.egg-info/entry_points.txt +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/src/sliderule_cli.egg-info/requires.txt +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/src/sliderule_cli.egg-info/scm_file_list.json +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/src/sliderule_cli.egg-info/top_level.txt +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/src/sliderule_cluster/__init__.py +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/src/sliderule_cluster/main.py +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/src/sliderule_provisioner/__init__.py +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/src/sliderule_provisioner/main.py +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/src/sliderule_recorder/__init__.py +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/src/sliderule_recorder/environment.yml +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/src/sliderule_recorder/main.py +0 -0
- {sliderule_cli-5.6.1 → sliderule_cli-5.6.2}/src/sliderule_runner/__init__.py +0 -0
|
@@ -122,9 +122,10 @@ class Tool:
|
|
|
122
122
|
try:
|
|
123
123
|
if submission["complete"]:
|
|
124
124
|
print(f"Scraping {name} ...")
|
|
125
|
-
for
|
|
125
|
+
for i in range(len(submission["results"])):
|
|
126
|
+
result = submission["results"][i]
|
|
126
127
|
if result["status"] in self.args.status:
|
|
127
|
-
print(f
|
|
128
|
+
print(f'{i:-5d}: {result["arg"]}')
|
|
128
129
|
arg_list.append(result["arg"])
|
|
129
130
|
else:
|
|
130
131
|
print(f"Skipping {name} because it is still pending")
|
|
@@ -142,17 +143,32 @@ class Tool:
|
|
|
142
143
|
complete = job["complete"]
|
|
143
144
|
print(f"Statusing {name} ...")
|
|
144
145
|
if not complete:
|
|
145
|
-
|
|
146
|
+
queue_status = self.session.runner.queue(job_id=job["job_id"], queue=queue, verbose=True)
|
|
147
|
+
# jobs
|
|
148
|
+
child_jobs = queue_status["jobs"]
|
|
149
|
+
self.database.submissions[name]["jobs"] = {}
|
|
150
|
+
for child_job in child_jobs:
|
|
151
|
+
self.database.submissions[name]["jobs"][int(child_job["index"])] = child_job
|
|
152
|
+
# report
|
|
153
|
+
report = queue_status["report"]
|
|
146
154
|
self.database.submissions[name]["status"] = report
|
|
147
|
-
|
|
155
|
+
jobs_in_progress = sum([report[s] for s in [JobState.SUBMITTED, JobState.PENDING, JobState.RUNNABLE, JobState.STARTING, JobState.RUNNING]])
|
|
156
|
+
jobs_complete = sum([report[s] for s in [JobState.SUCCEEDED, JobState.FAILED]])
|
|
157
|
+
if jobs_in_progress == 0 and jobs_complete > 0:
|
|
148
158
|
print(f"Job {name} complete, reading results ...")
|
|
149
159
|
self.database.submissions[name]["complete"] = True
|
|
150
160
|
self.database.submissions[name]["results"] = self.__get_results(job["run_url"])
|
|
151
161
|
else:
|
|
152
162
|
print(f"Job {name} still pending")
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
163
|
+
if self.args.verbose:
|
|
164
|
+
print(",".join([f"{c:>30}" for c in ["NAME"]] + [f"{c:>10}" for c in ["INDEX", "STATUS"]]))
|
|
165
|
+
for name,job in self.database.submissions.items():
|
|
166
|
+
for index, child_job in job["jobs"].items():
|
|
167
|
+
print(",".join([f"{c:>30}" for c in [name]] + [f"{c:>10}" for c in [index, child_job["status"]]]))
|
|
168
|
+
else:
|
|
169
|
+
print(",".join([f"{c:>30}" for c in ["NAME"]] + [f"{c:>10}" for c in list(JobState)]))
|
|
170
|
+
for name,job in self.database.submissions.items():
|
|
171
|
+
print(",".join([f"{c:>30}" for c in [name]] + [f"{c:>10}" for c in [job["status"][state] for state in list(JobState)]]))
|
|
156
172
|
|
|
157
173
|
# Generate Report
|
|
158
174
|
def generate_report(self):
|
|
@@ -189,9 +205,18 @@ class Tool:
|
|
|
189
205
|
rsps = self.session.runner.cancel(job_list=[job_id], queue=queue)
|
|
190
206
|
print(f"Cancelled submission {name}: {rsps}")
|
|
191
207
|
|
|
208
|
+
# Get Logs
|
|
209
|
+
def get_logs(self):
|
|
210
|
+
name = self.args.name
|
|
211
|
+
index = self.args.index
|
|
212
|
+
job_id = self.database.submissions[name]["jobs"][str(index)]["job_id"]
|
|
213
|
+
events = self.session.runner.logs(job_id=job_id)
|
|
214
|
+
for event in events:
|
|
215
|
+
print(event)
|
|
216
|
+
|
|
192
217
|
# Finish
|
|
193
218
|
def finish(self):
|
|
194
|
-
if not self.args.dryrun:
|
|
219
|
+
if not self.args.dryrun and "archive" not in self.args:
|
|
195
220
|
# save database
|
|
196
221
|
self.database.write()
|
|
197
222
|
|
|
@@ -249,6 +274,12 @@ def main():
|
|
|
249
274
|
cancel.add_argument('--name', type=str, required=True) # name of submission
|
|
250
275
|
cancel.set_defaults(func=Tool.cancel_job)
|
|
251
276
|
|
|
277
|
+
# logs
|
|
278
|
+
logs = subparsers.add_parser("logs", parents=[common], help="get log messages for a child job")
|
|
279
|
+
logs.add_argument('--name', type=str, required=True) # name of submission
|
|
280
|
+
logs.add_argument('--index', type=int, required=True) # job index
|
|
281
|
+
logs.set_defaults(func=Tool.get_logs)
|
|
282
|
+
|
|
252
283
|
# parse command line
|
|
253
284
|
args = parser.parse_args()
|
|
254
285
|
|
|
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
|