From 583163a6938e3c4e81a910871e16a3d031406445 Mon Sep 17 00:00:00 2001 From: Michael Hanselmann <hansmi@google.com> Date: Thu, 8 Jul 2010 17:06:14 +0200 Subject: [PATCH] cli.SubmitOpCode: Support custom job reporter This is necessary to reuse SubmitOpCode while adding processing for custom message types. Signed-off-by: Michael Hanselmann <hansmi@google.com> Reviewed-by: Iustin Pop <iustin@google.com> --- lib/cli.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/cli.py b/lib/cli.py index 327026dca..1de60a02f 100644 --- a/lib/cli.py +++ b/lib/cli.py @@ -1503,6 +1503,7 @@ def FormatLogMessage(log_type, log_msg): return utils.SafeEncode(log_msg) +def PollJob(job_id, cl=None, feedback_fn=None, reporter=None): """Function to poll for the result of a job. @type job_id: job identified @@ -1515,15 +1516,18 @@ def FormatLogMessage(log_type, log_msg): if cl is None: cl = GetClient() - if feedback_fn: - reporter = FeedbackFnJobPollReportCb(feedback_fn) - else: - reporter = StdioJobPollReportCb() + if reporter is None: + if feedback_fn: + reporter = FeedbackFnJobPollReportCb(feedback_fn) + else: + reporter = StdioJobPollReportCb() + elif feedback_fn: + raise errors.ProgrammerError("Can't specify reporter and feedback function") return GenericPollJob(job_id, _LuxiJobPollCb(cl), reporter) -def SubmitOpCode(op, cl=None, feedback_fn=None, opts=None): +def SubmitOpCode(op, cl=None, feedback_fn=None, opts=None, reporter=None): """Legacy function to submit an opcode. This is just a simple wrapper over the construction of the processor @@ -1538,7 +1542,8 @@ def SubmitOpCode(op, cl=None, feedback_fn=None, opts=None): job_id = SendJob([op], cl) - op_results = PollJob(job_id, cl=cl, feedback_fn=feedback_fn) + op_results = PollJob(job_id, cl=cl, feedback_fn=feedback_fn, + reporter=reporter) return op_results[0] -- GitLab