public String getLastUpdated() { return formatTime(job.getLastUpdated()); }
@Override public List<JobInfo> findRunningWithoutUpdateSince(OffsetDateTime timeOffset) { return jobs.values().stream() .filter(jobInfo -> !jobInfo.isStopped() && jobInfo.getLastUpdated().isBefore(timeOffset)) .collect(toList()); }
@Override protected final Document encode(final JobInfo job) { final Document document = new Document() .append(JobStructure.ID.key(), job.getJobId()) .append(JobStructure.JOB_TYPE.key(), job.getJobType()) .append(JobStructure.STARTED.key(), Date.from(job.getStarted().toInstant())) .append(JobStructure.LAST_UPDATED.key(), Date.from(job.getLastUpdated().toInstant())) .append(JobStructure.MESSAGES.key(), job.getMessages().stream() .map(MongoJobRepository::encodeJobMessage) .collect(toList())) .append(JobStructure.STATUS.key(), job.getStatus().name()) .append(JobStructure.HOSTNAME.key(), job.getHostname()); if (job.isStopped()) { document.append(JobStructure.STOPPED.key(), Date.from(job.getStopped().get().toInstant())); } return document; }
@Test public void shouldAppendMessageToJobInfo() throws Exception { String someUri = "someUri"; OffsetDateTime now = now(); //Given JobInfo jobInfo = newJobInfo(someUri, "TEST", systemDefaultZone(), "localhost"); repository.createOrUpdate(jobInfo); //When JobMessage igelMessage = JobMessage.jobMessage(Level.WARNING, "Der Igel ist froh.", now); repository.appendMessage(someUri, igelMessage); //Then JobInfo jobInfoFromRepo = repository.findOne(someUri).get(); assertThat(jobInfoFromRepo.getMessages().size(), is(1)); assertThat(jobInfoFromRepo.getMessages().get(0), is(igelMessage)); assertThat(jobInfoFromRepo.getLastUpdated(), is(now.truncatedTo(ChronoUnit.MILLIS))); }
@Test public void shouldUpdateJobLastUpdateTime() { //Given final JobInfo foo = jobInfo("http://localhost/foo", "T_FOO"); repo.createOrUpdate(foo); final OffsetDateTime myTestTime = OffsetDateTime.of(1979, 2, 5, 1, 2, 3, 4, ZoneOffset.UTC); //When repo.setLastUpdate(foo.getJobId(), myTestTime); final Optional<JobInfo> jobInfo = repo.findOne(foo.getJobId()); //Then assertThat(jobInfo, OptionalMatchers.isPresent()); assertThat(Date.from(jobInfo.get().getLastUpdated().toInstant()), is(Date.from(myTestTime.toInstant()))); }
@Override protected final Document encode(final JobInfo job) { final Document document = new Document() .append(JobStructure.ID.key(), job.getJobId()) .append(JobStructure.JOB_TYPE.key(), job.getJobType()) .append(JobStructure.STARTED.key(), DateTimeConverters.toDate(job.getStarted())) .append(JobStructure.LAST_UPDATED.key(), DateTimeConverters.toDate(job.getLastUpdated())) .append(JobStructure.MESSAGES.key(), job.getMessages().stream() .map(MongoJobRepository::encodeJobMessage) .collect(toList())) .append(JobStructure.STATUS.key(), job.getStatus().name()) .append(JobStructure.HOSTNAME.key(), job.getHostname()); if (job.isStopped()) { document.append(JobStructure.STOPPED.key(), DateTimeConverters.toDate(job.getStopped().get())); } return document; }