Revision 70552c46

b/lib/jqueue.py
48 48
JOBQUEUE_THREADS = 5
49 49

  
50 50

  
51
def TimeStampNow():
52
  return utils.SplitTime(time.time())
53

  
54

  
51 55
class _QueuedOpCode(object):
52 56
  """Encasulates an opcode object.
53 57

  
......
60 64
    self.status = constants.OP_STATUS_QUEUED
61 65
    self.result = None
62 66
    self.log = []
67
    self.start_timestamp = None
68
    self.end_timestamp = None
63 69

  
64 70
  @classmethod
65 71
  def Restore(cls, state):
......
68 74
    obj.status = state["status"]
69 75
    obj.result = state["result"]
70 76
    obj.log = state["log"]
77
    obj.start_timestamp = state.get("start_timestamp", None)
78
    obj.end_timestamp = state.get("end_timestamp", None)
71 79
    return obj
72 80

  
73 81
  def Serialize(self):
......
76 84
      "status": self.status,
77 85
      "result": self.result,
78 86
      "log": self.log,
87
      "start_timestamp": self.start_timestamp,
88
      "end_timestamp": self.end_timestamp,
79 89
      }
80 90

  
81 91

  
......
191 201
              job.run_op_index = idx
192 202
              op.status = constants.OP_STATUS_RUNNING
193 203
              op.result = None
204
              op.start_timestamp = TimeStampNow()
194 205
              queue.UpdateJobUnlocked(job)
195 206

  
196 207
              input_opcode = op.input
......
229 240
            try:
230 241
              op.status = constants.OP_STATUS_SUCCESS
231 242
              op.result = result
243
              op.end_timestamp = TimeStampNow()
232 244
              queue.UpdateJobUnlocked(job)
233 245
            finally:
234 246
              queue.release()
......
241 253
              try:
242 254
                op.status = constants.OP_STATUS_ERROR
243 255
                op.result = str(err)
256
                op.end_timestamp = TimeStampNow()
244 257
                logging.debug("Op %s/%s: Error in %s", idx + 1, count, op)
245 258
              finally:
246 259
                queue.UpdateJobUnlocked(job)

Also available in: Unified diff