Skip to content

Commit 992c978

Browse files
authored
Add operation ids to all create, update, and delete calls (#246)
* Add operation ids to all create, update, and delete calls * remove inactivated linter
1 parent 3d5e31c commit 992c978

File tree

8 files changed

+49
-23
lines changed

8 files changed

+49
-23
lines changed

.golangci.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ linters:
99
enable:
1010
- durationcheck
1111
- errcheck
12-
- exportloopref
1312
- forcetypeassert
1413
- godot
1514
- gofmt

internal/provider/apikey_resource.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"fmt"
6+
"github.com/google/uuid"
67
"github.com/hashicorp/terraform-plugin-framework/resource/schema/booldefault"
78
"time"
89

@@ -191,6 +192,7 @@ func (r *apiKeyResource) Create(ctx context.Context, req resource.CreateRequest,
191192
ExpiryTime: expiryTimestamp,
192193
Disabled: disabled,
193194
},
195+
AsyncOperationId: uuid.New().String(),
194196
})
195197

196198
if err != nil {
@@ -293,7 +295,8 @@ func (r *apiKeyResource) Update(ctx context.Context, req resource.UpdateRequest,
293295
ExpiryTime: expiryTimestamp,
294296
Disabled: disabled,
295297
},
296-
ResourceVersion: apiKey.GetApiKey().GetResourceVersion(),
298+
ResourceVersion: apiKey.GetApiKey().GetResourceVersion(),
299+
AsyncOperationId: uuid.New().String(),
297300
})
298301
if err != nil {
299302
resp.Diagnostics.AddError("Failed to update API key", err.Error())
@@ -345,8 +348,9 @@ func (r *apiKeyResource) Delete(ctx context.Context, req resource.DeleteRequest,
345348
defer cancel()
346349

347350
svcResp, err := r.client.CloudService().DeleteApiKey(ctx, &cloudservicev1.DeleteApiKeyRequest{
348-
KeyId: state.ID.ValueString(),
349-
ResourceVersion: apiKey.GetApiKey().GetResourceVersion(),
351+
KeyId: state.ID.ValueString(),
352+
ResourceVersion: apiKey.GetApiKey().GetResourceVersion(),
353+
AsyncOperationId: uuid.New().String(),
350354
})
351355
if err != nil {
352356
resp.Diagnostics.AddError("Failed to delete API key", err.Error())

internal/provider/metrics_endpoint_resource.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"encoding/base64"
66
"fmt"
7+
"github.com/google/uuid"
78

89
"github.com/hashicorp/terraform-plugin-framework-timeouts/resource/timeouts"
910
"github.com/hashicorp/terraform-plugin-framework/path"
@@ -138,6 +139,7 @@ func (r *metricsEndpointResource) Create(ctx context.Context, req resource.Creat
138139
AcceptedClientCa: certs,
139140
},
140141
},
142+
AsyncOperationId: uuid.New().String(),
141143
}
142144

143145
createCtx, cancel := context.WithTimeout(ctx, createTimeout)
@@ -219,6 +221,7 @@ func (r *metricsEndpointResource) Update(ctx context.Context, req resource.Updat
219221
AcceptedClientCa: certs,
220222
},
221223
},
224+
AsyncOperationId: uuid.New().String(),
222225
}
223226

224227
updateCtx, cancel := context.WithTimeout(ctx, updateTimeout)
@@ -270,6 +273,7 @@ func (r *metricsEndpointResource) Delete(ctx context.Context, req resource.Delet
270273
Spec: &accountv1.AccountSpec{
271274
Metrics: nil,
272275
},
276+
AsyncOperationId: uuid.New().String(),
273277
}
274278

275279
deleteCtx, cancel := context.WithTimeout(ctx, deleteTimeout)

internal/provider/namespace_resource.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"context"
2727
"encoding/base64"
2828
"fmt"
29+
"github.com/google/uuid"
2930
"time"
3031

3132
"github.com/hashicorp/terraform-plugin-framework-validators/listvalidator"
@@ -341,7 +342,8 @@ func (r *namespaceResource) Create(ctx context.Context, req resource.CreateReque
341342
}
342343

343344
svcResp, err := r.client.CloudService().CreateNamespace(ctx, &cloudservicev1.CreateNamespaceRequest{
344-
Spec: spec,
345+
Spec: spec,
346+
AsyncOperationId: uuid.New().String(),
345347
})
346348

