public static Optional getLastSubmittedJobId()

in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/JobListHelper.java [71:106]


    public static Optional<JobId> getLastSubmittedJobId(final List<JobInfo> existingJobsList,
                                                                  final List<CompletedJob> completedJobs) {
        if(logger.isTraceEnabled()) { logger.trace("Entering getLastSubmittedJobDefinition existing jobs {} completedJobs {}",existingJobsList.size(),completedJobs.size() ); }

        long highestJobNumber = -1;
        JobInfo jInfoWithHighestJobNumber = null;
        CompletedJob completedJobWithHighestJobNumber = null;
        if(logger.isDebugEnabled()) { logger.debug("No of active jobs: {}", existingJobsList.size()); }
        for (JobInfo jInfo : existingJobsList) {
            if (jInfo.jobId.getJobNum() > highestJobNumber) {
                highestJobNumber = jInfo.jobId.getJobNum();
                jInfoWithHighestJobNumber = jInfo;
            }
        }
        if(logger.isDebugEnabled()) { logger.debug("Highest Active job number: {}", highestJobNumber); }
        if(highestJobNumber != -1) {

            return ofNullable(jInfoWithHighestJobNumber.jobId);
        } else {
            // search in completed Jobs
            for (CompletedJob cJob : completedJobs) {
                Optional<JobId> completedJobId = JobId.fromId(cJob.getJobId());
                if (completedJobId.isPresent() && completedJobId.get().getJobNum() > highestJobNumber) {
                    highestJobNumber = completedJobId.get().getJobNum();
                    completedJobWithHighestJobNumber = cJob;
                }
            }

            if(highestJobNumber != -1) {
                if(logger.isDebugEnabled()) { logger.debug("Highest completed job number: {}", highestJobNumber); }
                return (JobId.fromId(completedJobWithHighestJobNumber.getJobId()));
            }

        }
        return empty();
    }