Skip to content

Commit 7e39a94

Browse files
committed
test: remove static request attribute and management zone dependency
Removes the static request attribute and management zone dependency for `dynatrace_calculated_service_metric` and creates them on demand
1 parent 252618d commit 7e39a94

File tree

15 files changed

+769
-51
lines changed

15 files changed

+769
-51
lines changed

dynatrace/api/v1/config/metrics/calculated/service/service_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@ import (
2323
"testing"
2424

2525
"github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/testing/api"
26+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
2627
)
2728

2829
func TestAccCalculatedServiceMetrics(t *testing.T) {
29-
api.TestAcc(t)
30+
api.TestAcc(t, api.TestAccOptions{ExternalProviders: map[string]resource.ExternalProvider{"time": {Source: "hashicorp/time"}}})
3031
}

dynatrace/api/v1/config/metrics/calculated/service/testdata/terraform/example_a.tf

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,52 @@
1-
resource "dynatrace_calculated_service_metric" "#name#" {
1+
resource "dynatrace_request_attribute" "attribute" {
2+
name = "#name#"
3+
enabled = true
4+
aggregation = "FIRST"
5+
confidential = false
6+
7+
data_type = "INTEGER"
8+
normalization = "ORIGINAL"
9+
skip_personal_data_masking = false
10+
data_sources {
11+
enabled = true
12+
source = "SERVER_VARIABLE"
13+
server_variable_technology = "ASP_NET"
14+
parameter_name = "param"
15+
}
16+
}
17+
18+
resource "dynatrace_management_zone_v2" "mzone" {
19+
name = "#name#"
20+
rules {
21+
rule {
22+
type = "ME"
23+
enabled = true
24+
entity_selector = ""
25+
attribute_rule {
26+
entity_type = "CLOUD_APPLICATION_NAMESPACE"
27+
attribute_conditions {
28+
condition {
29+
case_sensitive = false
30+
key = "KUBERNETES_CLUSTER_NAME"
31+
operator = "EQUALS"
32+
string_value = "extensions"
33+
}
34+
}
35+
}
36+
}
37+
}
38+
}
39+
40+
resource "time_sleep" "wait_for_request_attribute" {
41+
depends_on = [dynatrace_request_attribute.attribute]
42+
create_duration = "10s"
43+
}
44+
45+
resource "dynatrace_calculated_service_metric" "metric" {
46+
depends_on = [time_sleep.wait_for_request_attribute]
247
name = "#name#"
348
enabled = true
4-
management_zones = ["AAAA"]
49+
management_zones = [dynatrace_management_zone_v2.mzone.name]
550
metric_key = "calc:service.#name#"
651
unit = "MILLI_SECOND_PER_MINUTE"
752
conditions {
@@ -18,6 +63,6 @@ resource "dynatrace_calculated_service_metric" "#name#" {
1863
}
1964
metric_definition {
2065
metric = "REQUEST_ATTRIBUTE"
21-
request_attribute = "foo"
66+
request_attribute = dynatrace_request_attribute.attribute.name
2267
}
2368
}

dynatrace/api/v1/config/metrics/calculated/service/testdata/terraform/example_b.tf

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,52 @@
1-
resource "dynatrace_calculated_service_metric" "#name#" {
1+
resource "dynatrace_request_attribute" "attribute" {
2+
name = "#name#"
3+
enabled = true
4+
aggregation = "FIRST"
5+
confidential = false
6+
7+
data_type = "INTEGER"
8+
normalization = "ORIGINAL"
9+
skip_personal_data_masking = false
10+
data_sources {
11+
enabled = true
12+
source = "SERVER_VARIABLE"
13+
server_variable_technology = "ASP_NET"
14+
parameter_name = "param"
15+
}
16+
}
17+
18+
resource "dynatrace_management_zone_v2" "mzone" {
19+
name = "#name#"
20+
rules {
21+
rule {
22+
type = "ME"
23+
enabled = true
24+
entity_selector = ""
25+
attribute_rule {
26+
entity_type = "CLOUD_APPLICATION_NAMESPACE"
27+
attribute_conditions {
28+
condition {
29+
case_sensitive = false
30+
key = "KUBERNETES_CLUSTER_NAME"
31+
operator = "EQUALS"
32+
string_value = "extensions"
33+
}
34+
}
35+
}
36+
}
37+
}
38+
}
39+
40+
resource "time_sleep" "wait_for_request_attribute" {
41+
depends_on = [dynatrace_request_attribute.attribute]
42+
create_duration = "10s"
43+
}
44+
45+
resource "dynatrace_calculated_service_metric" "metric" {
46+
depends_on = [time_sleep.wait_for_request_attribute]
247
name = "#name#"
348
enabled = true
4-
management_zones = ["AAAA"]
49+
management_zones = [dynatrace_management_zone_v2.mzone.name]
550
metric_key = "calc:service.#name#"
651
unit = "MILLI_SECOND_PER_MINUTE"
752
conditions {
@@ -18,6 +63,6 @@ resource "dynatrace_calculated_service_metric" "#name#" {
1863
}
1964
metric_definition {
2065
metric = "REQUEST_ATTRIBUTE"
21-
request_attribute = "foo"
66+
request_attribute = dynatrace_request_attribute.attribute.name
2267
}
2368
}

dynatrace/api/v1/config/metrics/calculated/service/testdata/terraform/example_c.tf

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,52 @@
1-
resource "dynatrace_calculated_service_metric" "#name#" {
1+
resource "dynatrace_request_attribute" "attribute" {
2+
name = "#name#"
3+
enabled = true
4+
aggregation = "FIRST"
5+
confidential = false
6+
7+
data_type = "INTEGER"
8+
normalization = "ORIGINAL"
9+
skip_personal_data_masking = false
10+
data_sources {
11+
enabled = true
12+
source = "SERVER_VARIABLE"
13+
server_variable_technology = "ASP_NET"
14+
parameter_name = "param"
15+
}
16+
}
17+
18+
resource "dynatrace_management_zone_v2" "mzone" {
19+
name = "#name#"
20+
rules {
21+
rule {
22+
type = "ME"
23+
enabled = true
24+
entity_selector = ""
25+
attribute_rule {
26+
entity_type = "CLOUD_APPLICATION_NAMESPACE"
27+
attribute_conditions {
28+
condition {
29+
case_sensitive = false
30+
key = "KUBERNETES_CLUSTER_NAME"
31+
operator = "EQUALS"
32+
string_value = "extensions"
33+
}
34+
}
35+
}
36+
}
37+
}
38+
}
39+
40+
resource "time_sleep" "wait_for_request_attribute" {
41+
depends_on = [dynatrace_request_attribute.attribute]
42+
create_duration = "10s"
43+
}
44+
45+
resource "dynatrace_calculated_service_metric" "metric" {
46+
depends_on = [time_sleep.wait_for_request_attribute]
247
name = "#name#"
348
enabled = true
4-
management_zones = ["AAAA"]
49+
management_zones = [dynatrace_management_zone_v2.mzone.name]
550
metric_key = "calc:service.#name#"
651
unit = "MILLI_SECOND_PER_MINUTE"
752
conditions {
@@ -18,6 +63,6 @@ resource "dynatrace_calculated_service_metric" "#name#" {
1863
}
1964
metric_definition {
2065
metric = "REQUEST_ATTRIBUTE"
21-
request_attribute = "foo"
66+
request_attribute = dynatrace_request_attribute.attribute.name
2267
}
2368
}

dynatrace/api/v1/config/metrics/calculated/service/testdata/terraform/example_d.tf

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,52 @@
1-
resource "dynatrace_calculated_service_metric" "#name#" {
1+
resource "dynatrace_request_attribute" "attribute" {
2+
name = "#name#"
3+
enabled = true
4+
aggregation = "FIRST"
5+
confidential = false
6+
7+
data_type = "INTEGER"
8+
normalization = "ORIGINAL"
9+
skip_personal_data_masking = false
10+
data_sources {
11+
enabled = true
12+
source = "SERVER_VARIABLE"
13+
server_variable_technology = "ASP_NET"
14+
parameter_name = "param"
15+
}
16+
}
17+
18+
resource "dynatrace_management_zone_v2" "mzone" {
19+
name = "#name#"
20+
rules {
21+
rule {
22+
type = "ME"
23+
enabled = true
24+
entity_selector = ""
25+
attribute_rule {
26+
entity_type = "CLOUD_APPLICATION_NAMESPACE"
27+
attribute_conditions {
28+
condition {
29+
case_sensitive = false
30+
key = "KUBERNETES_CLUSTER_NAME"
31+
operator = "EQUALS"
32+
string_value = "extensions"
33+
}
34+
}
35+
}
36+
}
37+
}
38+
}
39+
40+
resource "time_sleep" "wait_for_request_attribute" {
41+
depends_on = [dynatrace_request_attribute.attribute]
42+
create_duration = "10s"
43+
}
44+
45+
resource "dynatrace_calculated_service_metric" "metric" {
46+
depends_on = [time_sleep.wait_for_request_attribute]
247
name = "#name#"
348
enabled = true
4-
management_zones = ["AAAA"]
49+
management_zones = [dynatrace_management_zone_v2.mzone.name]
550
metric_key = "calc:service.#name#"
651
unit = "MILLI_SECOND_PER_MINUTE"
752
conditions {
@@ -19,6 +64,6 @@ resource "dynatrace_calculated_service_metric" "#name#" {
1964
}
2065
metric_definition {
2166
metric = "REQUEST_ATTRIBUTE"
22-
request_attribute = "foo"
67+
request_attribute = dynatrace_request_attribute.attribute.name
2368
}
2469
}

dynatrace/api/v1/config/metrics/calculated/service/testdata/terraform/example_e.tf

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,52 @@
1-
resource "dynatrace_calculated_service_metric" "#name#" {
1+
resource "dynatrace_request_attribute" "attribute" {
2+
name = "#name#"
3+
enabled = true
4+
aggregation = "FIRST"
5+
confidential = false
6+
7+
data_type = "INTEGER"
8+
normalization = "ORIGINAL"
9+
skip_personal_data_masking = false
10+
data_sources {
11+
enabled = true
12+
source = "SERVER_VARIABLE"
13+
server_variable_technology = "ASP_NET"
14+
parameter_name = "param"
15+
}
16+
}
17+
18+
resource "dynatrace_management_zone_v2" "mzone" {
19+
name = "#name#"
20+
rules {
21+
rule {
22+
type = "ME"
23+
enabled = true
24+
entity_selector = ""
25+
attribute_rule {
26+
entity_type = "CLOUD_APPLICATION_NAMESPACE"
27+
attribute_conditions {
28+
condition {
29+
case_sensitive = false
30+
key = "KUBERNETES_CLUSTER_NAME"
31+
operator = "EQUALS"
32+
string_value = "extensions"
33+
}
34+
}
35+
}
36+
}
37+
}
38+
}
39+
40+
resource "time_sleep" "wait_for_request_attribute" {
41+
depends_on = [dynatrace_request_attribute.attribute]
42+
create_duration = "10s"
43+
}
44+
45+
resource "dynatrace_calculated_service_metric" "metric" {
46+
depends_on = [time_sleep.wait_for_request_attribute]
247
name = "#name#"
348
enabled = true
4-
management_zones = ["AAAA"]
49+
management_zones = [dynatrace_management_zone_v2.mzone.name]
550
metric_key = "calc:service.#name#"
651
unit = "MILLI_SECOND_PER_MINUTE"
752
conditions {
@@ -18,6 +63,6 @@ resource "dynatrace_calculated_service_metric" "#name#" {
1863
}
1964
metric_definition {
2065
metric = "REQUEST_ATTRIBUTE"
21-
request_attribute = "foo"
66+
request_attribute = dynatrace_request_attribute.attribute.name
2267
}
2368
}

dynatrace/api/v1/config/metrics/calculated/service/testdata/terraform/example_f.tf

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,52 @@
1-
resource "dynatrace_calculated_service_metric" "#name#" {
1+
resource "dynatrace_request_attribute" "attribute" {
2+
name = "#name#"
3+
enabled = true
4+
aggregation = "FIRST"
5+
confidential = false
6+
7+
data_type = "INTEGER"
8+
normalization = "ORIGINAL"
9+
skip_personal_data_masking = false
10+
data_sources {
11+
enabled = true
12+
source = "SERVER_VARIABLE"
13+
server_variable_technology = "ASP_NET"
14+
parameter_name = "param"
15+
}
16+
}
17+
18+
resource "dynatrace_management_zone_v2" "mzone" {
19+
name = "#name#"
20+
rules {
21+
rule {
22+
type = "ME"
23+
enabled = true
24+
entity_selector = ""
25+
attribute_rule {
26+
entity_type = "CLOUD_APPLICATION_NAMESPACE"
27+
attribute_conditions {
28+
condition {
29+
case_sensitive = false
30+
key = "KUBERNETES_CLUSTER_NAME"
31+
operator = "EQUALS"
32+
string_value = "extensions"
33+
}
34+
}
35+
}
36+
}
37+
}
38+
}
39+
40+
resource "time_sleep" "wait_for_request_attribute" {
41+
depends_on = [dynatrace_request_attribute.attribute]
42+
create_duration = "10s"
43+
}
44+
45+
resource "dynatrace_calculated_service_metric" "metric" {
46+
depends_on = [time_sleep.wait_for_request_attribute]
247
name = "#name#"
348
enabled = true
4-
management_zones = ["AAAA"]
49+
management_zones = [dynatrace_management_zone_v2.mzone.name]
550
metric_key = "calc:service.#name#"
651
unit = "MILLI_SECOND_PER_MINUTE"
752
conditions {
@@ -18,6 +63,6 @@ resource "dynatrace_calculated_service_metric" "#name#" {
1863
}
1964
metric_definition {
2065
metric = "REQUEST_ATTRIBUTE"
21-
request_attribute = "foo"
66+
request_attribute = dynatrace_request_attribute.attribute.name
2267
}
2368
}

0 commit comments

Comments
 (0)