Skip to content

Commit 88f8265

Browse files
Add DSF on reducer to suppress empty == REDUCE_NONE (#6655) (#12741)
Signed-off-by: Modular Magician <[email protected]> Signed-off-by: Modular Magician <[email protected]>
1 parent 9c9c51f commit 88f8265

File tree

3 files changed

+21
-10
lines changed

3 files changed

+21
-10
lines changed

.changelog/6655.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:bug
2+
monitoring: fixed a bug causing a perma-diff in `google_monitoring_alert_policy` when `cross_series_reducer` was set to "REDUCE_NONE"
3+
```

google/resource_monitoring_alert_policy.go

+17-9
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ import (
2424
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
2525
)
2626

27+
// API does not return a value for REDUCE_NONE
28+
func crossSeriesReducerDiffSuppress(k, old, new string, d *schema.ResourceData) bool {
29+
return (new == "" && old == "REDUCE_NONE") || (new == "REDUCE_NONE" && old == "")
30+
}
31+
2732
func resourceMonitoringAlertPolicy() *schema.Resource {
2833
return &schema.Resource{
2934
Create: resourceMonitoringAlertPolicyCreate,
@@ -117,9 +122,10 @@ this field must be defined;
117122
otherwise an error is returned.`,
118123
},
119124
"cross_series_reducer": {
120-
Type: schema.TypeString,
121-
Optional: true,
122-
ValidateFunc: validateEnum([]string{"REDUCE_NONE", "REDUCE_MEAN", "REDUCE_MIN", "REDUCE_MAX", "REDUCE_SUM", "REDUCE_STDDEV", "REDUCE_COUNT", "REDUCE_COUNT_TRUE", "REDUCE_COUNT_FALSE", "REDUCE_FRACTION_TRUE", "REDUCE_PERCENTILE_99", "REDUCE_PERCENTILE_95", "REDUCE_PERCENTILE_50", "REDUCE_PERCENTILE_05", ""}),
125+
Type: schema.TypeString,
126+
Optional: true,
127+
ValidateFunc: validateEnum([]string{"REDUCE_NONE", "REDUCE_MEAN", "REDUCE_MIN", "REDUCE_MAX", "REDUCE_SUM", "REDUCE_STDDEV", "REDUCE_COUNT", "REDUCE_COUNT_TRUE", "REDUCE_COUNT_FALSE", "REDUCE_FRACTION_TRUE", "REDUCE_PERCENTILE_99", "REDUCE_PERCENTILE_95", "REDUCE_PERCENTILE_50", "REDUCE_PERCENTILE_05", ""}),
128+
DiffSuppressFunc: crossSeriesReducerDiffSuppress,
123129
Description: `The approach to be used to combine
124130
time series. Not all reducer
125131
functions may be applied to all
@@ -421,9 +427,10 @@ this field must be defined;
421427
otherwise an error is returned.`,
422428
},
423429
"cross_series_reducer": {
424-
Type: schema.TypeString,
425-
Optional: true,
426-
ValidateFunc: validateEnum([]string{"REDUCE_NONE", "REDUCE_MEAN", "REDUCE_MIN", "REDUCE_MAX", "REDUCE_SUM", "REDUCE_STDDEV", "REDUCE_COUNT", "REDUCE_COUNT_TRUE", "REDUCE_COUNT_FALSE", "REDUCE_FRACTION_TRUE", "REDUCE_PERCENTILE_99", "REDUCE_PERCENTILE_95", "REDUCE_PERCENTILE_50", "REDUCE_PERCENTILE_05", ""}),
430+
Type: schema.TypeString,
431+
Optional: true,
432+
ValidateFunc: validateEnum([]string{"REDUCE_NONE", "REDUCE_MEAN", "REDUCE_MIN", "REDUCE_MAX", "REDUCE_SUM", "REDUCE_STDDEV", "REDUCE_COUNT", "REDUCE_COUNT_TRUE", "REDUCE_COUNT_FALSE", "REDUCE_FRACTION_TRUE", "REDUCE_PERCENTILE_99", "REDUCE_PERCENTILE_95", "REDUCE_PERCENTILE_50", "REDUCE_PERCENTILE_05", ""}),
433+
DiffSuppressFunc: crossSeriesReducerDiffSuppress,
427434
Description: `The approach to be used to combine
428435
time series. Not all reducer
429436
functions may be applied to all
@@ -539,9 +546,10 @@ this field must be defined;
539546
otherwise an error is returned.`,
540547
},
541548
"cross_series_reducer": {
542-
Type: schema.TypeString,
543-
Optional: true,
544-
ValidateFunc: validateEnum([]string{"REDUCE_NONE", "REDUCE_MEAN", "REDUCE_MIN", "REDUCE_MAX", "REDUCE_SUM", "REDUCE_STDDEV", "REDUCE_COUNT", "REDUCE_COUNT_TRUE", "REDUCE_COUNT_FALSE", "REDUCE_FRACTION_TRUE", "REDUCE_PERCENTILE_99", "REDUCE_PERCENTILE_95", "REDUCE_PERCENTILE_50", "REDUCE_PERCENTILE_05", ""}),
549+
Type: schema.TypeString,
550+
Optional: true,
551+
ValidateFunc: validateEnum([]string{"REDUCE_NONE", "REDUCE_MEAN", "REDUCE_MIN", "REDUCE_MAX", "REDUCE_SUM", "REDUCE_STDDEV", "REDUCE_COUNT", "REDUCE_COUNT_TRUE", "REDUCE_COUNT_FALSE", "REDUCE_FRACTION_TRUE", "REDUCE_PERCENTILE_99", "REDUCE_PERCENTILE_95", "REDUCE_PERCENTILE_50", "REDUCE_PERCENTILE_05", ""}),
552+
DiffSuppressFunc: crossSeriesReducerDiffSuppress,
545553
Description: `The approach to be used to combine
546554
time series. Not all reducer
547555
functions may be applied to all

google/resource_monitoring_alert_policy_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ resource "google_monitoring_alert_policy" "full" {
249249
250250
aggregations {
251251
alignment_period = "60s"
252-
cross_series_reducer = "REDUCE_MEAN"
252+
cross_series_reducer = "REDUCE_NONE"
253253
per_series_aligner = "ALIGN_MEAN"
254254
255255
group_by_fields = [

0 commit comments

Comments
 (0)