Revision c4e0d065 src/Ganeti/Query/Server.hs
b/src/Ganeti/Query/Server.hs | ||
---|---|---|
53 | 53 |
import Ganeti.OpCodes (TagObject(..)) |
54 | 54 |
import qualified Ganeti.Query.Language as Qlang |
55 | 55 |
import Ganeti.Query.Query |
56 |
import Ganeti.Query.Filter (FilterConstructor, makeSimpleFilter |
|
57 |
, makeHostnameFilter) |
|
56 |
import Ganeti.Query.Filter (makeSimpleFilter) |
|
58 | 57 |
|
59 | 58 |
-- | A type for functions that can return the configuration when |
60 | 59 |
-- executed. |
... | ... | |
66 | 65 |
-> [Either String Integer] -- ^ Requested names |
67 | 66 |
-- (empty means all) |
68 | 67 |
-> [String] -- ^ Requested fields |
69 |
-> Maybe FilterConstructor -- ^ the filter algorithm |
|
70 |
-- to be used, defaults to |
|
71 |
-- makeSimpleFilter |
|
72 | 68 |
-> Bool -- ^ Whether to do sync queries or not |
73 | 69 |
-> IO (GenericResult GanetiException JSValue) |
74 |
handleClassicQuery _ _ _ _ _ True =
|
|
70 |
handleClassicQuery _ _ _ _ True = |
|
75 | 71 |
return . Bad $ OpPrereqError "Sync queries are not allowed" ECodeInval |
76 |
handleClassicQuery cfg qkind names fields filterconstr _ = do |
|
77 |
let fltcon = fromMaybe makeSimpleFilter filterconstr |
|
78 |
flt = fltcon (nameField qkind) names |
|
72 |
handleClassicQuery cfg qkind names fields _ = do |
|
73 |
let flt = makeSimpleFilter (nameField qkind) names |
|
79 | 74 |
qr <- query cfg True (Qlang.Query qkind fields flt) |
80 | 75 |
return $ showJSON <$> (qr >>= queryCompat) |
81 | 76 |
|
... | ... | |
168 | 163 |
|
169 | 164 |
handleCall cfg (QueryNodes names fields lock) = |
170 | 165 |
handleClassicQuery cfg (Qlang.ItemTypeOpCode Qlang.QRNode) |
171 |
(map Left names) fields (Just makeHostnameFilter) lock
|
|
166 |
(map Left names) fields lock |
|
172 | 167 |
|
173 | 168 |
handleCall cfg (QueryGroups names fields lock) = |
174 | 169 |
handleClassicQuery cfg (Qlang.ItemTypeOpCode Qlang.QRGroup) |
175 |
(map Left names) fields Nothing lock
|
|
170 |
(map Left names) fields lock |
|
176 | 171 |
|
177 | 172 |
handleCall cfg (QueryJobs names fields) = |
178 | 173 |
handleClassicQuery cfg (Qlang.ItemTypeLuxi Qlang.QRJob) |
179 |
(map (Right . fromIntegral . fromJobId) names) fields Nothing False
|
|
174 |
(map (Right . fromIntegral . fromJobId) names) fields False |
|
180 | 175 |
|
181 | 176 |
handleCall _ op = |
182 | 177 |
return . Bad $ |
Also available in: Unified diff