Revision f2374060
b/htools/Ganeti/HTools/QC.hs | ||
---|---|---|
57 | 57 |
import Text.Printf (printf) |
58 | 58 |
import Data.List (intercalate, nub, isPrefixOf) |
59 | 59 |
import Data.Maybe |
60 |
import qualified Data.Set as Set |
|
60 | 61 |
import Control.Monad |
61 | 62 |
import Control.Applicative |
62 | 63 |
import qualified System.Console.GetOpt as GetOpt |
... | ... | |
548 | 549 |
<*> arbitrary <*> arbitrary <*> arbitrary <*> getFQDN |
549 | 550 |
<*> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary |
550 | 551 |
<*> arbitrary <*> arbitrary <*> getFQDN <*> arbitrary |
552 |
<*> (Set.fromList <$> genTags) |
|
551 | 553 |
|
552 | 554 |
instance Arbitrary Rpc.RpcCallAllInstancesInfo where |
553 | 555 |
arbitrary = Rpc.RpcCallAllInstancesInfo <$> arbitrary |
b/htools/Ganeti/Objects.hs | ||
---|---|---|
293 | 293 |
] |
294 | 294 |
++ timeStampFields |
295 | 295 |
++ uuidFields |
296 |
++ serialFields) |
|
296 |
++ serialFields |
|
297 |
++ tagsFields) |
|
297 | 298 |
|
298 | 299 |
-- * IPolicy definitions |
299 | 300 |
|
... | ... | |
374 | 375 |
] |
375 | 376 |
++ timeStampFields |
376 | 377 |
++ uuidFields |
377 |
++ serialFields) |
|
378 |
++ serialFields |
|
379 |
++ tagsFields) |
|
378 | 380 |
|
379 | 381 |
-- * NodeGroup definitions |
380 | 382 |
|
... | ... | |
402 | 404 |
] |
403 | 405 |
++ timeStampFields |
404 | 406 |
++ uuidFields |
405 |
++ serialFields) |
|
407 |
++ serialFields |
|
408 |
++ tagsFields) |
|
406 | 409 |
|
407 | 410 |
-- | IP family type |
408 | 411 |
$(declareIADT "IpFamily" |
b/htools/Ganeti/Queryd.hs | ||
---|---|---|
29 | 29 |
|
30 | 30 |
where |
31 | 31 |
|
32 |
import Control.Applicative |
|
32 | 33 |
import Control.Concurrent |
33 | 34 |
import Control.Exception |
34 | 35 |
import Data.Bits (bitSize) |
... | ... | |
41 | 42 |
|
42 | 43 |
import qualified Ganeti.Constants as C |
43 | 44 |
import Ganeti.Objects |
44 |
--import Ganeti.Config
|
|
45 |
import qualified Ganeti.Config as Config
|
|
45 | 46 |
import Ganeti.BasicTypes |
46 | 47 |
import Ganeti.Logging |
47 | 48 |
import Ganeti.Luxi |
... | ... | |
118 | 119 |
|
119 | 120 |
in return . Ok . J.makeObj $ obj |
120 | 121 |
|
122 |
handleCall cfg (QueryTags kind name) = |
|
123 |
let tags = case kind of |
|
124 |
TagCluster -> Ok . clusterTags $ configCluster cfg |
|
125 |
TagGroup -> groupTags <$> Config.getGroup cfg name |
|
126 |
TagNode -> nodeTags <$> Config.getNode cfg name |
|
127 |
TagInstance -> instTags <$> Config.getInstance cfg name |
|
128 |
in return (J.showJSON <$> tags) |
|
129 |
|
|
121 | 130 |
handleCall _ op = |
122 | 131 |
return . Bad $ "Luxi call '" ++ strOfOp op ++ "' not implemented" |
123 | 132 |
|
b/lib/cli.py | ||
---|---|---|
464 | 464 |
|
465 | 465 |
""" |
466 | 466 |
kind, name = _ExtractTagsObject(opts, args) |
467 |
cl = GetClient() |
|
467 |
cl = GetClient(query=True)
|
|
468 | 468 |
result = cl.QueryTags(kind, name) |
469 | 469 |
result = list(result) |
470 | 470 |
result.sort() |
b/lib/rapi/rlib2.py | ||
---|---|---|
1339 | 1339 |
if not self.name: |
1340 | 1340 |
raise http.HttpBadRequest("Missing name on tag request") |
1341 | 1341 |
|
1342 |
cl = self.GetClient() |
|
1342 |
cl = self.GetClient(query=True)
|
|
1343 | 1343 |
tags = list(cl.QueryTags(kind, self.name)) |
1344 | 1344 |
|
1345 | 1345 |
elif kind == constants.TAG_CLUSTER: |
Also available in: Unified diff