Skip to content

Commit c64e6ce

Browse files
authored
chore(rabbitmq): switch to new SDK structure (#1374)
* chore(rabbitmq): use new multi API version support SDK * remove tls from instance parameters * Revert "remove tls from instance parameters" This reverts commit 4d74c6a.
1 parent 9b7af99 commit c64e6ce

File tree

12 files changed

+216
-223
lines changed

12 files changed

+216
-223
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ require (
3030
github.com/stackitcloud/stackit-sdk-go/services/observability v0.17.0
3131
github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.26.1
3232
github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.5
33-
github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.26.0
33+
github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.29.0
3434
github.com/stackitcloud/stackit-sdk-go/services/redis v0.27.3
3535
github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.20.0
3636
github.com/stackitcloud/stackit-sdk-go/services/scf v0.6.1

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -708,6 +708,10 @@ github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.5 h1:H67e3KnHQ
708708
github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.5/go.mod h1:xmAWk9eom8wznvLuLfm0F4xyeiBX8LaggXsKFmos+dw=
709709
github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.26.0 h1:/8lmviszgrB+0Cz7HdhFELyTiTeqIs7LfnI6sNX4rW8=
710710
github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.26.0/go.mod h1:hnhvlLX1Y71R8KIQqLBeoSZqkU5ZJOG0J4wz0LeUdaw=
711+
github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.29.0 h1:I8NF8Q5nRj7/7qDI8Qm4oI0KCNQcOjE6kqyBdWcUoxk=
712+
github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.29.0/go.mod h1:wk2Oz+7pxT9YF1h6elWzdlhU6V7GSQXcGixxlXxNe+U=
713+
github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.6 h1:CXM9cZ9WeTyJd+Aw/hnJnDsKRVAQi4qgtd0RJ3zoPwo=
714+
github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.6/go.mod h1:KJNceOHRefjku1oVBoHG7idCS/SeW42WJ+55bN3AxrQ=
711715
github.com/stackitcloud/stackit-sdk-go/services/redis v0.27.3 h1:wZIGETPQ1aiJwzJMVjatdu/Kv+/yuKVOf5RaMWW9bpU=
712716
github.com/stackitcloud/stackit-sdk-go/services/redis v0.27.3/go.mod h1:jgWx29zvZP0R3tXAC/qWU5eBsPfLBJFP96mx9hwdFPM=
713717
github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.20.0 h1:bT/qoghsdKvLomCay9Wj4Fu63lx0cD2zr23Fjqzgotc=

stackit/internal/services/rabbitmq/credential/datasource.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import (
1818

1919
"github.com/hashicorp/terraform-plugin-framework/datasource/schema"
2020
"github.com/hashicorp/terraform-plugin-framework/types"
21-
"github.com/stackitcloud/stackit-sdk-go/services/rabbitmq"
21+
rabbitmq "github.com/stackitcloud/stackit-sdk-go/services/rabbitmq/v1api"
2222
)
2323

2424
// Ensure the implementation satisfies the expected interfaces.
@@ -118,7 +118,7 @@ func (r *credentialDataSource) Schema(_ context.Context, _ datasource.SchemaRequ
118118
Computed: true,
119119
Sensitive: true,
120120
},
121-
"port": schema.Int64Attribute{
121+
"port": schema.Int32Attribute{
122122
Computed: true,
123123
},
124124
"uri": schema.StringAttribute{
@@ -154,7 +154,7 @@ func (r *credentialDataSource) Read(ctx context.Context, req datasource.ReadRequ
154154
ctx = tflog.SetField(ctx, "instance_id", instanceId)
155155
ctx = tflog.SetField(ctx, "credential_id", credentialId)
156156

157-
recordSetResp, err := r.client.GetCredentials(ctx, projectId, instanceId, credentialId).Execute()
157+
recordSetResp, err := r.client.DefaultAPI.GetCredentials(ctx, projectId, instanceId, credentialId).Execute()
158158
if err != nil {
159159
utils.LogError(
160160
ctx,

stackit/internal/services/rabbitmq/credential/resource.go

Lines changed: 45 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ import (
2222
"github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier"
2323
"github.com/hashicorp/terraform-plugin-framework/types"
2424
"github.com/stackitcloud/stackit-sdk-go/core/oapierror"
25-
"github.com/stackitcloud/stackit-sdk-go/services/rabbitmq"
26-
"github.com/stackitcloud/stackit-sdk-go/services/rabbitmq/wait"
25+
rabbitmq "github.com/stackitcloud/stackit-sdk-go/services/rabbitmq/v1api"
26+
"github.com/stackitcloud/stackit-sdk-go/services/rabbitmq/v1api/wait"
2727
)
2828

2929
// Ensure the implementation satisfies the expected interfaces.
@@ -44,7 +44,7 @@ type Model struct {
4444
HttpAPIURIs types.List `tfsdk:"http_api_uris"`
4545
Management types.String `tfsdk:"management"`
4646
Password types.String `tfsdk:"password"`
47-
Port types.Int64 `tfsdk:"port"`
47+
Port types.Int32 `tfsdk:"port"`
4848
Uri types.String `tfsdk:"uri"`
4949
Uris types.List `tfsdk:"uris"`
5050
Username types.String `tfsdk:"username"`
@@ -156,7 +156,7 @@ func (r *credentialResource) Schema(_ context.Context, _ resource.SchemaRequest,
156156
Computed: true,
157157
Sensitive: true,
158158
},
159-
"port": schema.Int64Attribute{
159+
"port": schema.Int32Attribute{
160160
Computed: true,
161161
},
162162
"uri": schema.StringAttribute{
@@ -191,19 +191,19 @@ func (r *credentialResource) Create(ctx context.Context, req resource.CreateRequ
191191
ctx = tflog.SetField(ctx, "instance_id", instanceId)
192192

193193
// Create new recordset
194-
credentialsResp, err := r.client.CreateCredentials(ctx, projectId, instanceId).Execute()
194+
credentialsResp, err := r.client.DefaultAPI.CreateCredentials(ctx, projectId, instanceId).Execute()
195195
if err != nil {
196196
core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating credential", fmt.Sprintf("Calling API: %v", err))
197197
return
198198
}
199199

200200
ctx = core.LogResponse(ctx)
201201

202-
if credentialsResp.Id == nil {
202+
if credentialsResp.Id == "" {
203203
core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating credential", "Got empty credential id")
204204
return
205205
}
206-
credentialId := *credentialsResp.Id
206+
credentialId := credentialsResp.Id
207207
ctx = utils.SetAndLogStateFields(ctx, &resp.Diagnostics, &resp.State, map[string]any{
208208
"project_id": projectId,
209209
"instance_id": instanceId,
@@ -213,7 +213,7 @@ func (r *credentialResource) Create(ctx context.Context, req resource.CreateRequ
213213
return
214214
}
215215

216-
waitResp, err := wait.CreateCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialId).WaitWithContext(ctx)
216+
waitResp, err := wait.CreateCredentialsWaitHandler(ctx, r.client.DefaultAPI, projectId, instanceId, credentialId).WaitWithContext(ctx)
217217
if err != nil {
218218
core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating credential", fmt.Sprintf("Instance creation waiting: %v", err))
219219
return
@@ -251,7 +251,7 @@ func (r *credentialResource) Read(ctx context.Context, req resource.ReadRequest,
251251
ctx = tflog.SetField(ctx, "instance_id", instanceId)
252252
ctx = tflog.SetField(ctx, "credential_id", credentialId)
253253

254-
recordSetResp, err := r.client.GetCredentials(ctx, projectId, instanceId, credentialId).Execute()
254+
recordSetResp, err := r.client.DefaultAPI.GetCredentials(ctx, projectId, instanceId, credentialId).Execute()
255255
if err != nil {
256256
oapiErr, ok := err.(*oapierror.GenericOpenAPIError) //nolint:errorlint //complaining that error.As should be used to catch wrapped errors, but this error should not be wrapped
257257
if ok && oapiErr.StatusCode == http.StatusNotFound {
@@ -305,14 +305,14 @@ func (r *credentialResource) Delete(ctx context.Context, req resource.DeleteRequ
305305
ctx = tflog.SetField(ctx, "credential_id", credentialId)
306306

307307
// Delete existing record set
308-
err := r.client.DeleteCredentials(ctx, projectId, instanceId, credentialId).Execute()
308+
err := r.client.DefaultAPI.DeleteCredentials(ctx, projectId, instanceId, credentialId).Execute()
309309
if err != nil {
310310
core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting credential", fmt.Sprintf("Calling API: %v", err))
311311
}
312312

313313
ctx = core.LogResponse(ctx)
314314

315-
_, err = wait.DeleteCredentialsWaitHandler(ctx, r.client, projectId, instanceId, credentialId).WaitWithContext(ctx)
315+
_, err = wait.DeleteCredentialsWaitHandler(ctx, r.client.DefaultAPI, projectId, instanceId, credentialId).WaitWithContext(ctx)
316316
if err != nil {
317317
core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting credential", fmt.Sprintf("Instance deletion waiting: %v", err))
318318
return
@@ -358,8 +358,8 @@ func mapFields(ctx context.Context, credentialsResp *rabbitmq.CredentialsRespons
358358
var credentialId string
359359
if model.CredentialId.ValueString() != "" {
360360
credentialId = model.CredentialId.ValueString()
361-
} else if credentialsResp.Id != nil {
362-
credentialId = *credentialsResp.Id
361+
} else if credentialsResp.Id != "" {
362+
credentialId = credentialsResp.Id
363363
} else {
364364
return fmt.Errorf("credentials id not present")
365365
}
@@ -385,51 +385,50 @@ func mapFields(ctx context.Context, credentialsResp *rabbitmq.CredentialsRespons
385385
model.Hosts = types.ListNull(types.StringType)
386386
model.Uris = types.ListNull(types.StringType)
387387
model.HttpAPIURIs = types.ListNull(types.StringType)
388-
if credentials != nil {
389-
if credentials.Hosts != nil {
390-
respHosts := *credentials.Hosts
391-
reconciledHosts := utils.ReconcileStringSlices(modelHosts, respHosts)
388+
if credentials.Hosts != nil {
389+
respHosts := credentials.Hosts
390+
reconciledHosts := utils.ReconcileStringSlices(modelHosts, respHosts)
392391

393-
hostsTF, diags := types.ListValueFrom(ctx, types.StringType, reconciledHosts)
394-
if diags.HasError() {
395-
return fmt.Errorf("failed to map hosts: %w", core.DiagsToError(diags))
396-
}
397-
398-
model.Hosts = hostsTF
392+
hostsTF, diags := types.ListValueFrom(ctx, types.StringType, reconciledHosts)
393+
if diags.HasError() {
394+
return fmt.Errorf("failed to map hosts: %w", core.DiagsToError(diags))
399395
}
400-
model.Host = types.StringPointerValue(credentials.Host)
401-
if credentials.HttpApiUris != nil {
402-
respHttpApiUris := *credentials.HttpApiUris
403396

404-
reconciledHttpApiUris := utils.ReconcileStringSlices(modelHttpApiUris, respHttpApiUris)
397+
model.Hosts = hostsTF
398+
}
399+
model.Host = types.StringValue(credentials.Host)
400+
if credentials.HttpApiUris != nil {
401+
respHttpApiUris := credentials.HttpApiUris
405402

406-
httpApiUrisTF, diags := types.ListValueFrom(ctx, types.StringType, reconciledHttpApiUris)
407-
if diags.HasError() {
408-
return fmt.Errorf("failed to map httpApiUris: %w", core.DiagsToError(diags))
409-
}
403+
reconciledHttpApiUris := utils.ReconcileStringSlices(modelHttpApiUris, respHttpApiUris)
410404

411-
model.HttpAPIURIs = httpApiUrisTF
405+
httpApiUrisTF, diags := types.ListValueFrom(ctx, types.StringType, reconciledHttpApiUris)
406+
if diags.HasError() {
407+
return fmt.Errorf("failed to map httpApiUris: %w", core.DiagsToError(diags))
412408
}
413409

414-
if credentials.Uris != nil {
415-
respUris := *credentials.Uris
410+
model.HttpAPIURIs = httpApiUrisTF
411+
}
416412

417-
reconciledUris := utils.ReconcileStringSlices(modelUris, respUris)
413+
if credentials.Uris != nil {
414+
respUris := credentials.Uris
418415

419-
urisTF, diags := types.ListValueFrom(ctx, types.StringType, reconciledUris)
420-
if diags.HasError() {
421-
return fmt.Errorf("failed to map uris: %w", core.DiagsToError(diags))
422-
}
416+
reconciledUris := utils.ReconcileStringSlices(modelUris, respUris)
423417

424-
model.Uris = urisTF
418+
urisTF, diags := types.ListValueFrom(ctx, types.StringType, reconciledUris)
419+
if diags.HasError() {
420+
return fmt.Errorf("failed to map uris: %w", core.DiagsToError(diags))
425421
}
426422

427-
model.HttpAPIURI = types.StringPointerValue(credentials.HttpApiUri)
428-
model.Management = types.StringPointerValue(credentials.Management)
429-
model.Password = types.StringPointerValue(credentials.Password)
430-
model.Port = types.Int64PointerValue(credentials.Port)
431-
model.Uri = types.StringPointerValue(credentials.Uri)
432-
model.Username = types.StringPointerValue(credentials.Username)
423+
model.Uris = urisTF
433424
}
425+
426+
model.HttpAPIURI = types.StringPointerValue(credentials.HttpApiUri)
427+
model.Management = types.StringPointerValue(credentials.Management)
428+
model.Password = types.StringValue(credentials.Password)
429+
model.Port = types.Int32PointerValue(credentials.Port)
430+
model.Uri = types.StringPointerValue(credentials.Uri)
431+
model.Username = types.StringValue(credentials.Username)
432+
434433
return nil
435434
}

0 commit comments

Comments
 (0)