Revision 30c945d0 test/ganeti.jqueue_unittest.py

b/test/ganeti.jqueue_unittest.py
669 669
                            for op in job.ops))
670 670

  
671 671
    opexec = _FakeExecOpCodeForProc(queue, None, None)
672
    jqueue._JobProcessor(queue, opexec, job)()
672
    self.assert_(jqueue._JobProcessor(queue, opexec, job)())
673

  
674
    # Check result
675
    self.assertEqual(job.CalcStatus(), constants.JOB_STATUS_CANCELED)
676
    self.assertEqual(job.GetInfo(["status"]), [constants.JOB_STATUS_CANCELED])
677
    self.assertFalse(job.start_timestamp)
678
    self.assert_(job.end_timestamp)
679
    self.assertFalse(compat.any(op.start_timestamp or op.end_timestamp
680
                                for op in job.ops))
681
    self.assertEqual(job.GetInfo(["opstatus", "opresult"]),
682
                     [[constants.OP_STATUS_CANCELED for _ in job.ops],
683
                      ["Job canceled by request" for _ in job.ops]])
684

  
685
  def testCancelWhileWaitlockInQueue(self):
686
    queue = _FakeQueueForProc()
687

  
688
    ops = [opcodes.OpTestDummy(result="Res%s" % i, fail=False)
689
           for i in range(5)]
690

  
691
    # Create job
692
    job_id = 8645
693
    job = self._CreateJob(queue, job_id, ops)
694

  
695
    self.assertEqual(job.CalcStatus(), constants.JOB_STATUS_QUEUED)
696

  
697
    job.ops[0].status = constants.OP_STATUS_WAITLOCK
698

  
699
    assert len(job.ops) == 5
700

  
701
    self.assertEqual(job.CalcStatus(), constants.JOB_STATUS_WAITLOCK)
702

  
703
    # Mark as cancelling
704
    (success, _) = job.Cancel()
705
    self.assert_(success)
706

  
707
    self.assertRaises(IndexError, queue.GetNextUpdate)
708

  
709
    self.assert_(compat.all(op.status == constants.OP_STATUS_CANCELING
710
                            for op in job.ops))
711

  
712
    opexec = _FakeExecOpCodeForProc(queue, None, None)
713
    self.assert_(jqueue._JobProcessor(queue, opexec, job)())
673 714

  
674 715
    # Check result
675 716
    self.assertEqual(job.CalcStatus(), constants.JOB_STATUS_CANCELED)

Also available in: Unified diff