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