|
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