Revision 493d6920 src/Ganeti/JQueue.hs
b/src/Ganeti/JQueue.hs | ||
---|---|---|
51 | 51 |
, writeJobToDisk |
52 | 52 |
, replicateManyJobs |
53 | 53 |
, isQueueOpen |
54 |
, enqueueJobs |
|
54 | 55 |
) where |
55 | 56 |
|
56 | 57 |
import Control.Concurrent.MVar |
... | ... | |
72 | 73 |
import qualified Ganeti.Constants as C |
73 | 74 |
import Ganeti.JSON |
74 | 75 |
import Ganeti.Logging |
76 |
import Ganeti.Luxi |
|
75 | 77 |
import Ganeti.Objects (Node) |
76 | 78 |
import Ganeti.OpCodes |
77 | 79 |
import Ganeti.Path |
... | ... | |
412 | 414 |
-- | Decide if job queue is open |
413 | 415 |
isQueueOpen :: IO Bool |
414 | 416 |
isQueueOpen = liftM not (jobQueueDrainFile >>= doesFileExist) |
417 |
|
|
418 |
-- | Enqueue jobs. This will guarantee that jobs get executed eventually. |
|
419 |
-- Curenntly, the implementation is to unconditionally hand over the job |
|
420 |
-- to masterd. |
|
421 |
enqueueJobs :: [QueuedJob] -> IO () |
|
422 |
enqueueJobs jobs = do |
|
423 |
socketpath <- defaultMasterSocket |
|
424 |
client <- getClient socketpath |
|
425 |
pickupResults <- mapM (flip callMethod client . PickupJob . qjId) jobs |
|
426 |
let failures = map show $ justBad pickupResults |
|
427 |
unless (null failures) |
|
428 |
. logWarning . (++) "Failed to notify masterd: " . commaJoin $ failures |
Also available in: Unified diff