private Collection<String> getS3PrefixesForRequest(S3Configuration s3Configuration, String requestId, Optional<Long> startArg, Optional<Long> endArg, String group) { Optional<SingularityRequestHistory> firstHistory = requestHistoryHelper.getFirstHistory(requestId); checkNotFound(firstHistory.isPresent(), "No request history found for %s", requestId); long start = firstHistory.get().getCreatedAt(); if (startArg.isPresent()) { start = Math.max(startArg.get(), start); } Optional<SingularityRequestHistory> lastHistory = requestHistoryHelper.getLastHistory(requestId); long end = System.currentTimeMillis(); if (lastHistory.isPresent() && (lastHistory.get().getEventType() == RequestHistoryType.DELETED || lastHistory.get().getEventType() == RequestHistoryType.PAUSED)) { end = lastHistory.get().getCreatedAt() + TimeUnit.DAYS.toMillis(1); } if (endArg.isPresent()) { end = Math.min(endArg.get(), end); } Collection<String> prefixes = SingularityS3FormatHelper.getS3KeyPrefixes(s3Configuration.getS3KeyFormat(), requestId, start, end, group); for (SingularityS3UploaderFile additionalFile : s3Configuration.getS3UploaderAdditionalFiles()) { if (additionalFile.getS3UploaderKeyPattern().isPresent() && !additionalFile.getS3UploaderKeyPattern().get().equals(s3Configuration.getS3KeyFormat())) { prefixes.addAll(SingularityS3FormatHelper.getS3KeyPrefixes(additionalFile.getS3UploaderKeyPattern().get(), requestId, start, end, group)); } } LOG.trace("Request {} got S3 prefixes {} for start {}, end {}", requestId, prefixes, start, end); return prefixes; }
private String getRequestHistoryUpdateId(SingularityRequestHistory requestUpdate) { return requestUpdate.getRequest().getId() + "-" + requestUpdate.getEventType().name() + "-" + requestUpdate.getCreatedAt(); }
@Override public void saveRequestHistoryUpdate(SingularityRequestHistory requestHistory) { if (LOG.isTraceEnabled()) { LOG.trace("saveRequestHistoryUpdate requestHistory {}", requestHistory); } history.insertRequestHistory(requestHistory.getRequest().getId(), singularityRequestTranscoder.toBytes(requestHistory.getRequest()), new Date(requestHistory.getCreatedAt()), requestHistory.getEventType().name(), getUserField(requestHistory.getUser()), getMessageField(requestHistory.getMessage())); }
private String getHistoryPath(SingularityRequestHistory history) { return ZKPaths.makePath(getHistoryParentPath(history.getRequest().getId()), history.getEventType() + "-" + history.getCreatedAt()); }
if (historyItem.getEventType() == RequestHistoryType.DELETED) { Assert.assertEquals("a msg", historyItem.getMessage().get()); } else if (historyItem.getEventType() == RequestHistoryType.SCALED) { Assert.assertEquals(280, historyItem.getMessage().get().length()); } else if (historyItem.getEventType() == RequestHistoryType.DELETING) { Assert.assertEquals("a msg", historyItem.getMessage().get()); } else {
@Test public void itCorrectlyUpdatesRequestDeletingStateHistory() { initRequest(); Assert.assertEquals(RequestState.ACTIVE, requestManager.getRequest(requestId).get().getState()); Assert.assertEquals(1, requestManager.getRequestHistory(requestId).size()); requestManager.startDeletingRequest(request, Optional.absent(), Optional.<String>absent(), Optional.<String>absent(), Optional.of("the cake is a lie")); Assert.assertEquals(RequestState.DELETING, requestManager.getRequest(requestId).get().getState()); Assert.assertEquals(2, requestManager.getRequestHistory(requestId).size()); cleaner.drainCleanupQueue(); Assert.assertEquals(3, requestManager.getRequestHistory(requestId).size()); List<RequestHistoryType> historyTypes = new ArrayList<>(); for (SingularityRequestHistory request : requestManager.getRequestHistory(requestId)) { historyTypes.add(request.getEventType()); } Assert.assertTrue(historyTypes.contains(RequestHistoryType.CREATED)); Assert.assertTrue(historyTypes.contains(RequestHistoryType.DELETING)); Assert.assertTrue(historyTypes.contains(RequestHistoryType.DELETED)); }
private Collection<String> getS3PrefixesForRequest(S3Configuration s3Configuration, String requestId, Optional<Long> startArg, Optional<Long> endArg, String group) { Optional<SingularityRequestHistory> firstHistory = requestHistoryHelper.getFirstHistory(requestId); checkNotFound(firstHistory.isPresent(), "No request history found for %s", requestId); long start = firstHistory.get().getCreatedAt(); if (startArg.isPresent()) { start = Math.max(startArg.get(), start); } Optional<SingularityRequestHistory> lastHistory = requestHistoryHelper.getLastHistory(requestId); long end = System.currentTimeMillis(); if (lastHistory.isPresent() && (lastHistory.get().getEventType() == RequestHistoryType.DELETED || lastHistory.get().getEventType() == RequestHistoryType.PAUSED)) { end = lastHistory.get().getCreatedAt() + TimeUnit.DAYS.toMillis(1); } if (endArg.isPresent()) { end = Math.min(endArg.get(), end); } Collection<String> prefixes = SingularityS3FormatHelper.getS3KeyPrefixes(s3Configuration.getS3KeyFormat(), requestId, start, end, group); for (SingularityS3UploaderFile additionalFile : s3Configuration.getS3UploaderAdditionalFiles()) { if (additionalFile.getS3UploaderKeyPattern().isPresent() && !additionalFile.getS3UploaderKeyPattern().get().equals(s3Configuration.getS3KeyFormat())) { prefixes.addAll(SingularityS3FormatHelper.getS3KeyPrefixes(additionalFile.getS3UploaderKeyPattern().get(), requestId, start, end, group)); } } LOG.trace("Request {} got S3 prefixes {} for start {}, end {}", requestId, prefixes, start, end); return prefixes; }
private String getRequestHistoryUpdateId(SingularityRequestHistory requestUpdate) { return requestUpdate.getRequest().getId() + "-" + requestUpdate.getEventType().name() + "-" + requestUpdate.getCreatedAt(); }
@Override public void saveRequestHistoryUpdate(SingularityRequestHistory requestHistory) { if (LOG.isTraceEnabled()) { LOG.trace("saveRequestHistoryUpdate requestHistory {}", requestHistory); } history.insertRequestHistory(requestHistory.getRequest().getId(), singularityRequestTranscoder.toBytes(requestHistory.getRequest()), new Date(requestHistory.getCreatedAt()), requestHistory.getEventType().name(), getUserField(requestHistory.getUser()), getMessageField(requestHistory.getMessage())); }
private String getHistoryPath(SingularityRequestHistory history) { return ZKPaths.makePath(getHistoryParentPath(history.getRequest().getId()), history.getEventType() + "-" + history.getCreatedAt()); }
if (historyItem.getEventType() == RequestHistoryType.DELETED) { Assert.assertEquals("a msg", historyItem.getMessage().get()); } else if (historyItem.getEventType() == RequestHistoryType.SCALED) { Assert.assertEquals(280, historyItem.getMessage().get().length()); } else if (historyItem.getEventType() == RequestHistoryType.DELETING) { Assert.assertEquals("a msg", historyItem.getMessage().get()); } else {
@Test public void itCorrectlyUpdatesRequestDeletingStateHistory() { initRequest(); Assert.assertEquals(RequestState.ACTIVE, requestManager.getRequest(requestId).get().getState()); Assert.assertEquals(1, requestManager.getRequestHistory(requestId).size()); requestManager.startDeletingRequest(request, Optional.absent(), Optional.<String>absent(), Optional.<String>absent(), Optional.of("the cake is a lie")); Assert.assertEquals(RequestState.DELETING, requestManager.getRequest(requestId).get().getState()); Assert.assertEquals(2, requestManager.getRequestHistory(requestId).size()); cleaner.drainCleanupQueue(); Assert.assertEquals(3, requestManager.getRequestHistory(requestId).size()); List<RequestHistoryType> historyTypes = new ArrayList<>(); for (SingularityRequestHistory request : requestManager.getRequestHistory(requestId)) { historyTypes.add(request.getEventType()); } Assert.assertTrue(historyTypes.contains(RequestHistoryType.CREATED)); Assert.assertTrue(historyTypes.contains(RequestHistoryType.DELETING)); Assert.assertTrue(historyTypes.contains(RequestHistoryType.DELETED)); }