diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 8949c549416909efdff600eca4fbb6f29bfad4c8..884c957f0dbe5dfd464569e21a5a2b5d861ef81f 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -496,15 +496,6 @@ class _QueryBase: # Return expanded names return self.wanted - @classmethod - def FieldsQuery(cls, fields): - """Returns list of available fields. - - @return: List of L{objects.QueryFieldDefinition} - - """ - return query.QueryFields(cls.FIELDS, fields) - def ExpandNames(self, lu): """Expand names for this query. @@ -4044,7 +4035,7 @@ class LUQueryFields(NoHooksLU): self.needed_locks = {} def Exec(self, feedback_fn): - return self.qcls.FieldsQuery(self.op.fields) + return query.QueryFields(self.qcls.FIELDS, self.op.fields) class LUNodeModifyStorage(NoHooksLU): diff --git a/lib/server/masterd.py b/lib/server/masterd.py index 89d6b3cade8826eec5c690e42e712f6f77b8758a..bbe2658b96a0d3685e0100e10b5ef79bd9c4c5af 100644 --- a/lib/server/masterd.py +++ b/lib/server/masterd.py @@ -250,18 +250,13 @@ class ClientOps: elif method == luxi.REQ_QUERY_FIELDS: req = objects.QueryFieldsRequest.FromDict(args) - if req.what in constants.QR_VIA_OP: - result = self._Query(opcodes.OpQueryFields(what=req.what, - fields=req.fields)) - elif req.what == constants.QR_LOCK: - return query.QueryFields(query.LOCK_FIELDS, req.fields) - elif req.what in constants.QR_VIA_LUXI: - raise NotImplementedError - else: + try: + fielddefs = query.ALL_FIELDS[req.what] + except KeyError: raise errors.OpPrereqError("Resource type '%s' unknown" % req.what, errors.ECODE_INVAL) - return result + return query.QueryFields(fielddefs, req.fields) elif method == luxi.REQ_QUERY_JOBS: (job_ids, fields) = args