|
20 | 20 | from flux.hostlist import Hostlist
|
21 | 21 | from flux.idset import IDset
|
22 | 22 | from flux.job import JobID, JobInfo, JobInfoFormat, JobList, job_fields_to_attrs
|
| 23 | +from flux.job.list import JobListConstraintParser |
23 | 24 | from flux.job.stats import JobStats
|
24 | 25 | from flux.util import (
|
25 | 26 | FilterAction,
|
| 27 | + FilterActionConcatenate, |
26 | 28 | FilterActionSetUpdate,
|
27 | 29 | FilterTrueAction,
|
28 | 30 | UtilConfig,
|
@@ -153,32 +155,30 @@ def fetch_jobs_flux(args, fields, flux_handle=None):
|
153 | 155 | if args.filter:
|
154 | 156 | LOGGER.warning("Both -a and --filter specified, ignoring -a")
|
155 | 157 | else:
|
156 |
| - args.filter.update(["pending", "running", "inactive"]) |
| 158 | + args.filter = "pending,running,inactive" |
157 | 159 |
|
158 | 160 | if not args.filter:
|
159 |
| - args.filter = {"pending", "running"} |
| 161 | + args.filter = "pending,running" |
160 | 162 |
|
161 |
| - constraint = None |
162 | 163 | if args.include:
|
163 | 164 | try:
|
164 |
| - constraint = {"ranks": [IDset(args.include).encode()]} |
| 165 | + args.filter += " ranks:" + IDset(args.include).encode() |
165 | 166 | except ValueError:
|
166 | 167 | try:
|
167 |
| - constraint = {"hostlist": [Hostlist(args.include).encode()]} |
| 168 | + args.filter += " host:" + Hostlist(args.include).encode() |
168 | 169 | except ValueError:
|
169 | 170 | raise ValueError(f"-i/--include: invalid targets: {args.include}")
|
170 | 171 |
|
171 | 172 | jobs_rpc = JobList(
|
172 | 173 | flux_handle,
|
173 | 174 | ids=args.jobids,
|
174 | 175 | attrs=attrs,
|
175 |
| - filters=args.filter, |
176 | 176 | user=args.user,
|
177 | 177 | max_entries=args.count,
|
178 | 178 | since=since,
|
179 | 179 | name=args.name,
|
180 | 180 | queue=args.queue,
|
181 |
| - constraint=constraint, |
| 181 | + constraint=JobListConstraintParser().parse(args.filter), |
182 | 182 | )
|
183 | 183 |
|
184 | 184 | jobs = jobs_rpc.jobs()
|
@@ -231,10 +231,9 @@ def parse_args():
|
231 | 231 | parser.add_argument(
|
232 | 232 | "-f",
|
233 | 233 | "--filter",
|
234 |
| - action=FilterActionSetUpdate, |
235 |
| - metavar="STATE|RESULT", |
236 |
| - default=set(), |
237 |
| - help="List jobs with specific job state or result", |
| 234 | + action=FilterActionConcatenate, |
| 235 | + metavar="QUERY", |
| 236 | + help="Restrict jobs using a constraint query string", |
238 | 237 | )
|
239 | 238 | parser.add_argument(
|
240 | 239 | "--since",
|
|
0 commit comments