Revision a9532fb0
b/lib/cmdlib/query.py | ||
---|---|---|
31 | 31 |
from ganeti.cmdlib.instance_query import InstanceQuery |
32 | 32 |
from ganeti.cmdlib.misc import ExtStorageQuery |
33 | 33 |
from ganeti.cmdlib.network import NetworkQuery |
34 |
from ganeti.cmdlib.node import NodeQuery |
|
35 | 34 |
from ganeti.cmdlib.operating_system import OsQuery |
36 | 35 |
|
37 | 36 |
|
... | ... | |
39 | 38 |
_QUERY_IMPL = { |
40 | 39 |
constants.QR_CLUSTER: ClusterQuery, |
41 | 40 |
constants.QR_INSTANCE: InstanceQuery, |
42 |
constants.QR_NODE: NodeQuery, |
|
43 | 41 |
constants.QR_GROUP: GroupQuery, |
44 | 42 |
constants.QR_NETWORK: NetworkQuery, |
45 | 43 |
constants.QR_OS: OsQuery, |
b/lib/ht.py | ||
---|---|---|
581 | 581 |
TRebootType = TElemOf(constants.REBOOT_TYPES) |
582 | 582 |
TFileDriver = TElemOf(constants.FILE_DRIVER) |
583 | 583 |
TOobCommand = TElemOf(constants.OOB_COMMANDS) |
584 |
TQueryTypeOp = TElemOf(constants.QR_VIA_OP) |
|
584 |
# FIXME: adjust this after all queries are in haskell |
|
585 |
TQueryTypeOp = TElemOf(set(constants.QR_VIA_OP) |
|
586 |
.union(set(constants.QR_VIA_LUXI))) |
|
585 | 587 |
|
586 | 588 |
TDiskParams = \ |
587 | 589 |
Comment("Disk parameters")(TDictOf(TNonEmptyString, |
b/lib/server/masterd.py | ||
---|---|---|
361 | 361 |
elif what == constants.QR_JOB: |
362 | 362 |
return queue.QueryJobs(fields, qfilter) |
363 | 363 |
elif what in constants.QR_VIA_LUXI: |
364 |
raise NotImplementedError |
|
364 |
luxi_client = runtime.GetClient(query=True) |
|
365 |
result = luxi_client.Query(what, fields, qfilter).ToDict() |
|
365 | 366 |
else: |
366 | 367 |
raise errors.OpPrereqError("Resource type '%s' unknown" % what, |
367 | 368 |
errors.ECODE_INVAL) |
b/src/Ganeti/Constants.hs | ||
---|---|---|
3338 | 3338 |
qrViaOp = |
3339 | 3339 |
ConstantUtils.mkSet [qrCluster, |
3340 | 3340 |
qrInstance, |
3341 |
qrNode, |
|
3342 | 3341 |
qrGroup, |
3343 | 3342 |
qrOs, |
3344 | 3343 |
qrExport, |
... | ... | |
3347 | 3346 |
|
3348 | 3347 |
-- | List of resources which can be queried using Local UniX Interface |
3349 | 3348 |
qrViaLuxi :: FrozenSet String |
3350 |
qrViaLuxi = ConstantUtils.mkSet [qrLock, qrJob] |
|
3349 |
qrViaLuxi = ConstantUtils.mkSet [qrLock, qrJob, qrNode]
|
|
3351 | 3350 |
|
3352 | 3351 |
-- | List of resources which can be queried using RAPI |
3353 | 3352 |
qrViaRapi :: FrozenSet String |
3354 |
qrViaRapi = qrViaLuxi
|
|
3353 |
qrViaRapi = ConstantUtils.mkSet [qrLock, qrJob]
|
|
3355 | 3354 |
|
3356 | 3355 |
-- * Query field types |
3357 | 3356 |
|
b/test/py/cmdlib/cmdlib_unittest.py | ||
---|---|---|
23 | 23 |
|
24 | 24 |
|
25 | 25 |
import unittest |
26 |
import operator |
|
27 | 26 |
import itertools |
28 | 27 |
import copy |
29 | 28 |
|
... | ... | |
31 | 30 |
from ganeti import mcpu |
32 | 31 |
from ganeti import cmdlib |
33 | 32 |
from ganeti.cmdlib import cluster |
34 |
from ganeti.cmdlib import instance |
|
35 | 33 |
from ganeti.cmdlib import instance_storage |
36 | 34 |
from ganeti.cmdlib import instance_utils |
37 | 35 |
from ganeti.cmdlib import common |
38 | 36 |
from ganeti.cmdlib import query |
39 | 37 |
from ganeti import opcodes |
40 | 38 |
from ganeti import errors |
41 |
from ganeti import utils |
|
42 | 39 |
from ganeti import luxi |
43 | 40 |
from ganeti import ht |
44 | 41 |
from ganeti import objects |
45 |
from ganeti import compat |
|
46 |
from ganeti import rpc |
|
47 | 42 |
from ganeti import locking |
48 | 43 |
from ganeti.masterd import iallocator |
49 | 44 |
|
... | ... | |
141 | 136 |
self.assertEqual(sorted(query._QUERY_IMPL.keys()), |
142 | 137 |
sorted(constants.QR_VIA_OP)) |
143 | 138 |
|
144 |
assert constants.QR_NODE in constants.QR_VIA_OP
|
|
139 |
assert constants.QR_NODE in constants.QR_VIA_LUXI
|
|
145 | 140 |
assert constants.QR_INSTANCE in constants.QR_VIA_OP |
146 | 141 |
|
147 | 142 |
for i in constants.QR_VIA_OP: |
Also available in: Unified diff