Skip to content

Commit facbcfd

Browse files
reimplementation of dynatrace_notification, which fixes #28
1 parent ab762c0 commit facbcfd

17 files changed

+473
-591
lines changed

.github/workflows/tests.yml

+8
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,14 @@ jobs:
106106
DYNATRACE_ENV_URL: ${{ secrets.DYNATRACE_ENV_URL }}
107107
DYNATRACE_API_TOKEN: ${{ secrets.DYNATRACE_API_TOKEN }}
108108
run: go test -v github.com/dynatrace-oss/terraform-provider-dynatrace/customservices
109+
- name: TestNotifications
110+
env:
111+
GOPROXY: "https://proxy.golang.org"
112+
TF_ACC: true
113+
DYNATRACE_DEBUG: true
114+
DYNATRACE_ENV_URL: ${{ secrets.DYNATRACE_ENV_URL }}
115+
DYNATRACE_API_TOKEN: ${{ secrets.DYNATRACE_API_TOKEN }}
116+
run: go test -v github.com/dynatrace-oss/terraform-provider-dynatrace/notifications
109117
- uses: actions/upload-artifact@v1
110118
if: ${{ always() }}
111119
with:

docs/resources/k8s_credentials.md

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ description: |-
2424
- **active** (Boolean) Monitoring is enabled (`true`) or disabled (`false`) for given credentials configuration. If not set on creation, the `true` value is used. If the field is omitted during an update, the old value remains unaffected.
2525
- **auth_token** (String) The service account bearer token for the Kubernetes API server. Submit your token on creation or update of the configuration. For security reasons, GET requests return this field as `null`. If the field is omitted during an update, the old value remains unaffected.
2626
- **certificate_check_enabled** (Boolean) The check of SSL certificates is enabled (`true`) or disabled (`false`) for the Kubernetes cluster. If not set on creation, the `true` value is used. If the field is omitted during an update, the old value remains unaffected.
27+
- **davis_events_integration_enabled** (Boolean) Inclusion of all Davis relevant events is enabled (`true`) or disabled (`false`) for the Kubernetes cluster. If the field is omitted during an update, the old value remains unaffected
2728
- **endpoint_url** (String) The URL of the Kubernetes API server. It must be unique within a Dynatrace environment. The URL must valid according to RFC 2396. Leading or trailing whitespaces are not allowed.
2829
- **events_field_selectors** (Block List) The check of SSL certificates is enabled (`true`) or disabled (`false`) for the Kubernetes cluster. If not set on creation, the `true` value is used. If the field is omitted during an update, the old value remains unaffected. (see [below for nested schema](#nestedblock--events_field_selectors))
2930
- **events_integration_enabled** (Boolean) Monitoring of events is enabled (`true`) or disabled (`false`) for the Kubernetes cluster. Event monitoring depends on the active state of this configuration to be true. If not set on creation, the `false` value is used. If the field is omitted during an update, the old value remains unaffected.

docs/resources/notification.md

+200-174
Large diffs are not rendered by default.

download.go

+11-3
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ func importK8sCredentials(targetFolder string, environmentURL string, apiToken s
149149
}
150150

151151
func importNotificationConfigs(targetFolder string, environmentURL string, apiToken string) error {
152+
rest.Verbose = true
152153
os.MkdirAll(targetFolder, os.ModePerm)
153154
restClient := notifications.NewService(environmentURL+"/api/config/v1", apiToken)
154155
rest.Verbose = false
@@ -161,15 +162,22 @@ func importNotificationConfigs(targetFolder string, environmentURL string, apiTo
161162
if err != nil {
162163
return err
163164
}
164-
exporter := &NotificationExporter{NotificationConfig: config}
165165
var file *os.File
166-
fileName := targetFolder + "/" + escape(config.GetName()) + ".notification.tf"
166+
fileName := targetFolder + "/" + escape(config.NotificationConfig.GetName()) + ".notification.tf"
167167
os.Remove(fileName)
168168
if file, err = os.Create(fileName); err != nil {
169169
return err
170170
}
171171
defer file.Close()
172-
exporter.ToHCL(file)
172+
if _, err := file.WriteString(fmt.Sprintf("resource \"%s\" \"%s\" {\n", "dynatrace_notification", config.NotificationConfig.GetName())); err != nil {
173+
return err
174+
}
175+
if err := hcl.ExtExport(config, file); err != nil {
176+
return err
177+
}
178+
if _, err := file.WriteString("}\n"); err != nil {
179+
return err
180+
}
173181
}
174182
return nil
175183
}

go.mod

+12-12
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,20 @@ module github.com/dynatrace-oss/terraform-provider-dynatrace
33
go 1.15
44

55
require (
6-
github.com/dtcookie/dynatrace/api/config/alerting v1.0.10
7-
github.com/dtcookie/dynatrace/api/config/autotags v1.0.13
8-
github.com/dtcookie/dynatrace/api/config/credentials/aws v1.0.4
9-
github.com/dtcookie/dynatrace/api/config/credentials/azure v1.0.3
10-
github.com/dtcookie/dynatrace/api/config/credentials/kubernetes v1.0.6
11-
github.com/dtcookie/dynatrace/api/config/customservices v1.0.9
12-
github.com/dtcookie/dynatrace/api/config/dashboards v1.0.3
13-
github.com/dtcookie/dynatrace/api/config/maintenance v1.0.1
14-
github.com/dtcookie/dynatrace/api/config/managementzones v1.0.10
15-
github.com/dtcookie/dynatrace/api/config/notifications v1.0.4
16-
github.com/dtcookie/dynatrace/api/config/requestattributes v1.0.3
6+
github.com/dtcookie/dynatrace/api/config/alerting v1.0.11
7+
github.com/dtcookie/dynatrace/api/config/autotags v1.0.15
8+
github.com/dtcookie/dynatrace/api/config/credentials/aws v1.0.5
9+
github.com/dtcookie/dynatrace/api/config/credentials/azure v1.0.4
10+
github.com/dtcookie/dynatrace/api/config/credentials/kubernetes v1.0.7
11+
github.com/dtcookie/dynatrace/api/config/customservices v1.0.10
12+
github.com/dtcookie/dynatrace/api/config/dashboards v1.0.4
13+
github.com/dtcookie/dynatrace/api/config/maintenance v1.0.2
14+
github.com/dtcookie/dynatrace/api/config/managementzones v1.0.11
15+
github.com/dtcookie/dynatrace/api/config/notifications v1.0.5
16+
github.com/dtcookie/dynatrace/api/config/requestattributes v1.0.4
1717
github.com/dtcookie/dynatrace/rest v1.0.14
1818
github.com/dtcookie/dynatrace/terraform v1.0.5
19-
github.com/dtcookie/hcl v0.0.7
19+
github.com/dtcookie/hcl v0.0.8
2020
github.com/dtcookie/opt v1.0.0
2121
github.com/hashicorp/terraform-plugin-docs v0.4.0
2222
github.com/hashicorp/terraform-plugin-sdk/v2 v2.6.1

go.sum

+28-29
Original file line numberDiff line numberDiff line change
@@ -89,43 +89,42 @@ github.com/dtcookie/dynatrace/api/config v1.0.3 h1:cqfO/1YkYUFYJ1tBUG6OG8x7ovhL2
8989
github.com/dtcookie/dynatrace/api/config v1.0.3/go.mod h1:TdfHhh+I/w6R9RNMUeYAbhsZiXwdQvW11lbR4TGgXts=
9090
github.com/dtcookie/dynatrace/api/config v1.0.4 h1:pqzYQLSWEDM0Hp235iJyQdqI5t79U4OoqTbEtmD7k7o=
9191
github.com/dtcookie/dynatrace/api/config v1.0.4/go.mod h1:RbyqkuV9J1iV97kMpuzyvMPQSKDouse0BZJNSXGropQ=
92-
github.com/dtcookie/dynatrace/api/config/alerting v1.0.10 h1:POxv8HPLRGslxesfPVqwjnZ7R29/J5aoM/6TPJopGU8=
93-
github.com/dtcookie/dynatrace/api/config/alerting v1.0.10/go.mod h1:8p+Po3kTRqp7KQkwXL924UVUocFeR7IRGG2H7U4MAHc=
94-
github.com/dtcookie/dynatrace/api/config/autotags v1.0.13 h1:rBB1oOi1j4fleK3seqmpKk0joOb/Y4TvWPKGE39DKi8=
95-
github.com/dtcookie/dynatrace/api/config/autotags v1.0.13/go.mod h1:IjLIUxlkxKoKsLgr0nTRZJ0I7pfUvzXr4Vrq9a2mTx8=
96-
github.com/dtcookie/dynatrace/api/config/credentials/aws v1.0.4 h1:unfIE9oP381B4EU7Gjy5fdejZm6j1wn7kceuqrABUJU=
97-
github.com/dtcookie/dynatrace/api/config/credentials/aws v1.0.4/go.mod h1:cLmiZu+LjDE2pRqNAPwkM+yWnSciXXSSlgodgPPYw54=
98-
github.com/dtcookie/dynatrace/api/config/credentials/azure v1.0.3 h1:YYYonHD1mIDfotZzWXrJy/JRow0eaDBzDbt0MjyyMdY=
99-
github.com/dtcookie/dynatrace/api/config/credentials/azure v1.0.3/go.mod h1:uw9cr/zT+82xbOmvXz8iFd+Ro5Bl7wRoyag2EA3/VoY=
100-
github.com/dtcookie/dynatrace/api/config/credentials/kubernetes v1.0.6 h1:EPSwR79jmcJy+H06xDvUd2U9KCy3ECARUOaLj8w6dPI=
101-
github.com/dtcookie/dynatrace/api/config/credentials/kubernetes v1.0.6/go.mod h1:8o9SQmYQ3lXFXj0EDiCswmtq16KzqmJMcyv+u49axMg=
102-
github.com/dtcookie/dynatrace/api/config/customservices v1.0.9 h1:Hgyp9LW57WlGvK3FdJkp+3GHeQGdsZv3jhNsK0JlsOY=
103-
github.com/dtcookie/dynatrace/api/config/customservices v1.0.9/go.mod h1:uHqhKBL7+FQGmbWRXbLrkxNNSPOGkpLp+OuC1vhLk4w=
104-
github.com/dtcookie/dynatrace/api/config/dashboards v1.0.3 h1:rU8ulsbLxCfwkzTN8oSbNlP1C7YP5ZOnKeaXUEYddmU=
105-
github.com/dtcookie/dynatrace/api/config/dashboards v1.0.3/go.mod h1:35+2g6FMzs2VoLF1wcZPS40YdO8PfDSE4RDEaUGC8D8=
106-
github.com/dtcookie/dynatrace/api/config/entityruleengine v1.0.4 h1:rrhbgAkoBXOxP7DXOPA2dvgkoW80rX26UT/4WCbqlIw=
107-
github.com/dtcookie/dynatrace/api/config/entityruleengine v1.0.4/go.mod h1:AE3/TF74Xgf0frl5vZ0fcJXuUDYIdkZt6W2mzCuk9jU=
108-
github.com/dtcookie/dynatrace/api/config/maintenance v1.0.1 h1:DFxUmMX9x/YRWC7TmNHGXhrCRHiHgl5VvJmbw/xkRgM=
109-
github.com/dtcookie/dynatrace/api/config/maintenance v1.0.1/go.mod h1:VrRGB/uIJH3fmVIgAyBO+eun18BeCmiU8dP5Awgolp4=
110-
github.com/dtcookie/dynatrace/api/config/managementzones v1.0.10 h1:FuWQ1lMiaK+6g7msUQYXdyQLawL2BVdlDVDgc+5ekkU=
111-
github.com/dtcookie/dynatrace/api/config/managementzones v1.0.10/go.mod h1:j7xluCcgJC6TMv231EiAfonkI6bbBeDJkUZvFa6toVk=
112-
github.com/dtcookie/dynatrace/api/config/notifications v1.0.4 h1:9IPDrLq1jdurtIOnnXiG/s24JIeDgUJoQq4qwJFleVM=
113-
github.com/dtcookie/dynatrace/api/config/notifications v1.0.4/go.mod h1:9OKLfzZhJqToKVcefybqPZ8/uXjpvmksi85JwYcNw5c=
114-
github.com/dtcookie/dynatrace/api/config/requestattributes v1.0.3 h1:ES5m7OfpCANkMMh9gYLHydy8Tu4rGY2i1PJ5Z2sXMDs=
115-
github.com/dtcookie/dynatrace/api/config/requestattributes v1.0.3/go.mod h1:YxAwkR4f+0Yj1LAvMxYCi5Qklsd2FlDQSJrIipBfm7I=
92+
github.com/dtcookie/dynatrace/api/config/alerting v1.0.11 h1:UAMDeqocP+oMjSEDaqfJysx0oy62U/AoIIckcDVgfV4=
93+
github.com/dtcookie/dynatrace/api/config/alerting v1.0.11/go.mod h1:xNseOqIWDYIEWzylg+7hqTwbP1K+msJARx1a2zolW8Q=
94+
github.com/dtcookie/dynatrace/api/config/autotags v1.0.15 h1:KwbnMqWqyYnpKlqkZrvYQsTJXjVQ+YZfnuskdUg3DH4=
95+
github.com/dtcookie/dynatrace/api/config/autotags v1.0.15/go.mod h1:GMfeouA4Q9R2s/wHMVSlK4vgh6WOJIBb6PLD902qP80=
96+
github.com/dtcookie/dynatrace/api/config/credentials/aws v1.0.5 h1:LEZO32psZPMynUDrCUcilN7b57DJmuupDGj6vsKxOl8=
97+
github.com/dtcookie/dynatrace/api/config/credentials/aws v1.0.5/go.mod h1:ifSFnn7OhzvyrUZQK/PljH51dDsl6oyCAN4Pqk3z1z8=
98+
github.com/dtcookie/dynatrace/api/config/credentials/azure v1.0.4 h1:TkMD//W0dlWZdrWmfBjMQ6DaypPKZgr5GI9GMIUrgu4=
99+
github.com/dtcookie/dynatrace/api/config/credentials/azure v1.0.4/go.mod h1:mpz+4fIeCTvFN/8Q+3qwX9VX5w7wnIjERxeJwrfN5vY=
100+
github.com/dtcookie/dynatrace/api/config/credentials/kubernetes v1.0.7 h1:wzZXBtUjo7QtLDNJiVL24EffmRY5PADv06pSKN7wvAM=
101+
github.com/dtcookie/dynatrace/api/config/credentials/kubernetes v1.0.7/go.mod h1:iSax4A5AiVm+ILtTwZbRwZke9wOGt/WWaK/QKAl6ncI=
102+
github.com/dtcookie/dynatrace/api/config/customservices v1.0.10 h1:1hR15QQfKMNeuz3qNPsvpC2RMjHPh9dVuXtxQgofoSo=
103+
github.com/dtcookie/dynatrace/api/config/customservices v1.0.10/go.mod h1:4T+Kds+6zXrdIJxLkU9aar7skOG5CSwUr6Y3FqgPG0g=
104+
github.com/dtcookie/dynatrace/api/config/dashboards v1.0.4 h1:Sx2YuPH+8wNpEwewsvChFstRn2FkRjxxYJHiJKvkxb0=
105+
github.com/dtcookie/dynatrace/api/config/dashboards v1.0.4/go.mod h1:mH95VkUNNBmjmWk9B1VAuJ+fdXy4WkGjhR3zKLmhf60=
106+
github.com/dtcookie/dynatrace/api/config/entityruleengine v1.0.5 h1:EmmOMrn7hIWj70U3Hf3ZIBsxWi1YKjBzakYqA+1yqnQ=
107+
github.com/dtcookie/dynatrace/api/config/entityruleengine v1.0.5/go.mod h1:1s/SbmFqhMYi4hq4t+MkfS6AReOyGmNBKxxJGZCXKfE=
108+
github.com/dtcookie/dynatrace/api/config/maintenance v1.0.2 h1:aDRM4Bd/L8isAV7ysSC0+ldALCkbrc4VBZy0yLmit/4=
109+
github.com/dtcookie/dynatrace/api/config/maintenance v1.0.2/go.mod h1:Sg4972nfJR1LRITKvxMObyYy5RKOR8+OUKGIFpFuNRA=
110+
github.com/dtcookie/dynatrace/api/config/managementzones v1.0.11 h1:v9GOC8gc74sfg4XG7iFxbw0NJ+BjtMcVbk1siOxFpBA=
111+
github.com/dtcookie/dynatrace/api/config/managementzones v1.0.11/go.mod h1:RnSQCF7JlpHl1/U2H2lgW2KAQhK4MSHq9saHofC8NCw=
112+
github.com/dtcookie/dynatrace/api/config/notifications v1.0.5 h1:tAeGZ13oad9i1mALfnKSaAqMLBuAs5ZWjkkiqJ9fxvA=
113+
github.com/dtcookie/dynatrace/api/config/notifications v1.0.5/go.mod h1:UGp7N3Ou7HyGgCHNAaYZECqNCaWuDxQtWECmJZWyVAs=
114+
github.com/dtcookie/dynatrace/api/config/requestattributes v1.0.4 h1:uu8uEJaEsAQTW8H+T/4Hz20tRJG/aWzSW/VoSYbwYSo=
115+
github.com/dtcookie/dynatrace/api/config/requestattributes v1.0.4/go.mod h1:nqEk/yDTLlO/2xgP8zvDxGljClqfiR2x4imxc6HtP0U=
116116
github.com/dtcookie/dynatrace/rest v1.0.14 h1:mNV2Mi/L2RSqC2kbIbN9kDyU+ZREVA4TGQxtSrE6nIc=
117117
github.com/dtcookie/dynatrace/rest v1.0.14/go.mod h1://1AkUkyFQFG43vhMg2aykz13PgB/4eTUIE8SS+vnNw=
118118
github.com/dtcookie/dynatrace/terraform v1.0.5 h1:PnKq25krzCtMtW7yAdlb0K5eEdoO4sN03cnQQEBId0A=
119119
github.com/dtcookie/dynatrace/terraform v1.0.5/go.mod h1:1wKoRA18KTRr+PO1Z4yAgosolyqKGfnTLuaQ54oVPEk=
120-
github.com/dtcookie/gojson v0.9.1 h1:XsDBv2muNERQUE9qOsShqUe9EXIKF3gZNI2znLOC9H4=
121-
github.com/dtcookie/gojson v0.9.1/go.mod h1:0fxz4ibMLH2e40Ty+Lw4CBTJ/mHaDaLm3rrTPkupPJc=
122120
github.com/dtcookie/hcl v0.0.5/go.mod h1:Niw4THUH2DScKO41LSoJmhUFLbDfZBuNkbQAAI+DLQc=
123-
github.com/dtcookie/hcl v0.0.7 h1:uwkqpAbP8v7QLvNoDcnjqTchs5E9330s8uj65+jwayI=
124121
github.com/dtcookie/hcl v0.0.7/go.mod h1:jtxzoNG5jtCEI00+623fcqOUbB0fviqCVj+LZueZtWs=
122+
github.com/dtcookie/hcl v0.0.8 h1:uTSp8JxjyvUtv1NXU2Wiff0arBZTui8qfmg/V9zebck=
123+
github.com/dtcookie/hcl v0.0.8/go.mod h1:jtxzoNG5jtCEI00+623fcqOUbB0fviqCVj+LZueZtWs=
125124
github.com/dtcookie/opt v1.0.0 h1:3YTf76sWRAjcJnTNNCjeJNikT05aOrVlg13xDbX5OGg=
126125
github.com/dtcookie/opt v1.0.0/go.mod h1:3fHzYaPu0kQ/Esfd/L0GipVrrnA/6hXTnATyO6QbzW8=
127-
github.com/dtcookie/xjson v1.0.1 h1:Ap7fKsar4oIgQQGMdbxhXFTizuTeUkm3pkvndUWXdx4=
128-
github.com/dtcookie/xjson v1.0.1/go.mod h1:WRUvI2hDQ7blADJWZtfXc7iStLnxTdU9FEoBYzt5UQI=
126+
github.com/dtcookie/xjson v1.0.2 h1:9V3YO68umeJMvxZJoe+S4UFdKrf/iljGbl98zlSvxaE=
127+
github.com/dtcookie/xjson v1.0.2/go.mod h1:WRUvI2hDQ7blADJWZtfXc7iStLnxTdU9FEoBYzt5UQI=
129128
github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg=
130129
github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=
131130
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=

main.go

-6
Original file line numberDiff line numberDiff line change
@@ -142,12 +142,6 @@ func download(args []string) bool {
142142
}
143143

144144
func main() {
145-
// if createSchema(os.Args) {
146-
// return
147-
// }
148-
// if convert(os.Args) {
149-
// return
150-
// }
151145
if download(os.Args) {
152146
return
153147
}

notification_exporter.go

-51
This file was deleted.

0 commit comments

Comments
 (0)