Skip to content

Commit 9dd94f6

Browse files
Merge branch 'master' into feat/move_psql_to_bundle
2 parents 5574944 + 6ca4426 commit 9dd94f6

File tree

3 files changed

+28
-15
lines changed

3 files changed

+28
-15
lines changed

CHANGELOG.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,20 @@
1+
## 6.7.1
2+
### Refactor
3+
- Move postgresql to sdk-go-bundle.
4+
15
## 6.7.0
26
### Fixes
37
- Fix [#735](https://github.com/ionos-cloud/terraform-provider-ionoscloud/issues/735) by reading all values for `api_subnet_allow_list`, not only non-nill values.
8+
- Fix [#748](https://github.com/ionos-cloud/terraform-provider-ionoscloud/issues/748) by removing unecessary error check
9+
- S3 key creation fails with 422 if s3 key not found. Add function to check for that specific response from the API.
410
### Features
511
- Add new read-only attribute: `ipv4_cidr_block` to `ionoscloud_lan` resource and data source.
6-
- Make `volume` optional for `ionoscloud_server` resource
12+
- Make `volume` optional for `ionoscloud_server` resource.
713
- `name` attribute for `ionoscloud_auto_certificate` resource is now required.
814
- Move postgresql to sdk-go-bundle.
15+
- Add `allow_replace` field to `ionoscloud_pg_cluster` resource.
16+
### Docs
17+
- Changed dead link in MongoDB cluster docs.
918

1019
## 6.6.9
1120
### Features
@@ -1025,9 +1034,3 @@ FEATURES:
10251034
https://nfs.us-las.ionos.com (Las Vegas, USA)
10261035
https://nfs.us-ewr.ionos.com (Newark, USA)
10271036
https://nfs.us-mci.ionos.com (Lenexa, USA)
1028-
1029-
### Fixes:
1030-
- Changed Dead link in MongoDB cluster docs
1031-
1032-
### Features:
1033-
- Add `allow_replace` field to `ionoscloud_pg_cluster` resource.

ionoscloud/resource_s3_key.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package ionoscloud
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"log"
78
"strings"
@@ -102,7 +103,7 @@ func resourceS3KeyRead(ctx context.Context, d *schema.ResourceData, meta interfa
102103
logApiRequestTime(apiResponse)
103104

104105
if err != nil {
105-
if httpNotFound(apiResponse) {
106+
if httpNotFound(apiResponse) || isS3KeyNotFound(err) {
106107
d.SetId("")
107108
return nil
108109
}
@@ -141,7 +142,7 @@ func resourceS3KeyUpdate(ctx context.Context, d *schema.ResourceData, meta inter
141142
logApiRequestTime(apiResponse)
142143

143144
if err != nil {
144-
if httpNotFound(apiResponse) {
145+
if httpNotFound(apiResponse) || isS3KeyNotFound(err) {
145146
d.SetId("")
146147
return nil
147148
}
@@ -164,7 +165,7 @@ func resourceS3KeyDelete(ctx context.Context, d *schema.ResourceData, meta inter
164165
logApiRequestTime(apiResponse)
165166

166167
if err != nil {
167-
if httpNotFound(apiResponse) {
168+
if httpNotFound(apiResponse) || isS3KeyNotFound(err) {
168169
d.SetId("")
169170
return nil
170171
}
@@ -178,6 +179,10 @@ func resourceS3KeyDelete(ctx context.Context, d *schema.ResourceData, meta inter
178179
s3KeyDeleted, dsErr := s3KeyDeleted(ctx, client, d)
179180

180181
if dsErr != nil {
182+
if isS3KeyNotFound(dsErr) {
183+
log.Printf("[INFO] Successfully deleted Object Storage key: %s", d.Id())
184+
return nil
185+
}
181186
diags := diag.FromErr(fmt.Errorf("error while checking deletion status of Object Storage key %s: %w", d.Id(), dsErr))
182187
return diags
183188
}
@@ -200,6 +205,15 @@ func resourceS3KeyDelete(ctx context.Context, d *schema.ResourceData, meta inter
200205
return nil
201206
}
202207

208+
// isS3KeyNotFound needed because api returns 422 instead of 404 on key being not found. will be removed once API issue is fixed
209+
func isS3KeyNotFound(err error) bool {
210+
var genericOpenAPIError ionoscloud.GenericOpenAPIError
211+
if !errors.As(err, &genericOpenAPIError) {
212+
return false
213+
}
214+
return genericOpenAPIError.StatusCode() == 422 && strings.Contains(genericOpenAPIError.Error(), "[VDC-21-2] The access key cannot be found, please double-check the key id and try again.")
215+
}
216+
203217
func s3KeyDeleted(ctx context.Context, client *ionoscloud.APIClient, d *schema.ResourceData) (bool, error) {
204218
userId := d.Get("user_id").(string)
205219
_, apiResponse, err := client.UserS3KeysApi.UmUsersS3keysFindByKeyId(ctx, userId, d.Id()).Execute()
@@ -242,7 +256,7 @@ func resourceS3KeyImport(ctx context.Context, d *schema.ResourceData, meta inter
242256
logApiRequestTime(apiResponse)
243257

244258
if err != nil {
245-
if httpNotFound(apiResponse) {
259+
if httpNotFound(apiResponse) || isS3KeyNotFound(err) {
246260
d.SetId("")
247261
return nil, fmt.Errorf("unable to find Object Storage key %q", keyId)
248262
}

ionoscloud/resource_user.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,6 @@ func resourceUserRead(ctx context.Context, d *schema.ResourceData, meta interfac
179179
return diag.FromErr(err)
180180
}
181181

182-
if err = d.Set("group_ids", getUserGroups(&user)); err != nil {
183-
return diag.FromErr(err)
184-
}
185-
186182
return nil
187183
}
188184

0 commit comments

Comments
 (0)