347349
if err != nil {
@@ -468,9 +470,10 @@ func (r *namespaceResource) Update(ctx context.Context, req resource.UpdateReque
468470
}
469471

470472
svcResp, err := r.client.CloudService().UpdateNamespace(ctx, &cloudservicev1.UpdateNamespaceRequest{
471-
Namespace: plan.ID.ValueString(),
472-
Spec: spec,
473-
ResourceVersion: currentNs.GetNamespace().GetResourceVersion(),
473+
Namespace: plan.ID.ValueString(),
474+
Spec: spec,
475+
ResourceVersion: currentNs.GetNamespace().GetResourceVersion(),
476+
AsyncOperationId: uuid.New().String(),
474477
})
475478
if err != nil {
476479
resp.Diagnostics.AddError("Failed to update namespace", err.Error())
@@ -522,8 +525,9 @@ func (r *namespaceResource) Delete(ctx context.Context, req resource.DeleteReque
522525
ctx, cancel := context.WithTimeout(ctx, deleteTimeout)
523526
defer cancel()
524527
svcResp, err := r.client.CloudService().DeleteNamespace(ctx, &cloudservicev1.DeleteNamespaceRequest{
525-
Namespace: state.ID.ValueString(),
526-
ResourceVersion: currentNs.GetNamespace().GetResourceVersion(),
528+
Namespace: state.ID.ValueString(),
529+
ResourceVersion: currentNs.GetNamespace().GetResourceVersion(),
530+
AsyncOperationId: uuid.New().String(),
527531
})
528532
if err != nil {
529533
resp.Diagnostics.AddError("Failed to delete namespace", err.Error())

internal/provider/namespace_search_attribute_resource.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"fmt"
6+
"github.com/google/uuid"
67
"strings"
78

89
"github.com/hashicorp/terraform-plugin-framework/diag"
@@ -137,9 +138,10 @@ func (r *namespaceSearchAttributeResource) Create(ctx context.Context, req resou
137138

138139
spec.GetSearchAttributes()[plan.Name.ValueString()] = saType
139140
svcResp, err := r.client.CloudService().UpdateNamespace(ctx, &cloudservicev1.UpdateNamespaceRequest{
140-
Namespace: plan.NamespaceID.ValueString(),
141-
Spec: spec,
142-
ResourceVersion: ns.GetNamespace().GetResourceVersion(),
141+
Namespace: plan.NamespaceID.ValueString(),
142+
Spec: spec,
143+
ResourceVersion: ns.GetNamespace().GetResourceVersion(),
144+
AsyncOperationId: uuid.New().String(),
143145
})
144146
if err != nil {
145147
resp.Diagnostics.AddError("Failed to update namespace", err.Error())
@@ -244,9 +246,10 @@ func (r *namespaceSearchAttributeResource) Update(ctx context.Context, req resou
244246
// Assumption: a search attribute named plan.Name already exists
245247
spec.GetSearchAttributes()[plan.Name.ValueString()] = saType
246248
svcResp, err := r.client.CloudService().UpdateNamespace(ctx, &cloudservicev1.UpdateNamespaceRequest{
247-
Namespace: plan.NamespaceID.ValueString(),
248-
Spec: spec,
249-
ResourceVersion: ns.GetNamespace().GetResourceVersion(),
249+
Namespace: plan.NamespaceID.ValueString(),
250+
Spec: spec,
251+
ResourceVersion: ns.GetNamespace().GetResourceVersion(),
252+
AsyncOperationId: uuid.New().String(),
250253
})
251254
if err != nil {
252255
resp.Diagnostics.AddError("Failed to update namespace", err.Error())

internal/provider/nexus_endpoint_resource.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"fmt"
6+
"github.com/google/uuid"
67

78
"github.com/hashicorp/terraform-plugin-framework/attr"
89
"github.com/hashicorp/terraform-plugin-framework/diag"
@@ -173,6 +174,7 @@ func (r *nexusEndpointResource) Create(ctx context.Context, req resource.CreateR
173174
TargetSpec: targetSpec,
174175
PolicySpecs: policySpecs,
175176
},
177+
AsyncOperationId: uuid.New().String(),
176178
})
177179

178180
if err != nil {
@@ -267,7 +269,8 @@ func (r *nexusEndpointResource) Update(ctx context.Context, req resource.UpdateR
267269
TargetSpec: targetSpec,
268270
PolicySpecs: policySpecs,
269271
},
270-
ResourceVersion: nexusEndpoint.GetEndpoint().GetResourceVersion(),
272+
ResourceVersion: nexusEndpoint.GetEndpoint().GetResourceVersion(),
273+
AsyncOperationId: uuid.New().String(),
271274
})
272275
if err != nil {
273276
resp.Diagnostics.AddError("Failed to update Nexus endpoint", err.Error())
@@ -319,8 +322,9 @@ func (r *nexusEndpointResource) Delete(ctx context.Context, req resource.DeleteR
319322
defer cancel()
320323

321324
svcResp, err := r.client.CloudService().DeleteNexusEndpoint(ctx, &cloudservicev1.DeleteNexusEndpointRequest{
322-
EndpointId: state.ID.ValueString(),
323-
ResourceVersion: nexusEndpoint.GetEndpoint().GetResourceVersion(),
325+
EndpointId: state.ID.ValueString(),
326+
ResourceVersion: nexusEndpoint.GetEndpoint().GetResourceVersion(),
327+
AsyncOperationId: uuid.New().String(),
324328
})
325329
if err != nil {
326330
resp.Diagnostics.AddError("Failed to delete Nexus endpoint", err.Error())

internal/provider/service_account_resource.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"fmt"
6+
"github.com/google/uuid"
67
"github.com/hashicorp/terraform-plugin-framework-validators/setvalidator"
78

89
"github.com/hashicorp/terraform-plugin-framework-timeouts/resource/timeouts"
@@ -188,6 +189,7 @@ func (r *serviceAccountResource) Create(ctx context.Context, req resource.Create
188189
NamespaceAccesses: namespaceAccesses,
189190
},
190191
},
192+
AsyncOperationId: uuid.New().String(),
191193
})
192194
if err != nil {
193195
resp.Diagnostics.AddError("Failed to create Service Account", err.Error())
@@ -272,7 +274,8 @@ func (r *serviceAccountResource) Update(ctx context.Context, req resource.Update
272274
NamespaceAccesses: namespaceAccesses,
273275
},
274276
},
275-
ResourceVersion: currentServiceAccount.ServiceAccount.GetResourceVersion(),
277+
ResourceVersion: currentServiceAccount.ServiceAccount.GetResourceVersion(),
278+
AsyncOperationId: uuid.New().String(),
276279
})
277280
if err != nil {
278281
resp.Diagnostics.AddError("Failed to update Service Account", err.Error())
@@ -326,6 +329,7 @@ func (r *serviceAccountResource) Delete(ctx context.Context, req resource.Delete
326329
svcResp, err := r.client.CloudService().DeleteServiceAccount(ctx, &cloudservicev1.DeleteServiceAccountRequest{
327330
ServiceAccountId: state.ID.ValueString(),
328331
ResourceVersion: currentServiceAccount.ServiceAccount.GetResourceVersion(),
332+
AsyncOperationId: uuid.New().String(),
329333
})
330334
if err != nil {
331335
resp.Diagnostics.AddError("Failed to delete Service Account", err.Error())

internal/provider/user_resource.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"fmt"
6+
"github.com/google/uuid"
67
"github.com/hashicorp/terraform-plugin-framework-validators/setvalidator"
78
"github.com/temporalio/terraform-provider-temporalcloud/internal/validation"
89

@@ -188,6 +189,7 @@ func (r *userResource) Create(ctx context.Context, req resource.CreateRequest, r
188189
NamespaceAccesses: namespaceAccesses,
189190
},
190191
},
192+
AsyncOperationId: uuid.New().String(),
191193
})
192194

193195
if err != nil {
@@ -275,7 +277,8 @@ func (r *userResource) Update(ctx context.Context, req resource.UpdateRequest, r
275277
NamespaceAccesses: namespaceAccesses,
276278
},
277279
},
278-
ResourceVersion: currentUser.GetUser().GetResourceVersion(),
280+
ResourceVersion: currentUser.GetUser().GetResourceVersion(),
281+
AsyncOperationId: uuid.New().String(),
279282
})
280283
if err != nil {
281284
resp.Diagnostics.AddError("Failed to update user", err.Error())
@@ -328,8 +331,9 @@ func (r *userResource) Delete(ctx context.Context, req resource.DeleteRequest, r
328331
defer cancel()
329332

330333
svcResp, err := r.client.CloudService().DeleteUser(ctx, &cloudservicev1.DeleteUserRequest{
331-
UserId: state.ID.ValueString(),
332-
ResourceVersion: currentUser.GetUser().GetResourceVersion(),
334+
UserId: state.ID.ValueString(),
335+
ResourceVersion: currentUser.GetUser().GetResourceVersion(),
336+
AsyncOperationId: uuid.New().String(),
333337
})
334338
if err != nil {
335339
resp.Diagnostics.AddError("Failed to delete user", err.Error())

0 commit comments

Comments
 (0)