trv.troveFailed(upd.getFailureReason()) elif upd.isBuilt(): trv.troveBuilt(upd.builtTroves) else: trv._setState(upd.state, upd.status) self.clock.callLater(0, self._do_loop) d.addCallback(cb_done) d.addErrback(self.failJob, message="Internal error building trove:") def _finish_build(self): if self.dh.jobPassed(): self.setStatus(200, "Build complete") else: detail = 'Build job had failures:\n' for trv in sorted(self.buildJob.iterPrimaryFailureTroves()): fail = trv.getFailureReason() detail += ' * %s: %s\n' % (trv.getName(), fail) self.buildJob.jobFailed(detail) self.setStatus(400, "Build failed", detail) self.build_pending.callback('done') self.build_pending = None TroveBuildJob = types.slottype('TroveBuildJob', 'trove buildReqs crossReqs targetLabel builtTroves') def register(): handler.registerHandler(BuildHandler)
self.setStatus(102, "Calculating and formatting pi {1/2}") params = TestParams(self.base, self.guard, self.digits) task = self.newTask('reduce', TEST_TASK_REDUCE, ReduceData(params, self.a_result, self.b_result)) def cb_gather(results): task, = results result = task.task_data.getObject().out self.job.data = types.FrozenObject.fromObject(result) self.setStatus(200, "Done! pi = %s...%s" % (result[:7], result[-5:])) return 'done' return self.gatherTasks([task], cb_gather) TestParams = types.slottype('TestParams', 'base guard digits') ArcCotData = types.slottype('ArcCotData', 'p x out') ReduceData = types.slottype('ReduceData', 'p a b x out') class ArcCotTask(plug_worker.TaskHandler): taskType = TEST_TASK_ARCCOT def run(self): data = self.getData() self.sendStatus(101, "Calculating arccot(%d) to %d digits" % ( data.x, data.p.digits)) unity = data.p.base ** (data.p.digits + data.p.guard) data.out = arccot(data.x, unity)