From 5a395cda38cdb622f2c3e948f3aecaf15af77963 Mon Sep 17 00:00:00 2001 From: Alexander Todorov Date: Wed, 19 Aug 2020 06:41:02 -0400 Subject: [PATCH] tests: manually convert to streamOptimized vmdk --- cmd/osbuild-image-tests/main_test.go | 6 ++++++ cmd/osbuild-image-tests/vmwaretest/vmware.go | 20 ++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/cmd/osbuild-image-tests/main_test.go b/cmd/osbuild-image-tests/main_test.go index 08fce53e1..8da90df74 100644 --- a/cmd/osbuild-image-tests/main_test.go +++ b/cmd/osbuild-image-tests/main_test.go @@ -344,6 +344,12 @@ func testBootUsingVMware(t *testing.T, imagePath string) { } require.NoError(t, err) + // convert to streamOptimized vmdk + imagePath, err = vmwaretest.ConvertToStreamOptimizedVmdk(imagePath) + require.NoError(t, err) + require.NotEqual(t, "", imagePath) + defer os.Remove(imagePath) + // create a random test id to name all the resources used in this test imageName, err := generateRandomString("osbuild-image-tests-vmware-image-") require.NoError(t, err) diff --git a/cmd/osbuild-image-tests/vmwaretest/vmware.go b/cmd/osbuild-image-tests/vmwaretest/vmware.go index 0555eea72..f94465e9c 100644 --- a/cmd/osbuild-image-tests/vmwaretest/vmware.go +++ b/cmd/osbuild-image-tests/vmwaretest/vmware.go @@ -7,6 +7,7 @@ import ( "os" "os/exec" "fmt" + "io/ioutil" "path/filepath" // importing the packages registers these cli commands @@ -209,3 +210,22 @@ func WithSSHKeyPair(f func(privateKey, publicKey string) error) error { return f(private, public) } + + +func ConvertToStreamOptimizedVmdk(imagePath string) (string, error) { + optimizedVmdk, err := ioutil.TempFile("/var/tmp", "osbuild-composer-stream-optimized-*.vmdk") + if err != nil { + return "", err + } + optimizedVmdk.Close() + + cmd := exec.Command( + "/usr/bin/qemu-img", "convert", "-O", "vmdk", "-o", "subformat=streamOptimized", + imagePath, optimizedVmdk.Name()) + err = cmd.Run() + if err != nil { + return "", err + } + + return optimizedVmdk.Name(), nil +}