[
https://issues.apache.org/jira/browse/GOBBLIN-1708?focusedWorklogId=810156&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-810156
]
ASF GitHub Bot logged work on GOBBLIN-1708:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 19/Sep/22 18:58
Start Date: 19/Sep/22 18:58
Worklog Time Spent: 10m
Work Description: arjun4084346 commented on code in PR #3563:
URL: https://github.com/apache/gobblin/pull/3563#discussion_r974575775
##########
gobblin-data-management/src/main/java/org/apache/gobblin/data/management/copy/TimeAwareRecursiveCopyableDataset.java:
##########
@@ -134,9 +134,41 @@ protected List<FileStatus> getFilesAtPath(FileSystem fs,
Path path, PathFilter f
return recursivelyGetFilesAtDatePath(fs, path, "", fileFilter, 1,
startDate, endDate, formatter);
}
+ /**
+ * Checks if the datePath provided is in the range of the start and end
dates.
+ * Rounds startDate and endDate to the same granularity as datePath prior to
comparing.
+ * Returns true if the datePath provided is in the range of start and end
dates, inclusive.
+ * @param startDate
+ * @param endDate
+ * @param datePath
+ * @return true/false
+ */
+ public Boolean checkPathDateTimeValidity(LocalDateTime startDate,
LocalDateTime endDate, String datePath) {
+ boolean onlyNumbers = datePath.matches("^[0-9/]+$");
+ if (onlyNumbers) {
+ String allGranularity = "yyyy/MM/dd/HH/mm/ss/SSS";
+ String roundGranularity = allGranularity.substring(0, datePath.length());
+ DateTimeFormatter formatGranularity =
DateTimeFormat.forPattern(roundGranularity);
+
+ LocalDateTime traversedDatePathRound =
formatGranularity.parseLocalDateTime(datePath);
+ LocalDateTime startDateRound =
formatGranularity.parseLocalDateTime(startDate.toString(roundGranularity));
+ LocalDateTime endDateRound =
formatGranularity.parseLocalDateTime(endDate.toString(roundGranularity));
+
+ boolean afterOrOnStartDate =
traversedDatePathRound.isAfter(startDateRound) ||
traversedDatePathRound.isEqual(startDateRound);
+ boolean beforeOrOnEndDate =
traversedDatePathRound.isBefore(endDateRound) ||
traversedDatePathRound.isEqual(endDateRound);
+ return afterOrOnStartDate && beforeOrOnEndDate;
+ }
+ return false;
Review Comment:
Should it return true?
Issue Time Tracking
-------------------
Worklog Id: (was: 810156)
Time Spent: 2h (was: 1h 50m)
> Improve TimeAwareRecursiveCopyableDataset to lookback only into datefolders
> that match range
> --------------------------------------------------------------------------------------------
>
> Key: GOBBLIN-1708
> URL: https://issues.apache.org/jira/browse/GOBBLIN-1708
> Project: Apache Gobblin
> Issue Type: Improvement
> Reporter: Andy Jiang
> Priority: Major
> Time Spent: 2h
> Remaining Estimate: 0h
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)