diff --git a/autosubmit/autosubmit.py b/autosubmit/autosubmit.py index 472e9eabd2a79271a7521ce819ffeb1434c7c027..1fb931aa12903d76e8ad2c118b3b1af1e2d6bb85 100644 --- a/autosubmit/autosubmit.py +++ b/autosubmit/autosubmit.py @@ -3599,6 +3599,9 @@ class Autosubmit: Log.info("\nCreating the jobs list...") job_list = JobList(expid, BasicConfig, ConfigParserFactory(), Autosubmit._get_job_list_persistence(expid, as_conf)) + prev_job_list = Autosubmit.load_job_list( + expid, as_conf, notransitive=notransitive) + date_format = '' if as_conf.get_chunk_size_unit() is 'hour': @@ -3620,6 +3623,7 @@ class Autosubmit: else: job_list.remove_rerun_only_jobs(notransitive) Log.info("\nSaving the jobs list...") + job_list.add_logs(prev_job_list.get_logs()) job_list.save() JobPackagePersistence(os.path.join(BasicConfig.LOCAL_ROOT_DIR, expid, "pkl"), "job_packages_" + expid).reset_table() diff --git a/autosubmit/job/job_list.py b/autosubmit/job/job_list.py index ea97b6f2432127a9e61fb665d6ce813aadfbd83b..b69268b42450fec5cd8b7628860898853c648bd1 100644 --- a/autosubmit/job/job_list.py +++ b/autosubmit/job/job_list.py @@ -827,6 +827,36 @@ class JobList(object): else: return all + def get_logs(self): + """ + Returns a dict of logs by jobs_name jobs + + :param platform: job platform + :type platform: HPCPlatform + :return: logs + :rtype: dict(tuple) + """ + logs = dict() + for job in self._job_list: + logs[job.name] = (job.local_logs,job.remote_logs) + return logs + + def add_logs(self,logs): + """ + add logs to the current job_list + + :param platform: job platform + :type platform: HPCPlatform + :return: logs + :rtype: dict(tuple) + """ + + for job in self._job_list: + if job.name in logs: + job.local_logs = logs[job.name][0] + job.remote_logs = logs[job.name][1] + + def get_ready(self, platform=None, hold=False, wrapper=False): """ Returns a list of ready jobs