diff --git a/builder/scaleway/builder_acc_test.go b/builder/scaleway/builder_acc_test.go index 94e4db0..e9b1f3c 100644 --- a/builder/scaleway/builder_acc_test.go +++ b/builder/scaleway/builder_acc_test.go @@ -39,7 +39,7 @@ func testAccPreCheck(t *testing.T) bool { const testBuilderAccBasic = ` source "scaleway" "basic" { - commercial_type = "DEV1-S" + commercial_type = "PRO2-XXS" image = "ubuntu_focal" image_name = "Acceptance test" ssh_username = "root" diff --git a/builder/scaleway/step_create_server.go b/builder/scaleway/step_create_server.go index d8169f6..eba875b 100644 --- a/builder/scaleway/step_create_server.go +++ b/builder/scaleway/step_create_server.go @@ -43,6 +43,7 @@ func (s *stepCreateServer) Run(ctx context.Context, state multistep.StateBag) mu Name: c.ServerName, Image: c.Image, Tags: tags, + Zone: scw.Zone(c.Zone), } if c.ImageSizeInGB != 0 { diff --git a/builder/scaleway/step_remove_volume.go b/builder/scaleway/step_remove_volume.go index 7f2f399..a45d776 100644 --- a/builder/scaleway/step_remove_volume.go +++ b/builder/scaleway/step_remove_volume.go @@ -37,6 +37,7 @@ func (s *stepRemoveVolume) Cleanup(state multistep.StateBag) { err := instanceAPI.DeleteVolume(&instance.DeleteVolumeRequest{ VolumeID: volumeID, + Zone: scw.Zone(c.Zone), }) if err != nil { err := fmt.Errorf("error removing volume: %s", err) diff --git a/builder/scaleway/step_server_info.go b/builder/scaleway/step_server_info.go index 123b654..467fad5 100644 --- a/builder/scaleway/step_server_info.go +++ b/builder/scaleway/step_server_info.go @@ -14,6 +14,7 @@ type stepServerInfo struct{} func (s *stepServerInfo) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction { instanceAPI := instance.NewAPI(state.Get("client").(*scw.Client)) + c := state.Get("config").(*Config) ui := state.Get("ui").(packersdk.Ui) serverID := state.Get("server_id").(string) @@ -21,6 +22,7 @@ func (s *stepServerInfo) Run(ctx context.Context, state multistep.StateBag) mult instanceResp, err := instanceAPI.WaitForServer(&instance.WaitForServerRequest{ ServerID: serverID, + Zone: scw.Zone(c.Zone), }, scw.WithContext(ctx)) if err != nil { err := fmt.Errorf("error waiting for server to become booted: %s", err) diff --git a/builder/scaleway/step_shutdown.go b/builder/scaleway/step_shutdown.go index bfa3a72..7952e8d 100644 --- a/builder/scaleway/step_shutdown.go +++ b/builder/scaleway/step_shutdown.go @@ -23,6 +23,7 @@ func (s *stepShutdown) Run(ctx context.Context, state multistep.StateBag) multis _, err := instanceAPI.ServerAction(&instance.ServerActionRequest{ Action: instance.ServerActionPoweroff, ServerID: serverID, + Zone: scw.Zone(c.Zone), }, scw.WithContext(ctx)) if err != nil { err := fmt.Errorf("error stopping server: %s", err) diff --git a/builder/scaleway/step_sweep.go b/builder/scaleway/step_sweep.go index 1580ed3..4f3ff49 100644 --- a/builder/scaleway/step_sweep.go +++ b/builder/scaleway/step_sweep.go @@ -20,13 +20,15 @@ func (s *stepSweep) Run(_ context.Context, _ multistep.StateBag) multistep.StepA func (s *stepSweep) Cleanup(state multistep.StateBag) { instanceAPI := instance.NewAPI(state.Get("client").(*scw.Client)) ui := state.Get("ui").(packersdk.Ui) - snapshotID := state.Get("snapshot_id").(string) + c := state.Get("config").(*Config) + snapshots := state.Get("snapshots").([]ArtifactSnapshot) imageID := state.Get("image_id").(string) ui.Say("Deleting Image...") err := instanceAPI.DeleteImage(&instance.DeleteImageRequest{ ImageID: imageID, + Zone: scw.Zone(c.Zone), }) if err != nil { err := fmt.Errorf("error deleting image: %s", err) @@ -36,13 +38,15 @@ func (s *stepSweep) Cleanup(state multistep.StateBag) { ui.Say("Deleting Snapshot...") - err = instanceAPI.DeleteSnapshot(&instance.DeleteSnapshotRequest{ - SnapshotID: snapshotID, - }) - if err != nil { - err := fmt.Errorf("error deleting snapshot: %s", err) - state.Put("error", err) - ui.Error(fmt.Sprintf("Error deleting snapshot: %s. (Ignored)", err)) + for _, snapshot := range snapshots { + err = instanceAPI.DeleteSnapshot(&instance.DeleteSnapshotRequest{ + SnapshotID: snapshot.ID, + Zone: scw.Zone(c.Zone), + }) + if err != nil { + err := fmt.Errorf("error deleting snapshot: %s", err) + state.Put("error", err) + ui.Error(fmt.Sprintf("Error deleting snapshot: %s. (Ignored)", err)) + } } - }