Revision d9d1e541

b/lib/luxi.py
53 53
REQ_SUBMIT_JOB = "SubmitJob"
54 54
REQ_SUBMIT_JOB_TO_DRAINED_QUEUE = "SubmitJobToDrainedQueue"
55 55
REQ_SUBMIT_MANY_JOBS = "SubmitManyJobs"
56
REQ_PICKUP_JOB = "PickupJob"
56 57
REQ_WAIT_FOR_JOB_CHANGE = "WaitForJobChange"
57 58
REQ_CANCEL_JOB = "CancelJob"
58 59
REQ_ARCHIVE_JOB = "ArchiveJob"
......
78 79
  REQ_AUTO_ARCHIVE_JOBS,
79 80
  REQ_CANCEL_JOB,
80 81
  REQ_CHANGE_JOB_PRIORITY,
82
  REQ_PICKUP_JOB,
81 83
  REQ_QUERY,
82 84
  REQ_QUERY_CLUSTER_INFO,
83 85
  REQ_QUERY_CONFIG_VALUES,
......
479 481
  def SetWatcherPause(self, until):
480 482
    return self.CallMethod(REQ_SET_WATCHER_PAUSE, (until, ))
481 483

  
484
  def PickupJob(self, job):
485
    return self.CallMethod(REQ_PICKUP_JOB, (job,))
486

  
482 487
  def SubmitJob(self, ops):
483 488
    ops_state = map(lambda op: op.__getstate__(), ops)
484 489
    return self.CallMethod(REQ_SUBMIT_JOB, (ops_state, ))
b/lib/server/masterd.py
295 295
      _LogNewJob(True, job_id, ops)
296 296
      return job_id
297 297

  
298
    elif method == luxi.REQ_PICKUP_JOB:
299
      logging.info("Picking up new job from queue")
300
      (job_id, ) = args
301
      queue.PickupJob(job_id)
302

  
298 303
    elif method == luxi.REQ_SUBMIT_JOB_TO_DRAINED_QUEUE:
299 304
      logging.info("Forcefully receiving new job")
300 305
      (job_def, ) = args
b/src/Ganeti/Luxi.hs
163 163
     , simpleField "prev_log" [t| JSValue |]
164 164
     , simpleField "tmout"    [t| Int     |]
165 165
     ])
166
  , (luxiReqPickupJob,
167
     [ simpleField "job" [t| JobId |] ]
168
    )
166 169
  , (luxiReqArchiveJob,
167 170
     [ simpleField "job" [t| JobId |] ]
168 171
    )
......
394 397
                    J.readJSON e
395 398
                  _ -> J.Error "Not enough values"
396 399
              return $ WaitForJobChange jid fields pinfo pidx wtmout
400
    ReqPickupJob -> do
401
              [jid] <- fromJVal args
402
              return $ PickupJob jid
397 403
    ReqArchiveJob -> do
398 404
              [jid] <- fromJVal args
399 405
              return $ ArchiveJob jid
b/test/hs/Test/Ganeti/Luxi.hs
84 84
      Luxi.ReqWaitForJobChange -> Luxi.WaitForJobChange <$> arbitrary <*>
85 85
                                  genFields <*> pure J.JSNull <*>
86 86
                                  pure J.JSNull <*> arbitrary
87
      Luxi.ReqPickupJob -> Luxi.PickupJob <$> arbitrary
87 88
      Luxi.ReqArchiveJob -> Luxi.ArchiveJob <$> arbitrary
88 89
      Luxi.ReqAutoArchiveJobs -> Luxi.AutoArchiveJobs <$> arbitrary <*>
89 90
                                 arbitrary
b/test/py/ganeti.rapi.testutils_unittest.py
43 43
  luxi.REQ_ARCHIVE_JOB,
44 44
  luxi.REQ_AUTO_ARCHIVE_JOBS,
45 45
  luxi.REQ_CHANGE_JOB_PRIORITY,
46
  luxi.REQ_PICKUP_JOB,
46 47
  luxi.REQ_QUERY_EXPORTS,
47 48
  luxi.REQ_QUERY_CONFIG_VALUES,
48 49
  luxi.REQ_QUERY_NETWORKS,

Also available in: Unified diff