Skip to content

Commit 917af72

Browse files
authored
refactor: Update services to use latest version of github.com/dynatrace/dynatrace-configuration-as-code-core (#685)
1 parent 6f37d78 commit 917af72

File tree

8 files changed

+67
-51
lines changed

8 files changed

+67
-51
lines changed

dynatrace/api/automation/business_calendars/service.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,15 @@ package business_calendars
2020
import (
2121
"context"
2222
"encoding/json"
23+
"errors"
2324

2425
"github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/api"
2526
tfrest "github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/rest"
2627
"github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/settings"
2728

2829
automationerr "github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/api/automation"
2930
business_calendars "github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/api/automation/business_calendars/settings"
31+
cacapi "github.com/dynatrace/dynatrace-configuration-as-code-core/api"
3032
apiClient "github.com/dynatrace/dynatrace-configuration-as-code-core/api/clients/automation"
3133
"github.com/dynatrace/dynatrace-configuration-as-code-core/clients/automation"
3234
)
@@ -82,11 +84,14 @@ func (me *service) List(ctx context.Context) (api.Stubs, error) {
8284
}
8385
listResponse, err := client.List(ctx, apiClient.BusinessCalendars)
8486
if err != nil {
87+
apiErr := cacapi.APIError{}
88+
if errors.As(err, &apiErr) {
89+
return nil, tfrest.Error{Code: apiErr.StatusCode, Message: string(apiErr.Body)}
90+
}
91+
8592
return nil, err
8693
}
87-
if apiErr, ok := listResponse.AsAPIError(); ok {
88-
return nil, tfrest.Error{Code: apiErr.StatusCode, Message: string(apiErr.Body)}
89-
}
94+
9095
var stubs api.Stubs
9196
for _, r := range listResponse.All() {
9297
var stub BusinessCalendarStub

dynatrace/api/automation/scheduling_rules/service.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,15 @@ package scheduling_rules
2020
import (
2121
"context"
2222
"encoding/json"
23+
"errors"
2324

2425
"github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/api"
2526
tfrest "github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/rest"
2627
"github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/settings"
2728

2829
automationerr "github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/api/automation"
2930
scheduling_rules "github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/api/automation/scheduling_rules/settings"
31+
cacapi "github.com/dynatrace/dynatrace-configuration-as-code-core/api"
3032
apiClient "github.com/dynatrace/dynatrace-configuration-as-code-core/api/clients/automation"
3133
"github.com/dynatrace/dynatrace-configuration-as-code-core/clients/automation"
3234
)
@@ -82,11 +84,13 @@ func (me *service) List(ctx context.Context) (api.Stubs, error) {
8284
}
8385
listResponse, err := client.List(ctx, apiClient.SchedulingRules)
8486
if err != nil {
87+
apiErr := cacapi.APIError{}
88+
if errors.As(err, &apiErr) {
89+
return nil, tfrest.Error{Code: apiErr.StatusCode, Message: string(apiErr.Body)}
90+
}
91+
8592
return nil, err
8693
}
87-
if apiErr, ok := listResponse.AsAPIError(); ok {
88-
return nil, tfrest.Error{Code: apiErr.StatusCode, Message: string(apiErr.Body)}
89-
}
9094
var stubs api.Stubs
9195
for _, r := range listResponse.All() {
9296
var stub SchedulingRuleStub

dynatrace/api/automation/workflows/service.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,15 @@ package workflows
2020
import (
2121
"context"
2222
"encoding/json"
23+
"errors"
2324

2425
"github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/api"
2526
tfrest "github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/rest"
2627
"github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/settings"
2728

2829
automationerr "github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/api/automation"
2930
workflows "github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/api/automation/workflows/settings"
31+
cacapi "github.com/dynatrace/dynatrace-configuration-as-code-core/api"
3032
apiClient "github.com/dynatrace/dynatrace-configuration-as-code-core/api/clients/automation"
3133
"github.com/dynatrace/dynatrace-configuration-as-code-core/clients/automation"
3234
)
@@ -85,11 +87,13 @@ func (me *service) List(ctx context.Context) (api.Stubs, error) {
8587
}
8688
listResponse, err := client.List(ctx, apiClient.Workflows)
8789
if err != nil {
90+
apiErr := cacapi.APIError{}
91+
if errors.As(err, &apiErr) {
92+
return nil, tfrest.Error{Code: apiErr.StatusCode, Message: string(apiErr.Body)}
93+
}
8894
return nil, err
8995
}
90-
if apiErr, ok := listResponse.AsAPIError(); ok {
91-
return nil, tfrest.Error{Code: apiErr.StatusCode, Message: string(apiErr.Body)}
92-
}
96+
9397
var stubs api.Stubs
9498
for _, r := range listResponse.All() {
9599
var workflowStub WorkflowStub

dynatrace/api/documents/document/service.go

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -155,15 +155,16 @@ func (me *service) createPrivate(ctx context.Context, v *documents.Document) (st
155155
response, err := c.Create(ctx, v.Name, v.IsPrivate, "", []byte(v.Content), docclient.DocumentType(v.Type))
156156
if err != nil {
157157
if apiError, ok := err.(docapi.APIError); ok {
158-
return nil, rest.Error{Code: apiError.StatusCode, Message: apiError.Error()}
158+
return nil, rest.Error{Code: apiError.StatusCode, Message: string(apiError.Body)}
159159
}
160160
return nil, err
161161
}
162-
if response.IsSuccess() {
163-
json.Unmarshal(response.Data, &stub)
164-
return stub, nil
162+
163+
if err := json.Unmarshal(response.Data, &stub); err != nil {
164+
return nil, err
165165
}
166-
return nil, rest.Error{Code: response.StatusCode, Message: string(response.Data)}
166+
return stub, nil
167+
167168
}
168169

169170
func (me *service) Update(ctx context.Context, id string, v *documents.Document) (err error) {
@@ -175,37 +176,31 @@ func (me *service) update(ctx context.Context, id string, v *documents.Document)
175176
if err != nil {
176177
return err
177178
}
178-
response, err := c.Update(ctx, id, v.Name, v.IsPrivate, []byte(v.Content), docclient.DocumentType(v.Type))
179+
_, err = c.Update(ctx, id, v.Name, v.IsPrivate, []byte(v.Content), docclient.DocumentType(v.Type))
179180
if err != nil {
180181
if apiError, ok := err.(docapi.APIError); ok {
181-
return rest.Error{Code: apiError.StatusCode, Message: apiError.Error()}
182+
return rest.Error{Code: apiError.StatusCode, Message: string(apiError.Body)}
182183
}
183184
return err
184185
}
185-
if response.IsSuccess() {
186-
return nil
187-
}
188186

189-
return rest.Error{Code: response.StatusCode, Message: string(response.Data)}
187+
return nil
190188
}
191189

192190
func (me *service) Delete(ctx context.Context, id string) error {
193191
client, err := me.client(ctx)
194192
if err != nil {
195193
return err
196194
}
197-
response, err := client.Delete(ctx, id)
195+
_, err = client.Delete(ctx, id)
198196
if err != nil {
199197
if apiError, ok := err.(docapi.APIError); ok {
200-
return rest.Error{Code: apiError.StatusCode, Message: apiError.Error()}
198+
return rest.Error{Code: apiError.StatusCode, Message: string(apiError.Body)}
201199
}
202200
return err
203201
}
204-
if response.IsSuccess() {
205-
return nil
206-
}
207202

208-
return rest.Error{Code: response.StatusCode, Message: string(response.Data)}
203+
return nil
209204
}
210205

211206
func (me *service) New() *documents.Document {

dynatrace/api/openpipeline/service.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,13 @@ package openpipeline
2020
import (
2121
"context"
2222
"encoding/json"
23+
"errors"
2324

2425
"github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/api"
2526
openpipeline "github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/api/openpipeline/settings"
2627
"github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/rest"
2728
"github.com/dynatrace-oss/terraform-provider-dynatrace/dynatrace/settings"
29+
cacapi "github.com/dynatrace/dynatrace-configuration-as-code-core/api"
2830
caclib "github.com/dynatrace/dynatrace-configuration-as-code-core/clients/openpipeline"
2931
)
3032

@@ -77,13 +79,13 @@ func (s *service) Get(ctx context.Context, id string, v *openpipeline.Configurat
7779

7880
response, err := client.Get(ctx, s.kind)
7981
if err != nil {
82+
apiErr := cacapi.APIError{}
83+
if errors.As(err, &apiErr) {
84+
return rest.Envelope(apiErr.Body, s.credentials.OAuth.EnvironmentURL, "GET")
85+
}
8086
return err
8187
}
8288

83-
if !response.IsSuccess() {
84-
return rest.Envelope(response.Data, s.credentials.OAuth.EnvironmentURL, "GET")
85-
}
86-
8789
if err := json.Unmarshal(response.Data, &v); err != nil {
8890
return err
8991
}

dynatrace/api/platform/buckets/service.go

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ package buckets
2020
import (
2121
"context"
2222
"encoding/json"
23+
"errors"
2324
"os"
2425
"strconv"
2526
"strings"
@@ -78,11 +79,13 @@ func (me *service) get(ctx context.Context, id string, v *buckets.Bucket) (err e
7879
}
7980
var result bucket.Response
8081
if result, err = client.Get(ctx, id); err != nil {
82+
apiErr := coreapi.APIError{}
83+
if errors.As(err, &apiErr) {
84+
return rest.Envelope(apiErr.Body, me.credentials.OAuth.EnvironmentURL, "GET")
85+
}
8186
return err
8287
}
83-
if !result.IsSuccess() {
84-
return rest.Envelope(result.Data, me.credentials.OAuth.EnvironmentURL, "GET")
85-
}
88+
8689
return json.Unmarshal(result.Data, &v)
8790
}
8891

@@ -149,13 +152,14 @@ func (me *service) Create(ctx context.Context, v *buckets.Bucket) (stub *api.Stu
149152
if data, err = json.Marshal(v); err != nil {
150153
return nil, err
151154
}
152-
var response bucket.Response
153-
if response, err = client.Create(ctx, v.Name, data); err != nil {
155+
156+
if _, err = client.Create(ctx, v.Name, data); err != nil {
157+
apiErr := coreapi.APIError{}
158+
if errors.As(err, &apiErr) {
159+
return nil, rest.Envelope(apiErr.Body, me.credentials.OAuth.EnvironmentURL, "POST")
160+
}
154161
return nil, err
155162
}
156-
if !response.IsSuccess() {
157-
return nil, rest.Envelope(response.Data, me.credentials.OAuth.EnvironmentURL, "POST")
158-
}
159163

160164
maxConfirmationRetries := getEnv("DT_BUCKETS_RETRIES", DefaultMaxConfirmationRetries, MinMaxConfirmationRetries, MaxMaxConfirmationRetries)
161165
numRequiredSuccesses := getEnv("DT_BUCKETS_NUM_SUCCESSES", DefaultNumRequiredSuccesses, MinNumRequiredSuccesses, MaxNumRequiredSuccesses)
@@ -199,14 +203,16 @@ func (me *service) Update(ctx context.Context, id string, v *buckets.Bucket) (er
199203
if data, err = json.Marshal(v); err != nil {
200204
return err
201205
}
202-
var response bucket.Response
203-
response, err = client.Update(ctx, id, data)
206+
207+
_, err = client.Update(ctx, id, data)
204208
if err != nil {
209+
apiErr := coreapi.APIError{}
210+
if errors.As(err, &apiErr) {
211+
return rest.Envelope(apiErr.Body, me.credentials.OAuth.EnvironmentURL, "PUT")
212+
}
205213
return err
206214
}
207-
if !response.IsSuccess() {
208-
return rest.Envelope(response.Data, me.credentials.OAuth.EnvironmentURL, "PUT")
209-
}
215+
210216
maxConfirmationRetries := getEnv("DT_BUCKETS_RETRIES", DefaultMaxConfirmationRetries, MinMaxConfirmationRetries, MaxMaxConfirmationRetries)
211217
retries := 0
212218
for {

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ toolchain go1.24.1
66

77
require (
88
github.com/dlclark/regexp2 v1.11.4
9-
github.com/dynatrace/dynatrace-configuration-as-code-core v0.7.1-0.20250306093342-97cc482e553f
9+
github.com/dynatrace/dynatrace-configuration-as-code-core v0.8.1-0.20250514143234-94fb2ef0c525
1010
github.com/go-logr/logr v1.4.2
1111
github.com/google/uuid v1.6.0
1212
github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320
@@ -20,7 +20,7 @@ require (
2020
github.com/stretchr/testify v1.10.0
2121
github.com/zclconf/go-cty v1.15.1
2222
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67
23-
golang.org/x/oauth2 v0.28.0
23+
golang.org/x/oauth2 v0.30.0
2424
golang.org/x/sync v0.11.0
2525
)
2626

go.sum

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
9696
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
9797
github.com/dlclark/regexp2 v1.11.4 h1:rPYF9/LECdNymJufQKmri9gV604RvvABwgOA8un7yAo=
9898
github.com/dlclark/regexp2 v1.11.4/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
99-
github.com/dynatrace/dynatrace-configuration-as-code-core v0.7.1-0.20250306093342-97cc482e553f h1:K9VZsTTg1nLm1cKolkEBAtS8jLouxRS2iysZxjvZi5Y=
100-
github.com/dynatrace/dynatrace-configuration-as-code-core v0.7.1-0.20250306093342-97cc482e553f/go.mod h1:kzQOH0pVd+I+2CXo+owRwAu78xC10GO35iC6FmXhhhw=
99+
github.com/dynatrace/dynatrace-configuration-as-code-core v0.8.1-0.20250514143234-94fb2ef0c525 h1:e6D3nNyX0yC5m8p5mU1iehCFkCmg8PKJS+XGsm3sT9A=
100+
github.com/dynatrace/dynatrace-configuration-as-code-core v0.8.1-0.20250514143234-94fb2ef0c525/go.mod h1:3cRc4TbyVxH62R7GwIvvOgOoOQ4R2EnZa6wWjOD7jCQ=
101101
github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=
102102
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
103103
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
@@ -446,8 +446,8 @@ go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4Jjx
446446
go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8=
447447
go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys=
448448
go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A=
449-
go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU=
450-
go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM=
449+
go.uber.org/mock v0.5.2 h1:LbtPTcP8A5k9WPXj54PPPbjcI4Y6lhyOZXn+VS7wNko=
450+
go.uber.org/mock v0.5.2/go.mod h1:wLlUxC2vVTPTaE3UD51E0BGOAElKrILxhVSDYQLld5o=
451451
golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
452452
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
453453
golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
@@ -539,8 +539,8 @@ golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4Iltr
539539
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
540540
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
541541
golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
542-
golang.org/x/oauth2 v0.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc=
543-
golang.org/x/oauth2 v0.28.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
542+
golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI=
543+
golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU=
544544
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
545545
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
546546
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=

0 commit comments

Comments
 (0)