Skip to content

Commit 222aa17

Browse files
committed
fix: do not query snapshots before creating instance_image
1 parent dacf2a0 commit 222aa17

File tree

4 files changed

+401
-577
lines changed

4 files changed

+401
-577
lines changed

internal/services/instance/helpers_instance.go

-21
Original file line numberDiff line numberDiff line change
@@ -407,27 +407,6 @@ func (ph *privateNICsHandler) get(key string) (interface{}, error) {
407407
}, nil
408408
}
409409

410-
func getSnapshotsFromIDs(ctx context.Context, snapIDs []interface{}, api *BlockAndInstanceAPI) ([]*UnknownSnapshot, error) {
411-
snapResponses := []*UnknownSnapshot(nil)
412-
for _, snapID := range snapIDs {
413-
zone, id, err := zonal.ParseID(snapID.(string))
414-
if err != nil {
415-
return nil, err
416-
}
417-
418-
unknownSnapshot, err := api.GetUnknownSnapshot(&GetUnknownSnapshotRequest{
419-
Zone: zone,
420-
SnapshotID: id,
421-
}, scw.WithContext(ctx))
422-
if err != nil {
423-
return nil, fmt.Errorf("extra volumes : could not find snapshot with id %s: %w", snapID, err)
424-
}
425-
snapResponses = append(snapResponses, unknownSnapshot)
426-
}
427-
428-
return snapResponses, nil
429-
}
430-
431410
func formatImageLabel(imageUUID string) string {
432411
return strings.ReplaceAll(imageUUID, "-", "_")
433412
}

internal/services/instance/image.go

+3-10
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"github.com/scaleway/scaleway-sdk-go/scw"
1111
"github.com/scaleway/terraform-provider-scaleway/v2/internal/cdf"
1212
"github.com/scaleway/terraform-provider-scaleway/v2/internal/httperrors"
13+
"github.com/scaleway/terraform-provider-scaleway/v2/internal/locality"
1314
"github.com/scaleway/terraform-provider-scaleway/v2/internal/locality/zonal"
1415
"github.com/scaleway/terraform-provider-scaleway/v2/internal/services/account"
1516
"github.com/scaleway/terraform-provider-scaleway/v2/internal/transport"
@@ -192,11 +193,7 @@ func ResourceInstanceImageCreate(ctx context.Context, d *schema.ResourceData, m
192193

193194
extraVolumesIDs, volumesExist := d.GetOk("additional_volume_ids")
194195
if volumesExist {
195-
snapResponses, err := getSnapshotsFromIDs(ctx, extraVolumesIDs.([]interface{}), api)
196-
if err != nil {
197-
return diag.FromErr(err)
198-
}
199-
req.ExtraVolumes = expandImageExtraVolumesTemplates(snapResponses)
196+
req.ExtraVolumes = expandImageExtraVolumesTemplates(locality.ExpandIDs(extraVolumesIDs))
200197
}
201198
tags, tagsExist := d.GetOk("tags")
202199
if tagsExist {
@@ -292,11 +289,7 @@ func ResourceInstanceImageUpdate(ctx context.Context, d *schema.ResourceData, m
292289
}
293290

294291
if d.HasChange("additional_volume_ids") {
295-
snapResponses, err := getSnapshotsFromIDs(ctx, d.Get("additional_volume_ids").([]interface{}), api)
296-
if err != nil {
297-
return diag.FromErr(err)
298-
}
299-
req.ExtraVolumes = expandImageExtraVolumesUpdateTemplates(snapResponses)
292+
req.ExtraVolumes = expandImageExtraVolumesUpdateTemplates(locality.ExpandIDs(d.Get("additional_volume_ids")))
300293
} else {
301294
volTemplate := map[string]*instanceSDK.VolumeImageUpdateTemplate{}
302295
for key, vol := range image.Image.ExtraVolumes {

0 commit comments

Comments
 (0)