From 34eb6fbe60cccd3dae5e67b0e7b2e0286c2e0a3f Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Tue, 9 Nov 2021 16:49:42 +0100 Subject: [PATCH] testutil: daemon.Cleanup(): cleanup more directories The storage-driver directory caused Jenkins cleanup to fail. While at it, also removing other directories that we do not include in the "bundles" that are stored as Jenkins artifacts. Signed-off-by: Sebastiaan van Stijn (cherry picked from commit 1a15a1a06186df90e01ef06628ea99d3d8be1e0e) Signed-off-by: Sebastiaan van Stijn --- testutil/daemon/daemon.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/testutil/daemon/daemon.go b/testutil/daemon/daemon.go index 52882e4dcb..ebaad1cc7b 100644 --- a/testutil/daemon/daemon.go +++ b/testutil/daemon/daemon.go @@ -281,6 +281,7 @@ func (d *Daemon) Cleanup(t testing.TB) { t.Helper() cleanupMount(t, d) cleanupRaftDir(t, d) + cleanupDaemonStorage(t, d) cleanupNetworkNamespace(t, d) } @@ -822,3 +823,36 @@ func cleanupRaftDir(t testing.TB, d *Daemon) { } } } + +// cleanupDaemonStorage removes the daemon's storage directory. +// +// Note that we don't delete the whole directory, as some files (e.g. daemon +// logs) are collected for inclusion in the "bundles" that are stored as Jenkins +// artifacts. +// +// We currently do not include container logs in the bundles, so this also +// removes the "containers" sub-directory. +func cleanupDaemonStorage(t testing.TB, d *Daemon) { + t.Helper() + dirs := []string{ + "builder", + "buildkit", + "containers", + "image", + "network", + "plugins", + "tmp", + "trust", + "volumes", + // note: this assumes storage-driver name matches the subdirectory, + // which is currently true, but not guaranteed. + d.storageDriver, + } + + for _, p := range dirs { + dir := filepath.Join(d.Root, p) + if err := os.RemoveAll(dir); err != nil { + t.Logf("[%s] error removing %v: %v", d.id, dir, err) + } + } +}