osbuild-worker-executor: expect osbuild-store as store directory

This commit is contained in:
Sanne Raymaekers 2024-06-05 12:35:21 +02:00
parent 7d7bce76c0
commit 840f46b07f
2 changed files with 12 additions and 12 deletions

View file

@ -58,7 +58,7 @@ func runOsbuild(logger *logrus.Logger, buildDir string, control *controlJSON, ou
// use multi writer to get same output for stream and log // use multi writer to get same output for stream and log
mw := io.MultiWriter(&wf, logf) mw := io.MultiWriter(&wf, logf)
outputDir := filepath.Join(buildDir, "output") outputDir := filepath.Join(buildDir, "output")
storeDir := filepath.Join(buildDir, "store") storeDir := filepath.Join(buildDir, "osbuild-store")
cmd := exec.Command(osbuildBinary) cmd := exec.Command(osbuildBinary)
cmd.Stdout = mw cmd.Stdout = mw
cmd.Stderr = mw cmd.Stderr = mw
@ -189,8 +189,8 @@ func handleIncludedSources(atar *tar.Reader, buildDir string) error {
if filepath.Clean(name) != strings.TrimSuffix(name, "/") { if filepath.Clean(name) != strings.TrimSuffix(name, "/") {
return fmt.Errorf("name not clean: %v != %v", filepath.Clean(name), name) return fmt.Errorf("name not clean: %v != %v", filepath.Clean(name), name)
} }
if !strings.HasPrefix(name, "store/") { if !strings.HasPrefix(name, "osbuild-store/") {
return fmt.Errorf("expected store/ prefix, got %v", hdr.Name) return fmt.Errorf("expected osbuild-store/ prefix, got %v", name)
} }
// note that the extra filepath.Clean() is just there to // note that the extra filepath.Clean() is just there to
// appease gosec G305 // appease gosec G305

View file

@ -65,7 +65,7 @@ func makeTestPost(t *testing.T, controlJSON, manifestJSON string) *bytes.Buffer
// for now we assume we get validated data, for files we could // for now we assume we get validated data, for files we could
// trivially validate on the fly but for containers that is // trivially validate on the fly but for containers that is
// harder // harder
for _, dir := range []string{"store/", "store/sources", "store/sources/org.osbuild.files"} { for _, dir := range []string{"osbuild-store/", "osbuild-store/sources", "osbuild-store/sources/org.osbuild.files"} {
err = archive.WriteHeader(&tar.Header{ err = archive.WriteHeader(&tar.Header{
Name: dir, Name: dir,
Mode: 0755, Mode: 0755,
@ -73,9 +73,9 @@ func makeTestPost(t *testing.T, controlJSON, manifestJSON string) *bytes.Buffer
}) })
assert.NoError(t, err) assert.NoError(t, err)
} }
err = writeToTar(archive, "store/sources/org.osbuild.files/sha256:ff800c5263b915d8a0776be5620575df2d478332ad35e8dd18def6a8c720f9c7", "random-data") err = writeToTar(archive, "osbuild-store/sources/org.osbuild.files/sha256:ff800c5263b915d8a0776be5620575df2d478332ad35e8dd18def6a8c720f9c7", "random-data")
assert.NoError(t, err) assert.NoError(t, err)
err = writeToTar(archive, "store/sources/org.osbuild.files/sha256:aabbcc5263b915d8a0776be5620575df2d478332ad35e8dd18def6a8c720f9c7", "other-data") err = writeToTar(archive, "osbuild-store/sources/org.osbuild.files/sha256:aabbcc5263b915d8a0776be5620575df2d478332ad35e8dd18def6a8c720f9c7", "other-data")
assert.NoError(t, err) assert.NoError(t, err)
return buf return buf
} }
@ -109,7 +109,7 @@ echo "fake-build-result" > %[1]s/build/output/image/disk.img
reader := bufio.NewReader(rsp.Body) reader := bufio.NewReader(rsp.Body)
// check that we get the output of osbuild streamed to us // check that we get the output of osbuild streamed to us
expectedContent := fmt.Sprintf(`fake-osbuild --export tree --output-dir %[1]s/build/output --store %[1]s/build/store --json expectedContent := fmt.Sprintf(`fake-osbuild --export tree --output-dir %[1]s/build/output --store %[1]s/build/osbuild-store --json
--- ---
{"fake": "manifest"}`, baseBuildDir) {"fake": "manifest"}`, baseBuildDir)
content, err := io.ReadAll(reader) content, err := io.ReadAll(reader)
@ -120,7 +120,7 @@ echo "fake-build-result" > %[1]s/build/output/image/disk.img
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, expectedContent, string(logFileContent)) assert.Equal(t, expectedContent, string(logFileContent))
// check that the "store" dir got created // check that the "store" dir got created
stat, err := os.Stat(filepath.Join(baseBuildDir, "build/store")) stat, err := os.Stat(filepath.Join(baseBuildDir, "build/osbuild-store"))
assert.NoError(t, err) assert.NoError(t, err)
assert.True(t, stat.IsDir()) assert.True(t, stat.IsDir())
@ -181,11 +181,11 @@ func TestHandleIncludedSourcesUnclean(t *testing.T) {
buf := bytes.NewBuffer(nil) buf := bytes.NewBuffer(nil)
atar := tar.NewWriter(buf) atar := tar.NewWriter(buf)
err := writeToTar(atar, "store/../../etc/passwd", "some-content") err := writeToTar(atar, "osbuild-store/../../etc/passwd", "some-content")
assert.NoError(t, err) assert.NoError(t, err)
err = main.HandleIncludedSources(tar.NewReader(buf), tmpdir) err = main.HandleIncludedSources(tar.NewReader(buf), tmpdir)
assert.EqualError(t, err, "name not clean: ../etc/passwd != store/../../etc/passwd") assert.EqualError(t, err, "name not clean: ../etc/passwd != osbuild-store/../../etc/passwd")
} }
func TestHandleIncludedSourcesNotFromStore(t *testing.T) { func TestHandleIncludedSourcesNotFromStore(t *testing.T) {
@ -197,7 +197,7 @@ func TestHandleIncludedSourcesNotFromStore(t *testing.T) {
assert.NoError(t, err) assert.NoError(t, err)
err = main.HandleIncludedSources(tar.NewReader(buf), tmpdir) err = main.HandleIncludedSources(tar.NewReader(buf), tmpdir)
assert.EqualError(t, err, "expected store/ prefix, got not-store") assert.EqualError(t, err, "expected osbuild-store/ prefix, got not-store")
} }
func TestHandleIncludedSourcesBadTypes(t *testing.T) { func TestHandleIncludedSourcesBadTypes(t *testing.T) {
@ -207,7 +207,7 @@ func TestHandleIncludedSourcesBadTypes(t *testing.T) {
buf := bytes.NewBuffer(nil) buf := bytes.NewBuffer(nil)
atar := tar.NewWriter(buf) atar := tar.NewWriter(buf)
err := atar.WriteHeader(&tar.Header{ err := atar.WriteHeader(&tar.Header{
Name: "store/bad-type", Name: "osbuild-store/bad-type",
Typeflag: badType, Typeflag: badType,
}) })
assert.NoError(t, err) assert.NoError(t, err)