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