mirror of
https://github.com/datahub-project/datahub.git
synced 2025-12-28 10:28:22 +00:00
chore() Set a default lineage filtering end time on backend when a start time is present (#10925)
Co-authored-by: John Joyce <john@ip-192-168-1-200.us-west-2.compute.internal> Co-authored-by: John Joyce <john@Johns-MBP.lan>
This commit is contained in:
parent
1617d6231b
commit
a7ae99ca5e
@ -255,4 +255,19 @@ public class ResolverUtils {
|
||||
Filter result = SearchUtils.combineFilters(null, viewInfo.getDefinition().getFilter());
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Simply resolves the end time filter for the search across lineage query. If the start time is
|
||||
* provided, but end time is not provided, we will default to the current time.
|
||||
*/
|
||||
public static Long getLineageEndTimeMillis(
|
||||
@Nullable Long startTimeMillis, @Nullable Long endTimeMillis) {
|
||||
if (endTimeMillis != null) {
|
||||
return endTimeMillis;
|
||||
}
|
||||
if (startTimeMillis != null) {
|
||||
return System.currentTimeMillis();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -18,6 +18,7 @@ import com.linkedin.datahub.graphql.generated.LineageDirection;
|
||||
import com.linkedin.datahub.graphql.generated.LineageInput;
|
||||
import com.linkedin.datahub.graphql.generated.LineageRelationship;
|
||||
import com.linkedin.datahub.graphql.generated.Restricted;
|
||||
import com.linkedin.datahub.graphql.resolvers.ResolverUtils;
|
||||
import com.linkedin.datahub.graphql.types.common.mappers.UrnToEntityMapper;
|
||||
import com.linkedin.metadata.graph.SiblingGraphService;
|
||||
import graphql.schema.DataFetcher;
|
||||
@ -63,7 +64,10 @@ public class EntityLineageResultResolver
|
||||
@Nullable final Integer count = input.getCount(); // Optional!
|
||||
@Nullable final Boolean separateSiblings = input.getSeparateSiblings(); // Optional!
|
||||
@Nullable final Long startTimeMillis = input.getStartTimeMillis(); // Optional!
|
||||
@Nullable final Long endTimeMillis = input.getEndTimeMillis(); // Optional!
|
||||
@Nullable
|
||||
final Long endTimeMillis =
|
||||
ResolverUtils.getLineageEndTimeMillis(
|
||||
input.getStartTimeMillis(), input.getEndTimeMillis()); // Optional!
|
||||
|
||||
com.linkedin.metadata.graph.LineageDirection resolvedDirection =
|
||||
com.linkedin.metadata.graph.LineageDirection.valueOf(lineageDirection.toString());
|
||||
|
||||
@ -78,7 +78,8 @@ public class ScrollAcrossLineageResolver
|
||||
@Nullable
|
||||
Long startTimeMillis = input.getStartTimeMillis() == null ? null : input.getStartTimeMillis();
|
||||
@Nullable
|
||||
Long endTimeMillis = input.getEndTimeMillis() == null ? null : input.getEndTimeMillis();
|
||||
Long endTimeMillis =
|
||||
ResolverUtils.getLineageEndTimeMillis(input.getStartTimeMillis(), input.getEndTimeMillis());
|
||||
|
||||
final LineageFlags lineageFlags = LineageFlagsInputMapper.map(context, input.getLineageFlags());
|
||||
if (lineageFlags.getStartTimeMillis() == null && startTimeMillis != null) {
|
||||
|
||||
@ -111,7 +111,8 @@ public class SearchAcrossLineageResolver
|
||||
@Nullable
|
||||
Long startTimeMillis = input.getStartTimeMillis() == null ? null : input.getStartTimeMillis();
|
||||
@Nullable
|
||||
Long endTimeMillis = input.getEndTimeMillis() == null ? null : input.getEndTimeMillis();
|
||||
Long endTimeMillis =
|
||||
ResolverUtils.getLineageEndTimeMillis(input.getStartTimeMillis(), input.getEndTimeMillis());
|
||||
|
||||
final LineageFlags lineageFlags = LineageFlagsInputMapper.map(context, input.getLineageFlags());
|
||||
if (lineageFlags.getStartTimeMillis() == null && startTimeMillis != null) {
|
||||
|
||||
@ -6,6 +6,7 @@ import com.linkedin.common.urn.UrnUtils;
|
||||
import com.linkedin.datahub.graphql.QueryContext;
|
||||
import com.linkedin.datahub.graphql.generated.EntityTypeToPlatforms;
|
||||
import com.linkedin.datahub.graphql.generated.LineageFlags;
|
||||
import com.linkedin.datahub.graphql.resolvers.ResolverUtils;
|
||||
import com.linkedin.datahub.graphql.types.entitytype.EntityTypeMapper;
|
||||
import com.linkedin.datahub.graphql.types.mappers.ModelMapper;
|
||||
import java.util.Collections;
|
||||
@ -42,12 +43,16 @@ public class LineageFlagsInputMapper
|
||||
if (lineageFlags.getIgnoreAsHops() != null) {
|
||||
result.setIgnoreAsHops(mapIgnoreAsHops(lineageFlags.getIgnoreAsHops()));
|
||||
}
|
||||
if (lineageFlags.getEndTimeMillis() != null) {
|
||||
result.setEndTimeMillis(lineageFlags.getEndTimeMillis());
|
||||
}
|
||||
if (lineageFlags.getStartTimeMillis() != null) {
|
||||
result.setStartTimeMillis(lineageFlags.getStartTimeMillis());
|
||||
}
|
||||
// Default to "now" if no end time is provided, but start time is provided.
|
||||
Long endTimeMillis =
|
||||
ResolverUtils.getLineageEndTimeMillis(
|
||||
lineageFlags.getStartTimeMillis(), lineageFlags.getEndTimeMillis());
|
||||
if (endTimeMillis != null) {
|
||||
result.setEndTimeMillis(endTimeMillis);
|
||||
}
|
||||
if (lineageFlags.getEntitiesExploredPerHopLimit() != null) {
|
||||
result.setEntitiesExploredPerHopLimit(lineageFlags.getEntitiesExploredPerHopLimit());
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user