Skip to content

Commit 400663e

Browse files
committed
Use different default hour/minute on the schedule editor.
Fix problem when a schedule is both on a table and connection.
1 parent 1a93bd6 commit 400663e

File tree

2 files changed

+43
-7
lines changed

2 files changed

+43
-7
lines changed

dqops/src/main/frontend/src/components/ScheduleView/index.tsx

+4-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ interface IScheduleViewProps {
2020
}
2121
type TMinutes = { minutes: number; day: number; hour: number };
2222

23-
const defaultMinutes = { minutes: 15, day: 15, hour: 15 };
23+
const defaultMinutes = { minutes: 15, day: 0, hour: 0 };
24+
const defaultHourForDaily = 8;
2425

2526
const ScheduleView = ({
2627
schedule,
@@ -29,7 +30,7 @@ const ScheduleView = ({
2930
}: IScheduleViewProps) => {
3031
const [mode, setMode] = useState('');
3132
const [minutes, setMinutes] = useState<TMinutes>(defaultMinutes);
32-
const [hour, setHour] = useState(15);
33+
const [hour, setHour] = useState(defaultHourForDaily);
3334
const { table, column }: { table: string; column: string } = useDecodedParams();
3435

3536
const { isCronScheduled, userProfile } = useSelector(
@@ -166,7 +167,7 @@ const ScheduleView = ({
166167
};
167168

168169
setMinutes(defaultMinutes);
169-
setHour(15);
170+
setHour(defaultHourForDaily);
170171
checkCronExpresion();
171172
}, [schedule]);
172173

dqops/src/main/java/com/dqops/execution/checks/scheduled/ScheduledTargetChecksFindServiceImpl.java

+39-4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.dqops.checks.defaults.DefaultObservabilityConfigurationService;
2020
import com.dqops.metadata.basespecs.AbstractSpec;
2121
import com.dqops.metadata.id.HierarchyNode;
22+
import com.dqops.metadata.scheduling.CheckRunScheduleGroup;
2223
import com.dqops.metadata.scheduling.DefaultSchedulesSpec;
2324
import com.dqops.metadata.scheduling.MonitoringScheduleSpec;
2425
import com.dqops.metadata.search.*;
@@ -32,7 +33,9 @@
3233
import org.springframework.stereotype.Component;
3334

3435
import java.util.Collection;
36+
import java.util.HashSet;
3537
import java.util.Objects;
38+
import java.util.Set;
3639

3740
/**
3841
* Service that finds all checks that should be executed for a given schedule.
@@ -74,10 +77,6 @@ public ScheduledChecksCollection findChecksForSchedule(UserHome userHome, Monito
7477
userHome.getConnections(), scheduleRootsSearchFilters);
7578

7679
for (ScheduleRootResult scheduleRoot : scheduleRoots.getResults()) {
77-
ScheduledChecksSearchFilters scheduledChecksSearchFilters = new ScheduledChecksSearchFilters();
78-
scheduledChecksSearchFilters.setEnabled(true);
79-
scheduledChecksSearchFilters.setSchedule(schedule);
80-
scheduledChecksSearchFilters.setSchedulingGroups(scheduleRoot.getSchedulingGroups());
8180
HierarchyNode scheduleRootNode = scheduleRoot.getScheduleRootNode();
8281

8382
if (scheduleRootNode instanceof ConnectionWrapper) {
@@ -88,6 +87,37 @@ public ScheduledChecksCollection findChecksForSchedule(UserHome userHome, Monito
8887
TableSpec clonedTableSpec = scheduledTableWrapper.getSpec().deepClone();
8988
this.defaultObservabilityConfigurationService.applyDefaultChecksOnTableAndColumns(scheduledConnectionWrapper.getSpec(), clonedTableSpec, userHome);
9089

90+
Set<CheckRunScheduleGroup> schedulingGroupsForTable = scheduleRoot.getSchedulingGroups();
91+
DefaultSchedulesSpec tableSchedulesOverride = clonedTableSpec.getSchedulesOverride();
92+
if (tableSchedulesOverride != null && !tableSchedulesOverride.isDefault()) {
93+
schedulingGroupsForTable = new HashSet<>(schedulingGroupsForTable);
94+
95+
if (tableSchedulesOverride.getScheduleForCheckSchedulingGroup(CheckRunScheduleGroup.profiling) != null) {
96+
schedulingGroupsForTable.remove(CheckRunScheduleGroup.profiling);
97+
}
98+
99+
if (tableSchedulesOverride.getScheduleForCheckSchedulingGroup(CheckRunScheduleGroup.monitoring_daily) != null) {
100+
schedulingGroupsForTable.remove(CheckRunScheduleGroup.monitoring_daily);
101+
}
102+
103+
if (tableSchedulesOverride.getScheduleForCheckSchedulingGroup(CheckRunScheduleGroup.monitoring_monthly) != null) {
104+
schedulingGroupsForTable.remove(CheckRunScheduleGroup.monitoring_monthly);
105+
}
106+
107+
if (tableSchedulesOverride.getScheduleForCheckSchedulingGroup(CheckRunScheduleGroup.partitioned_daily) != null) {
108+
schedulingGroupsForTable.remove(CheckRunScheduleGroup.partitioned_daily);
109+
}
110+
111+
if (tableSchedulesOverride.getScheduleForCheckSchedulingGroup(CheckRunScheduleGroup.partitioned_monthly) != null) {
112+
schedulingGroupsForTable.remove(CheckRunScheduleGroup.partitioned_monthly);
113+
}
114+
}
115+
116+
ScheduledChecksSearchFilters scheduledChecksSearchFilters = new ScheduledChecksSearchFilters();
117+
scheduledChecksSearchFilters.setEnabled(true);
118+
scheduledChecksSearchFilters.setSchedule(schedule);
119+
scheduledChecksSearchFilters.setSchedulingGroups(schedulingGroupsForTable);
120+
91121
Collection<AbstractCheckSpec<?,?,?,?>> scheduledChecks = this.hierarchyNodeTreeSearcher.findScheduledChecks(
92122
clonedTableSpec, scheduledChecksSearchFilters);
93123

@@ -106,6 +136,11 @@ public ScheduledChecksCollection findChecksForSchedule(UserHome userHome, Monito
106136
TableSpec clonedTableSpec = originalTableSpec.deepClone();
107137
this.defaultObservabilityConfigurationService.applyDefaultChecksOnTableAndColumns(connectionWrapper.getSpec(), clonedTableSpec, userHome);
108138

139+
ScheduledChecksSearchFilters scheduledChecksSearchFilters = new ScheduledChecksSearchFilters();
140+
scheduledChecksSearchFilters.setEnabled(true);
141+
scheduledChecksSearchFilters.setSchedule(schedule);
142+
scheduledChecksSearchFilters.setSchedulingGroups(scheduleRoot.getSchedulingGroups());
143+
109144
Collection<AbstractCheckSpec<?,?,?,?>> scheduledChecks = this.hierarchyNodeTreeSearcher.findScheduledChecks(
110145
clonedTableSpec, scheduledChecksSearchFilters);
111146

0 commit comments

Comments
 (0)