Skip to content

Commit

Permalink
Add DSF on reducer to suppress empty == REDUCE_NONE (#6655) (#12741)
Browse files Browse the repository at this point in the history
Signed-off-by: Modular Magician <magic-modules@google.com>

Signed-off-by: Modular Magician <magic-modules@google.com>
  • Loading branch information
modular-magician committed Oct 7, 2022
1 parent 9c9c51f commit 88f8265
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 10 deletions.
3 changes: 3 additions & 0 deletions .changelog/6655.txt
@@ -0,0 +1,3 @@
```release-note:bug
monitoring: fixed a bug causing a perma-diff in `google_monitoring_alert_policy` when `cross_series_reducer` was set to "REDUCE_NONE"
```
26 changes: 17 additions & 9 deletions google/resource_monitoring_alert_policy.go
Expand Up @@ -24,6 +24,11 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)

// API does not return a value for REDUCE_NONE
func crossSeriesReducerDiffSuppress(k, old, new string, d *schema.ResourceData) bool {
return (new == "" && old == "REDUCE_NONE") || (new == "REDUCE_NONE" && old == "")
}

func resourceMonitoringAlertPolicy() *schema.Resource {
return &schema.Resource{
Create: resourceMonitoringAlertPolicyCreate,
Expand Down Expand Up @@ -117,9 +122,10 @@ this field must be defined;
otherwise an error is returned.`,
},
"cross_series_reducer": {
Type: schema.TypeString,
Optional: true,
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", ""}),
Type: schema.TypeString,
Optional: true,
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", ""}),
DiffSuppressFunc: crossSeriesReducerDiffSuppress,
Description: `The approach to be used to combine
time series. Not all reducer
functions may be applied to all
Expand Down Expand Up @@ -421,9 +427,10 @@ this field must be defined;
otherwise an error is returned.`,
},
"cross_series_reducer": {
Type: schema.TypeString,
Optional: true,
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", ""}),
Type: schema.TypeString,
Optional: true,
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", ""}),
DiffSuppressFunc: crossSeriesReducerDiffSuppress,
Description: `The approach to be used to combine
time series. Not all reducer
functions may be applied to all
Expand Down Expand Up @@ -539,9 +546,10 @@ this field must be defined;
otherwise an error is returned.`,
},
"cross_series_reducer": {
Type: schema.TypeString,
Optional: true,
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", ""}),
Type: schema.TypeString,
Optional: true,
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", ""}),
DiffSuppressFunc: crossSeriesReducerDiffSuppress,
Description: `The approach to be used to combine
time series. Not all reducer
functions may be applied to all
Expand Down
2 changes: 1 addition & 1 deletion google/resource_monitoring_alert_policy_test.go
Expand Up @@ -249,7 +249,7 @@ resource "google_monitoring_alert_policy" "full" {
aggregations {
alignment_period = "60s"
cross_series_reducer = "REDUCE_MEAN"
cross_series_reducer = "REDUCE_NONE"
per_series_aligner = "ALIGN_MEAN"
group_by_fields = [
Expand Down

0 comments on commit 88f8265

Please sign in to comment.