19
19
import com .dqops .checks .defaults .DefaultObservabilityConfigurationService ;
20
20
import com .dqops .metadata .basespecs .AbstractSpec ;
21
21
import com .dqops .metadata .id .HierarchyNode ;
22
+ import com .dqops .metadata .scheduling .CheckRunScheduleGroup ;
22
23
import com .dqops .metadata .scheduling .DefaultSchedulesSpec ;
23
24
import com .dqops .metadata .scheduling .MonitoringScheduleSpec ;
24
25
import com .dqops .metadata .search .*;
32
33
import org .springframework .stereotype .Component ;
33
34
34
35
import java .util .Collection ;
36
+ import java .util .HashSet ;
35
37
import java .util .Objects ;
38
+ import java .util .Set ;
36
39
37
40
/**
38
41
* Service that finds all checks that should be executed for a given schedule.
@@ -74,10 +77,6 @@ public ScheduledChecksCollection findChecksForSchedule(UserHome userHome, Monito
74
77
userHome .getConnections (), scheduleRootsSearchFilters );
75
78
76
79
for (ScheduleRootResult scheduleRoot : scheduleRoots .getResults ()) {
77
- ScheduledChecksSearchFilters scheduledChecksSearchFilters = new ScheduledChecksSearchFilters ();
78
- scheduledChecksSearchFilters .setEnabled (true );
79
- scheduledChecksSearchFilters .setSchedule (schedule );
80
- scheduledChecksSearchFilters .setSchedulingGroups (scheduleRoot .getSchedulingGroups ());
81
80
HierarchyNode scheduleRootNode = scheduleRoot .getScheduleRootNode ();
82
81
83
82
if (scheduleRootNode instanceof ConnectionWrapper ) {
@@ -88,6 +87,37 @@ public ScheduledChecksCollection findChecksForSchedule(UserHome userHome, Monito
88
87
TableSpec clonedTableSpec = scheduledTableWrapper .getSpec ().deepClone ();
89
88
this .defaultObservabilityConfigurationService .applyDefaultChecksOnTableAndColumns (scheduledConnectionWrapper .getSpec (), clonedTableSpec , userHome );
90
89
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
+
91
121
Collection <AbstractCheckSpec <?,?,?,?>> scheduledChecks = this .hierarchyNodeTreeSearcher .findScheduledChecks (
92
122
clonedTableSpec , scheduledChecksSearchFilters );
93
123
@@ -106,6 +136,11 @@ public ScheduledChecksCollection findChecksForSchedule(UserHome userHome, Monito
106
136
TableSpec clonedTableSpec = originalTableSpec .deepClone ();
107
137
this .defaultObservabilityConfigurationService .applyDefaultChecksOnTableAndColumns (connectionWrapper .getSpec (), clonedTableSpec , userHome );
108
138
139
+ ScheduledChecksSearchFilters scheduledChecksSearchFilters = new ScheduledChecksSearchFilters ();
140
+ scheduledChecksSearchFilters .setEnabled (true );
141
+ scheduledChecksSearchFilters .setSchedule (schedule );
142
+ scheduledChecksSearchFilters .setSchedulingGroups (scheduleRoot .getSchedulingGroups ());
143
+
109
144
Collection <AbstractCheckSpec <?,?,?,?>> scheduledChecks = this .hierarchyNodeTreeSearcher .findScheduledChecks (
110
145
clonedTableSpec , scheduledChecksSearchFilters );
111
146
0 commit comments