diff --git a/LTA/LTAIngest/LTAIngestServer/LTAIngestAdminServer/lib/ingestjobmanagementserver.py b/LTA/LTAIngest/LTAIngestServer/LTAIngestAdminServer/lib/ingestjobmanagementserver.py index 4ff7f711ae70ef2fafe922474d5ae2c6882d9a88..3a821041eddad3f322ea378ad7b7685ae91c4409 100644 --- a/LTA/LTAIngest/LTAIngestServer/LTAIngestAdminServer/lib/ingestjobmanagementserver.py +++ b/LTA/LTAIngest/LTAIngestServer/LTAIngestAdminServer/lib/ingestjobmanagementserver.py @@ -662,7 +662,10 @@ class IngestJobManager: try: with self.__jobs_for_transfer_queue_peeker: num_scheduled = self.__jobs_for_transfer_queue_peeker.nr_of_messages_in_queue(0.01) - return (num_scheduled == 0) + if num_scheduled == 0: + scheduled_jads = self.getJobAdminDicts(status=JobScheduled) + return len(scheduled_jads) < 10 + return False except Exception as e: logger.error('canProduceNextJob: %s', e) return True @@ -994,8 +997,7 @@ Total Files: %(total)i finished_group_jads = self.getJobAdminDicts(job_group_id=job_group_id, status=JobProduced) failed_group_jads = self.getJobAdminDicts(job_group_id=job_group_id, status=JobFailed) removed_group_jads = self.getJobAdminDicts(job_group_id=job_group_id, status=JobRemoved) - - success = not (failed_group_jads or removed_group_jads) + unfinished_group_jads = failed_group_jads + removed_group_jads done_group_jads = finished_group_jads + failed_group_jads + removed_group_jads done_group_jobs = [jad['job'] for jad in done_group_jads] @@ -1013,9 +1015,10 @@ Total Files: %(total)i if mailing_list: #make it a csv list of addresses mailing_list = ','.join(mailing_list) + projects = set([j['Project'] for j in done_group_jobs if 'Project' in j]) - subject = "Ingest Export job %s " % (job_group_id,) - if success: + subject = "Ingest Export job %s of project %s " % (job_group_id, '/'.join(projects)) + if len(unfinished_group_jads) == 0: subject += 'finished successfully' elif removed_group_jads : if len(removed_group_jads) == len(done_group_jads): @@ -1023,7 +1026,9 @@ Total Files: %(total)i else: subject += 'was removed partially before transfer' else: - subject += 'finished with errors' + subject += 'finished with errors. %d/%d (%.1f%%) dataproducts did not transfer.' % (len(unfinished_group_jads), + len(done_group_jads), + 100.0*len(unfinished_group_jads)/len(done_group_jads)) if os.system('echo "%s"|mailx -s "%s" %s' % (report, subject, mailing_list)) == 0: logger.info('sent notification email for export job %s to %s', job_group_id, mailing_list)