def handle_finished_jobs()

in cstar/job.py [0:0]


    def handle_finished_jobs(self, finished_jobs):
        debug("Processing ", len(finished_jobs), " finished jobs")
        for finished_job in finished_jobs:
            host = finished_job[0]
            result = finished_job[1]
            if result.status != 0:
                self.errors.append((host, result))
                self.state = self.state.with_failed(host)
                msg("Failure on host", host.fqdn)
                if result.out:
                    msg("stdout:", result.out)
                if result.err:
                    msg("stderr:", result.err)
                self.do_loop = False
            else:
                self.state = self.state.with_done(host)
                info("Host %s finished successfully" % (host.fqdn,))
                if result.out:
                    info("stdout:", result.out, sep="\n")
                if result.err:
                    info("stderr:", result.err)
                if self.sleep_after_done:
                    debug("Sleeping %d seconds..." % self.sleep_after_done)
                    time.sleep(self.sleep_after_done)
        cstar.jobwriter.write(self)
        # Signal the jobrunner that it can delete the remote job files and terminate.
        for finished_job in finished_jobs:
            host, result = finished_job
            self.handled_finished_jobs.add(host)