Revision b4b3266b
b/lib/objects.py | ||
---|---|---|
1894 | 1894 |
return obj |
1895 | 1895 |
|
1896 | 1896 |
|
1897 |
class QueryRequest(ConfigObject): |
|
1898 |
"""Object holding a query request. |
|
1899 |
|
|
1900 |
""" |
|
1901 |
__slots__ = [ |
|
1902 |
"what", |
|
1903 |
"fields", |
|
1904 |
"qfilter", |
|
1905 |
] |
|
1906 |
|
|
1907 |
|
|
1908 | 1897 |
class QueryResponse(_QueryResponseBase): |
1909 | 1898 |
"""Object holding the response to a query. |
1910 | 1899 |
|
b/lib/server/masterd.py | ||
---|---|---|
302 | 302 |
|
303 | 303 |
elif method == luxi.REQ_QUERY: |
304 | 304 |
(what, fields, qfilter) = args |
305 |
req = objects.QueryRequest(what=what, fields=fields, qfilter=qfilter) |
|
306 | 305 |
|
307 |
if req.what in constants.QR_VIA_OP:
|
|
308 |
result = self._Query(opcodes.OpQuery(what=req.what, fields=req.fields,
|
|
309 |
qfilter=req.qfilter))
|
|
310 |
elif req.what == constants.QR_LOCK:
|
|
311 |
if req.qfilter is not None:
|
|
306 |
if what in constants.QR_VIA_OP: |
|
307 |
result = self._Query(opcodes.OpQuery(what=what, fields=fields,
|
|
308 |
qfilter=qfilter)) |
|
309 |
elif what == constants.QR_LOCK: |
|
310 |
if qfilter is not None: |
|
312 | 311 |
raise errors.OpPrereqError("Lock queries can't be filtered") |
313 |
return context.glm.QueryLocks(req.fields)
|
|
314 |
elif req.what == constants.QR_JOB:
|
|
315 |
return queue.QueryJobs(req.fields, req.qfilter)
|
|
316 |
elif req.what in constants.QR_VIA_LUXI:
|
|
312 |
return context.glm.QueryLocks(fields) |
|
313 |
elif what == constants.QR_JOB: |
|
314 |
return queue.QueryJobs(fields, qfilter)
|
|
315 |
elif what in constants.QR_VIA_LUXI: |
|
317 | 316 |
raise NotImplementedError |
318 | 317 |
else: |
319 |
raise errors.OpPrereqError("Resource type '%s' unknown" % req.what,
|
|
318 |
raise errors.OpPrereqError("Resource type '%s' unknown" % what, |
|
320 | 319 |
errors.ECODE_INVAL) |
321 | 320 |
|
322 | 321 |
return result |
Also available in: Unified diff