Revision 6760e4ed lib/jqueue.py
b/lib/jqueue.py | ||
---|---|---|
676 | 676 |
return constants.JOB_NOTCHANGED |
677 | 677 |
|
678 | 678 |
|
679 |
def _EncodeOpError(err): |
|
680 |
"""Encodes an error which occurred while processing an opcode. |
|
681 |
|
|
682 |
""" |
|
683 |
if isinstance(err, errors.GenericError): |
|
684 |
to_encode = err |
|
685 |
else: |
|
686 |
to_encode = errors.OpExecError(str(err)) |
|
687 |
|
|
688 |
return errors.EncodeException(to_encode) |
|
689 |
|
|
690 |
|
|
679 | 691 |
class _JobQueueWorker(workerpool.BaseWorker): |
680 | 692 |
"""The actual job workers. |
681 | 693 |
|
... | ... | |
764 | 776 |
try: |
765 | 777 |
logging.debug("Opcode %s/%s failed", idx + 1, count) |
766 | 778 |
op.status = constants.OP_STATUS_ERROR |
767 |
if isinstance(err, errors.GenericError): |
|
768 |
to_encode = err |
|
769 |
else: |
|
770 |
to_encode = errors.OpExecError(str(err)) |
|
771 |
op.result = errors.EncodeException(to_encode) |
|
779 |
op.result = _EncodeOpError(err) |
|
772 | 780 |
op.end_timestamp = TimeStampNow() |
773 | 781 |
logging.info("Op %s/%s: Error in opcode %s: %s", |
774 | 782 |
idx + 1, count, op_summary, err) |
775 | 783 |
|
776 | 784 |
to_encode = errors.OpExecError("Preceding opcode failed") |
777 | 785 |
job.MarkUnfinishedOps(constants.OP_STATUS_ERROR, |
778 |
errors.EncodeException(to_encode))
|
|
786 |
_EncodeOpError(to_encode))
|
|
779 | 787 |
|
780 | 788 |
# Consistency check |
781 | 789 |
assert compat.all(i.status == constants.OP_STATUS_SUCCESS |
Also available in: Unified diff