From ead8707f3a6d5dfef08e0f7166df427e71cef555 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Wed, 23 Sep 2020 14:38:45 +0200 Subject: [PATCH 1/3] Delete pre-provisioned Cinder volume by ID --- test/e2e/storage/drivers/in_tree.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/test/e2e/storage/drivers/in_tree.go b/test/e2e/storage/drivers/in_tree.go index 084c1c5f424..b12fc56649d 100644 --- a/test/e2e/storage/drivers/in_tree.go +++ b/test/e2e/storage/drivers/in_tree.go @@ -1191,6 +1191,7 @@ func (c *cinderDriver) CreateVolume(config *testsuites.PerTestConfig, volType te } func (v *cinderVolume) DeleteVolume() { + id := v.volumeID name := v.volumeName // Try to delete the volume for several seconds - it takes @@ -1199,16 +1200,16 @@ func (v *cinderVolume) DeleteVolume() { var err error timeout := time.Second * 120 - framework.Logf("Waiting up to %v for removal of cinder volume %s", timeout, name) + framework.Logf("Waiting up to %v for removal of cinder volume %s / %s", timeout, id, name) for start := time.Now(); time.Since(start) < timeout; time.Sleep(5 * time.Second) { - output, err = exec.Command("cinder", "delete", name).CombinedOutput() + output, err = exec.Command("cinder", "delete", id).CombinedOutput() if err == nil { - framework.Logf("Cinder volume %s deleted", name) + framework.Logf("Cinder volume %s deleted", id) return } - framework.Logf("Failed to delete volume %s: %v", name, err) + framework.Logf("Failed to delete volume %s / %s: %v\n%s", id, name, err, string(output)) } - framework.Logf("Giving up deleting volume %s: %v\n%s", name, err, string(output[:])) + framework.Logf("Giving up deleting volume %s / %s: %v\n%s", id, name, err, string(output[:])) } // GCE From b0031870538422d512cd7ff70d307f3f310811e7 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Wed, 23 Sep 2020 14:41:10 +0200 Subject: [PATCH 2/3] Add extra log when Cinder volume deletion fails "cinder show " output will help us to debug what's wrong with the Cinder volume. --- test/e2e/storage/drivers/in_tree.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/e2e/storage/drivers/in_tree.go b/test/e2e/storage/drivers/in_tree.go index b12fc56649d..a0af69dd62f 100644 --- a/test/e2e/storage/drivers/in_tree.go +++ b/test/e2e/storage/drivers/in_tree.go @@ -1209,6 +1209,13 @@ func (v *cinderVolume) DeleteVolume() { } framework.Logf("Failed to delete volume %s / %s: %v\n%s", id, name, err, string(output)) } + // Timed out, try to get "cinder show " output for easier debugging + showOutput, showErr := exec.Command("cinder", "show", id).CombinedOutput() + if showErr != nil { + framework.Logf("Failed to show volume %s / %s: %v\n%s", id, name, showErr, string(showOutput)) + } else { + framework.Logf("Volume %s / %s:\n%s", id, name, string(showOutput)) + } framework.Logf("Giving up deleting volume %s / %s: %v\n%s", id, name, err, string(output[:])) } From 76254d88a5902045c6ab716e613214d4f2f429c2 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Wed, 23 Sep 2020 14:41:29 +0200 Subject: [PATCH 3/3] Fail test when Cinder volume deletion fails --- test/e2e/storage/drivers/in_tree.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/storage/drivers/in_tree.go b/test/e2e/storage/drivers/in_tree.go index a0af69dd62f..971d274fca9 100644 --- a/test/e2e/storage/drivers/in_tree.go +++ b/test/e2e/storage/drivers/in_tree.go @@ -1216,7 +1216,7 @@ func (v *cinderVolume) DeleteVolume() { } else { framework.Logf("Volume %s / %s:\n%s", id, name, string(showOutput)) } - framework.Logf("Giving up deleting volume %s / %s: %v\n%s", id, name, err, string(output[:])) + framework.Failf("Failed to delete pre-provisioned volume %s / %s: %v\n%s", id, name, err, string(output[:])) } // GCE