Revision d5665e10 src/Ganeti/Query/Server.hs
b/src/Ganeti/Query/Server.hs | ||
---|---|---|
40 | 40 |
import qualified Text.JSON as J |
41 | 41 |
import Text.JSON (encode, showJSON, JSValue(..)) |
42 | 42 |
import System.Info (arch) |
43 |
import System.Directory |
|
43 | 44 |
|
44 | 45 |
import qualified Ganeti.Constants as C |
45 | 46 |
import qualified Ganeti.ConstantUtils as ConstantUtils (unFrozenSet) |
... | ... | |
56 | 57 |
import Ganeti.Luxi |
57 | 58 |
import qualified Ganeti.Query.Language as Qlang |
58 | 59 |
import qualified Ganeti.Query.Cluster as QCluster |
59 |
import Ganeti.Path (queueDir, jobQueueLockFile) |
|
60 |
import Ganeti.Path (queueDir, jobQueueLockFile, jobQueueDrainFile)
|
|
60 | 61 |
import Ganeti.Rpc |
61 | 62 |
import Ganeti.Query.Query |
62 | 63 |
import Ganeti.Query.Filter (makeSimpleFilter) |
... | ... | |
293 | 294 |
_ <- executeRpcCall (masters ++ mcs) $ RpcCallSetWatcherPause time |
294 | 295 |
return . Ok . maybe JSNull showJSON $ time |
295 | 296 |
|
297 |
handleCall _ _ cfg (SetDrainFlag value) = do |
|
298 |
let mcs = Config.getMasterCandidates cfg |
|
299 |
fpath <- jobQueueDrainFile |
|
300 |
if value |
|
301 |
then writeFile fpath "" |
|
302 |
else removeFile fpath |
|
303 |
_ <- executeRpcCall mcs $ RpcCallSetDrainFlag value |
|
304 |
return . Ok . showJSON $ True |
|
305 |
|
|
296 | 306 |
handleCall _ _ _ op = |
297 | 307 |
return . Bad $ |
298 | 308 |
GenericError ("Luxi call '" ++ strOfOp op ++ "' not implemented") |
Also available in: Unified diff