From 0f4649b22153f37d884c6b31cc44b61bcf1fd0bd Mon Sep 17 00:00:00 2001 From: Yacine FODIL Date: Mon, 8 Jul 2024 16:28:28 +0200 Subject: [PATCH 1/3] fix: update snapshots on step sweep --- builder/scaleway/builder_acc_test.go | 6 +++++- builder/scaleway/step_sweep.go | 19 ++++++++++--------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/builder/scaleway/builder_acc_test.go b/builder/scaleway/builder_acc_test.go index 94bf80a..3f9cee9 100644 --- a/builder/scaleway/builder_acc_test.go +++ b/builder/scaleway/builder_acc_test.go @@ -17,6 +17,10 @@ func TestAccScalewayBuilder(t *testing.T) { acctest.TestPlugin(t, &acctest.PluginTestCase{ Name: "test-scaleway-builder-basic", Template: testBuilderAccBasic, + Setup: func() error { + os.Setenv("PACKER_PLUGIN_PATH", "/Users/yacinefodil/Documents/Scaleway/Packer/packer-plugin-scaleway") + return nil + }, Check: func(buildCommand *exec.Cmd, logfile string) error { if buildCommand.ProcessState != nil { if buildCommand.ProcessState.ExitCode() != 0 { @@ -39,7 +43,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_sweep.go b/builder/scaleway/step_sweep.go index 1580ed3..39f4962 100644 --- a/builder/scaleway/step_sweep.go +++ b/builder/scaleway/step_sweep.go @@ -20,7 +20,7 @@ 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) + snapshots := state.Get("snapshots").([]ArtifactSnapshot) imageID := state.Get("image_id").(string) ui.Say("Deleting Image...") @@ -36,13 +36,14 @@ 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, + }) + 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)) + } } - } From 280857271a1f22aa1259bfd23f83918905120a00 Mon Sep 17 00:00:00 2001 From: Yacine FODIL Date: Mon, 8 Jul 2024 16:34:41 +0200 Subject: [PATCH 2/3] remove setup --- builder/scaleway/builder_acc_test.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/builder/scaleway/builder_acc_test.go b/builder/scaleway/builder_acc_test.go index 3f9cee9..ecbb3f7 100644 --- a/builder/scaleway/builder_acc_test.go +++ b/builder/scaleway/builder_acc_test.go @@ -17,10 +17,6 @@ func TestAccScalewayBuilder(t *testing.T) { acctest.TestPlugin(t, &acctest.PluginTestCase{ Name: "test-scaleway-builder-basic", Template: testBuilderAccBasic, - Setup: func() error { - os.Setenv("PACKER_PLUGIN_PATH", "/Users/yacinefodil/Documents/Scaleway/Packer/packer-plugin-scaleway") - return nil - }, Check: func(buildCommand *exec.Cmd, logfile string) error { if buildCommand.ProcessState != nil { if buildCommand.ProcessState.ExitCode() != 0 { From f9f8fb7013c5f7ffa5710903e3f7c8f4e1bb0010 Mon Sep 17 00:00:00 2001 From: Yacine FODIL Date: Tue, 9 Jul 2024 21:45:39 +0200 Subject: [PATCH 3/3] add zone in requests --- builder/scaleway/step_create_server.go | 1 + builder/scaleway/step_remove_volume.go | 1 + builder/scaleway/step_server_info.go | 2 ++ builder/scaleway/step_shutdown.go | 1 + builder/scaleway/step_sweep.go | 3 +++ 5 files changed, 8 insertions(+) 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 39f4962..4f3ff49 100644 --- a/builder/scaleway/step_sweep.go +++ b/builder/scaleway/step_sweep.go @@ -20,6 +20,7 @@ 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) + c := state.Get("config").(*Config) snapshots := state.Get("snapshots").([]ArtifactSnapshot) imageID := state.Get("image_id").(string) @@ -27,6 +28,7 @@ func (s *stepSweep) Cleanup(state multistep.StateBag) { err := instanceAPI.DeleteImage(&instance.DeleteImageRequest{ ImageID: imageID, + Zone: scw.Zone(c.Zone), }) if err != nil { err := fmt.Errorf("error deleting image: %s", err) @@ -39,6 +41,7 @@ func (s *stepSweep) Cleanup(state multistep.StateBag) { 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)