From b2a248cbec67d0b5fd7ac6c8687947a16f9c222f Mon Sep 17 00:00:00 2001 From: Hongkai Liu Date: Thu, 25 Jun 2026 10:43:10 -0400 Subject: [PATCH 1/2] Downloads: Ensure cleanup of the artifact folder on each startup Follow up https://github.com/openshift/console-operator/pull/1176 The GoLang implementation uses a fixed folder name `defaultArtifactsDir` to store the files and cleans the folder up [1]. So it should not suffer the issue of accumulating the files over startups. An existing unit test ensures already the same `defaultArtifactsDir` is used [2]. Another existing unit test checks folders with the prefix `defaultArtifactsDir` are removed. We add the logic in the pull to this unit test to ensure that the files in `defaultArtifactsDir` from previous container are removed too in the new container after startup. [1]. https://github.com/openshift/console/blob/71f7e03bcfe04f9842f24a8f628660f8f2d4b892/cmd/downloads/config/downloads_config.go#L119-L122 [2]. https://github.com/openshift/console/blob/28f9ca40e41a5b221bcd562194fcc1ff930cc6f4/cmd/downloads/config/downloads_config_test.go#L266-L268 --- cmd/downloads/config/downloads_config_test.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/cmd/downloads/config/downloads_config_test.go b/cmd/downloads/config/downloads_config_test.go index 0c8db247912..746de90d248 100644 --- a/cmd/downloads/config/downloads_config_test.go +++ b/cmd/downloads/config/downloads_config_test.go @@ -313,14 +313,16 @@ func TestNewDownloadsServerConfig_CleansOldRandomTempDirs(t *testing.T) { }) oldDirs := []string{ + defaultArtifactsDir, "/tmp/artifacts1234test", "/tmp/artifacts5678test", } + leftover := "leftover" for _, d := range oldDirs { if err := os.MkdirAll(d, 0755); err != nil { t.Fatalf("failed to create old temp dir %s: %v", d, err) } - os.WriteFile(filepath.Join(d, "leftover"), []byte("data"), 0644) + os.WriteFile(filepath.Join(d, leftover), []byte("data"), 0644) } srcDir := t.TempDir() @@ -335,6 +337,16 @@ func TestNewDownloadsServerConfig_CleansOldRandomTempDirs(t *testing.T) { } for _, d := range oldDirs { + if d == defaultArtifactsDir { + if _, err := os.Stat(d); err != nil { + t.Errorf("failed to stat artifacts dir: %v", err) + } + f := filepath.Join(d, leftover) + if _, err := os.Stat(f); !os.IsNotExist(err) { + t.Errorf("leftover %s should have been cleaned up, but still exists", f) + } + continue + } if _, err := os.Stat(d); !os.IsNotExist(err) { t.Errorf("old temp dir %s should have been cleaned up, but still exists", d) } From a95b53c3394311285fd3f1df21797b9bbb46cfcd Mon Sep 17 00:00:00 2001 From: Hongkai Liu Date: Thu, 25 Jun 2026 13:08:41 -0400 Subject: [PATCH 2/2] Handle an error properly --- cmd/downloads/config/downloads_config_test.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmd/downloads/config/downloads_config_test.go b/cmd/downloads/config/downloads_config_test.go index 746de90d248..214f8b4da36 100644 --- a/cmd/downloads/config/downloads_config_test.go +++ b/cmd/downloads/config/downloads_config_test.go @@ -322,7 +322,9 @@ func TestNewDownloadsServerConfig_CleansOldRandomTempDirs(t *testing.T) { if err := os.MkdirAll(d, 0755); err != nil { t.Fatalf("failed to create old temp dir %s: %v", d, err) } - os.WriteFile(filepath.Join(d, leftover), []byte("data"), 0644) + if err := os.WriteFile(filepath.Join(d, leftover), []byte("data"), 0644); err != nil { + t.Fatalf("failed to write leftover file in %s: %v", d, err) + } } srcDir := t.TempDir()