Revision f9666f00 src/Ganeti/Query/Server.hs
b/src/Ganeti/Query/Server.hs | ||
---|---|---|
33 | 33 |
import Control.Concurrent |
34 | 34 |
import Control.Exception |
35 | 35 |
import Control.Monad (forever, when, zipWithM, liftM) |
36 |
import Control.Monad.IO.Class |
|
36 | 37 |
import Data.Bits (bitSize) |
37 | 38 |
import qualified Data.Set as Set (toList) |
38 | 39 |
import Data.IORef |
... | ... | |
219 | 220 |
answerEval <- sequence answer |
220 | 221 |
return . Ok . showJSON $ answerEval |
221 | 222 |
|
222 |
handleCall qlock qstat cfg (SubmitJobToDrainedQueue ops) = |
|
223 |
do |
|
223 |
handleCall qlock qstat cfg (SubmitJobToDrainedQueue ops) = runResultT $ do |
|
224 | 224 |
let mcs = Config.getMasterCandidates cfg |
225 |
jobid <- allocateJobId mcs qlock |
|
226 |
case jobid of |
|
227 |
Bad s -> return . Bad . GenericError $ s |
|
228 |
Ok jid -> do |
|
229 |
ts <- currentTimestamp |
|
230 |
job <- liftM (setReceivedTimestamp ts) |
|
231 |
$ queuedJobFromOpCodes jid ops |
|
232 |
qDir <- queueDir |
|
233 |
write_result <- writeJobToDisk qDir job |
|
234 |
case write_result of |
|
235 |
Bad s -> return . Bad . GenericError $ s |
|
236 |
Ok () -> do |
|
237 |
_ <- replicateManyJobs qDir mcs [job] |
|
238 |
_ <- forkIO $ enqueueNewJobs qstat [job] |
|
239 |
return . Ok . showJSON . fromJobId $ jid |
|
225 |
jid <- mkResultT $ allocateJobId mcs qlock |
|
226 |
ts <- liftIO currentTimestamp |
|
227 |
job <- liftM (setReceivedTimestamp ts) |
|
228 |
$ queuedJobFromOpCodes jid ops |
|
229 |
qDir <- liftIO queueDir |
|
230 |
mkResultT $ writeJobToDisk qDir job |
|
231 |
liftIO $ replicateManyJobs qDir mcs [job] |
|
232 |
_ <- liftIO . forkIO $ enqueueNewJobs qstat [job] |
|
233 |
return . showJSON . fromJobId $ jid |
|
240 | 234 |
|
241 | 235 |
handleCall qlock qstat cfg (SubmitJob ops) = |
242 | 236 |
do |
Also available in: Unified diff