Skip to content

Commit 71e7155

Browse files
committed
refactor: Use bundle instead of SDK for Cloud API
1 parent 7c6f62d commit 71e7155

File tree

356 files changed

+26694
-37673
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

356 files changed

+26694
-37673
lines changed

docs/resources/server.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
---
23
subcategory: "Compute Engine"
34
layout: "ionoscloud"

go.mod

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ module github.com/ionos-cloud/terraform-provider-ionoscloud/v6
22

33
go 1.22.0
44

5+
replace github.com/ionos-cloud/sdk-go-bundle/products/cloud/v2 => ./../sdks/generated_locally/cloud-bundle
6+
57
require (
68
github.com/aws/aws-sdk-go v1.55.5
79
github.com/cenkalti/backoff/v4 v4.3.0
@@ -17,6 +19,7 @@ require (
1719
github.com/iancoleman/strcase v0.3.0
1820
github.com/ionos-cloud/sdk-go-api-gateway v1.0.0
1921
github.com/ionos-cloud/sdk-go-bundle/products/cdn/v2 v2.1.0
22+
github.com/ionos-cloud/sdk-go-bundle/products/cloud/v2 v2.0.0-00010101000000-000000000000
2023
github.com/ionos-cloud/sdk-go-bundle/products/logging/v2 v2.1.1
2124
github.com/ionos-cloud/sdk-go-bundle/products/monitoring/v2 v2.0.0
2225
github.com/ionos-cloud/sdk-go-bundle/products/vpn/v2 v2.0.2
@@ -34,7 +37,6 @@ require (
3437
github.com/ionos-cloud/sdk-go-object-storage v1.1.0
3538
github.com/ionos-cloud/sdk-go-object-storage-management v1.0.0
3639
github.com/ionos-cloud/sdk-go-vm-autoscaling v1.0.1
37-
github.com/ionos-cloud/sdk-go/v6 v6.3.2
3840
github.com/mitchellh/go-homedir v1.1.0
3941
golang.org/x/crypto v0.26.0
4042
gopkg.in/yaml.v3 v3.0.1

go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,6 @@ github.com/ionos-cloud/sdk-go-object-storage-management v1.0.0 h1:pHRKSNT+cCcr5g
150150
github.com/ionos-cloud/sdk-go-object-storage-management v1.0.0/go.mod h1:BnEapZcQp6FEirEin6pY9NICXD1mCrI4sJ+wOSKpyCY=
151151
github.com/ionos-cloud/sdk-go-vm-autoscaling v1.0.1 h1:KABL25MC7DrIHn9lQzKSPkwXhqvRkPYtFd+1HEogmAE=
152152
github.com/ionos-cloud/sdk-go-vm-autoscaling v1.0.1/go.mod h1:Q5d1R6silarsX5jWLPBHd/1PSC5zZNf2ONvXB+fygC0=
153-
github.com/ionos-cloud/sdk-go/v6 v6.3.2 h1:2mUmrZZz6cPyT9IRX0T8fBLc/7XU/eTxP2Y5tS7/09k=
154-
github.com/ionos-cloud/sdk-go/v6 v6.3.2/go.mod h1:SXrO9OGyWjd2rZhAhEpdYN6VUAODzzqRdqA9BCviQtI=
155153
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
156154
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
157155
github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c=

internal/framework/provider/provider.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ import (
1717
"github.com/hashicorp/terraform-plugin-framework/types"
1818
"github.com/hashicorp/terraform-plugin-sdk/v2/meta"
1919

20-
ionoscloud "github.com/ionos-cloud/sdk-go/v6"
20+
ionoscloud "github.com/ionos-cloud/sdk-go-bundle/products/cloud/v2"
21+
"github.com/ionos-cloud/sdk-go-bundle/shared"
2122

2223
"github.com/ionos-cloud/terraform-provider-ionoscloud/v6/internal/framework/services/monitoring"
2324
"github.com/ionos-cloud/terraform-provider-ionoscloud/v6/internal/framework/services/objectstorage"
@@ -241,18 +242,16 @@ func (p *IonosCloudProvider) Configure(ctx context.Context, req provider.Configu
241242
}
242243

243244
func newCloudapiClient(username, password, token, endpoint, version, terraformVersion string, insecure bool) *ionoscloud.APIClient {
244-
newConfig := ionoscloud.NewConfiguration(username, password, token, endpoint)
245+
newConfig := shared.NewConfiguration(username, password, token, endpoint)
245246
newConfig.UserAgent = fmt.Sprintf(
246247
"terraform-provider/%s_ionos-cloud-sdk-go/%s_hashicorp-terraform/%s_terraform-plugin-sdk/%s_os/%s_arch/%s",
247248
version, ionoscloud.Version, terraformVersion, meta.SDKVersionString(), runtime.GOOS, runtime.GOARCH, //nolint:staticcheck
248249
)
249-
if os.Getenv(constant.IonosDebug) != "" {
250-
newConfig.Debug = true
251-
}
252250
newConfig.MaxRetries = constant.MaxRetries
253251
newConfig.WaitTime = constant.MaxWaitTime
254-
newConfig.HTTPClient = &http.Client{Transport: utils.CreateTransport(insecure)}
255252
client := ionoscloud.NewAPIClient(newConfig)
253+
client.GetConfig().HTTPClient = &http.Client{Transport: utils.CreateTransport(insecure)}
254+
256255
return client
257256
}
258257

ionoscloud/config.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import (
66
"runtime"
77

88
"github.com/hashicorp/terraform-plugin-sdk/v2/meta"
9-
ionoscloud "github.com/ionos-cloud/sdk-go/v6"
9+
ionoscloud "github.com/ionos-cloud/sdk-go-bundle/products/cloud/v2"
10+
"github.com/ionos-cloud/sdk-go-bundle/shared"
1011
)
1112

1213
// Config represents
@@ -22,9 +23,9 @@ type Config struct {
2223
func (c *Config) Client(terraformVersion string) (*ionoscloud.APIClient, error) {
2324
var client *ionoscloud.APIClient
2425
if c.Token != "" {
25-
client = ionoscloud.NewAPIClient(ionoscloud.NewConfiguration("", "", c.Token, c.Endpoint))
26+
client = ionoscloud.NewAPIClient(shared.NewConfiguration("", "", c.Token, c.Endpoint))
2627
} else {
27-
client = ionoscloud.NewAPIClient(ionoscloud.NewConfiguration(c.Username, c.Password, "", c.Endpoint))
28+
client = ionoscloud.NewAPIClient(shared.NewConfiguration(c.Username, c.Password, "", c.Endpoint))
2829
}
2930

3031
client.GetConfig().UserAgent = fmt.Sprintf(

ionoscloud/data_source_application_loadbalancer.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ import (
77
"log"
88
"strings"
99

10+
"github.com/ionos-cloud/sdk-go-bundle/shared"
1011
"github.com/ionos-cloud/terraform-provider-ionoscloud/v6/services"
1112
cloudapiflowlog "github.com/ionos-cloud/terraform-provider-ionoscloud/v6/services/cloudapi/flowlog"
1213

1314
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1415
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
15-
ionoscloud "github.com/ionos-cloud/sdk-go/v6"
16+
ionoscloud "github.com/ionos-cloud/sdk-go-bundle/products/cloud/v2"
1617
)
1718

1819
func dataSourceApplicationLoadBalancer() *schema.Resource {
@@ -110,7 +111,7 @@ func dataSourceApplicationLoadBalancerRead(ctx context.Context, d *schema.Resour
110111

111112
var applicationLoadBalancer ionoscloud.ApplicationLoadBalancer
112113
var err error
113-
var apiResponse *ionoscloud.APIResponse
114+
var apiResponse *shared.APIResponse
114115

115116
if idOk {
116117
/* search by ID */
@@ -136,7 +137,7 @@ func dataSourceApplicationLoadBalancerRead(ctx context.Context, d *schema.Resour
136137
return diag.FromErr(fmt.Errorf("an error occurred while fetching application load balancers: %w", err))
137138
}
138139

139-
results = *applicationLoadBalancers.Items
140+
results = applicationLoadBalancers.Items
140141
} else {
141142
applicationLoadBalancers, apiResponse, err := client.ApplicationLoadBalancersApi.DatacentersApplicationloadbalancersGet(ctx, datacenterId).Depth(1).Execute()
142143
logApiRequestTime(apiResponse)
@@ -146,8 +147,8 @@ func dataSourceApplicationLoadBalancerRead(ctx context.Context, d *schema.Resour
146147
}
147148

148149
if applicationLoadBalancers.Items != nil {
149-
for _, alb := range *applicationLoadBalancers.Items {
150-
if alb.Properties != nil && alb.Properties.Name != nil && strings.EqualFold(*alb.Properties.Name, name) {
150+
for _, alb := range applicationLoadBalancers.Items {
151+
if strings.EqualFold(alb.Properties.Name, name) {
151152
tmpAlb, apiResponse, err := client.ApplicationLoadBalancersApi.DatacentersApplicationloadbalancersFindByApplicationLoadBalancerId(ctx, datacenterId, *alb.Id).Execute()
152153
logApiRequestTime(apiResponse)
153154
if err != nil {

ionoscloud/data_source_application_loadbalancer_forwardingrule.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ import (
77
"log"
88
"strings"
99

10+
"github.com/ionos-cloud/sdk-go-bundle/shared"
1011
"github.com/ionos-cloud/terraform-provider-ionoscloud/v6/services"
1112

1213
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1314
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1415
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
15-
ionoscloud "github.com/ionos-cloud/sdk-go/v6"
16+
ionoscloud "github.com/ionos-cloud/sdk-go-bundle/products/cloud/v2"
1617
)
1718

1819
func dataSourceApplicationLoadBalancerForwardingRule() *schema.Resource {
@@ -183,7 +184,7 @@ func dataSourceApplicationLoadBalancerForwardingRuleRead(ctx context.Context, d
183184

184185
var applicationLoadBalancerForwardingRule ionoscloud.ApplicationLoadBalancerForwardingRule
185186
var err error
186-
var apiResponse *ionoscloud.APIResponse
187+
var apiResponse *shared.APIResponse
187188

188189
if idOk {
189190
/* search by ID */
@@ -209,7 +210,7 @@ func dataSourceApplicationLoadBalancerForwardingRuleRead(ctx context.Context, d
209210
return diag.FromErr(fmt.Errorf("an error occurred while fetching application loadbalancer forwarding rules: %w", err))
210211
}
211212

212-
results = *applicationLoadBalancersForwardingRules.Items
213+
results = applicationLoadBalancersForwardingRules.Items
213214
} else {
214215
applicationLoadBalancersForwardingRules, apiResponse, err := client.ApplicationLoadBalancersApi.DatacentersApplicationloadbalancersForwardingrulesGet(ctx, datacenterId, albId).Depth(1).Execute()
215216
logApiRequestTime(apiResponse)
@@ -219,8 +220,8 @@ func dataSourceApplicationLoadBalancerForwardingRuleRead(ctx context.Context, d
219220
}
220221

221222
if applicationLoadBalancersForwardingRules.Items != nil {
222-
for _, albFr := range *applicationLoadBalancersForwardingRules.Items {
223-
if albFr.Properties != nil && albFr.Properties.Name != nil && strings.EqualFold(*albFr.Properties.Name, name) {
223+
for _, albFr := range applicationLoadBalancersForwardingRules.Items {
224+
if strings.EqualFold(albFr.Properties.Name, name) {
224225
tmpAlbFr, apiResponse, err := client.ApplicationLoadBalancersApi.DatacentersApplicationloadbalancersForwardingrulesFindByForwardingRuleId(ctx, datacenterId, albId, *albFr.Id).Execute()
225226
logApiRequestTime(apiResponse)
226227
if err != nil {

ionoscloud/data_source_backup_unit.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ import (
55
"fmt"
66
"log"
77

8+
"github.com/ionos-cloud/sdk-go-bundle/shared"
89
"github.com/ionos-cloud/terraform-provider-ionoscloud/v6/services"
910

1011
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1112
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
12-
ionoscloud "github.com/ionos-cloud/sdk-go/v6"
13+
ionoscloud "github.com/ionos-cloud/sdk-go-bundle/products/cloud/v2"
1314
)
1415

1516
func dataSourceBackupUnit() *schema.Resource {
@@ -57,7 +58,7 @@ func dataSourceBackupUnitRead(ctx context.Context, d *schema.ResourceData, meta
5758
}
5859
var backupUnit ionoscloud.BackupUnit
5960
var err error
60-
var apiResponse *ionoscloud.APIResponse
61+
var apiResponse *shared.APIResponse
6162

6263
if idOk {
6364
/* search by ID */
@@ -66,9 +67,7 @@ func dataSourceBackupUnitRead(ctx context.Context, d *schema.ResourceData, meta
6667
if err != nil {
6768
return diag.FromErr(fmt.Errorf("an error occurred while fetching the backup unit %s: %w", id.(string), err))
6869
}
69-
if backupUnit.Properties != nil {
70-
log.Printf("[INFO] Got backupUnit [Name=%s] [Id=%s]", *backupUnit.Properties.Name, *backupUnit.Id)
71-
}
70+
log.Printf("[INFO] Got backupUnit [Name=%s] [Id=%s]", backupUnit.Properties.Name, *backupUnit.Id)
7271
} else {
7372
/* search by name */
7473
var backupUnits ionoscloud.BackupUnits
@@ -82,8 +81,8 @@ func dataSourceBackupUnitRead(ctx context.Context, d *schema.ResourceData, meta
8281

8382
var results []ionoscloud.BackupUnit
8483
if backupUnits.Items != nil {
85-
for _, bu := range *backupUnits.Items {
86-
if bu.Properties != nil && bu.Properties.Name != nil && *bu.Properties.Name == name.(string) {
84+
for _, bu := range backupUnits.Items {
85+
if bu.Properties.Name == name.(string) {
8786
tmpBackupUnit, apiResponse, err := BackupUnitFindByID(ctx, *bu.Id, client)
8887
logApiRequestTime(apiResponse)
8988
if err != nil {

0 commit comments

Comments
 (0)