Move openAsStreamOptimizedVmdk() into importable package

so it can be used later within tests
This commit is contained in:
Alexander Todorov 2020-08-24 08:51:01 -04:00 committed by Ondřej Budai
parent 5803abfeee
commit e7aa9c10c2
2 changed files with 28 additions and 22 deletions

View file

@ -11,7 +11,6 @@ import (
"io/ioutil" "io/ioutil"
"log" "log"
"os" "os"
"os/exec"
"path" "path"
"time" "time"
@ -21,6 +20,7 @@ import (
"github.com/osbuild/osbuild-composer/internal/target" "github.com/osbuild/osbuild-composer/internal/target"
"github.com/osbuild/osbuild-composer/internal/upload/awsupload" "github.com/osbuild/osbuild-composer/internal/upload/awsupload"
"github.com/osbuild/osbuild-composer/internal/upload/azure" "github.com/osbuild/osbuild-composer/internal/upload/azure"
"github.com/osbuild/osbuild-composer/internal/upload/vmware"
"github.com/osbuild/osbuild-composer/internal/worker" "github.com/osbuild/osbuild-composer/internal/worker"
) )
@ -67,26 +67,6 @@ func (e *TargetsError) Error() string {
return errString return errString
} }
func openAsStreamOptimizedVmdk(imagePath string) (*os.File, error) {
newPath := imagePath + ".stream"
cmd := exec.Command(
"/usr/bin/qemu-img", "convert", "-O", "vmdk", "-o", "subformat=streamOptimized",
imagePath, newPath)
err := cmd.Run()
if err != nil {
return nil, err
}
f, err := os.Open(newPath)
if err != nil {
return nil, err
}
err = os.Remove(newPath)
if err != nil {
return nil, err
}
return f, err
}
func RunJob(job *worker.Job, store string, uploadFunc func(uuid.UUID, string, io.Reader) error) (*osbuild.Result, error) { func RunJob(job *worker.Job, store string, uploadFunc func(uuid.UUID, string, io.Reader) error) (*osbuild.Result, error) {
outputDirectory, err := ioutil.TempDir("/var/tmp", "osbuild-worker-*") outputDirectory, err := ioutil.TempDir("/var/tmp", "osbuild-worker-*")
if err != nil { if err != nil {
@ -112,7 +92,7 @@ func RunJob(job *worker.Job, store string, uploadFunc func(uuid.UUID, string, io
var f *os.File var f *os.File
imagePath := path.Join(outputDirectory, options.Filename) imagePath := path.Join(outputDirectory, options.Filename)
if options.StreamOptimized { if options.StreamOptimized {
f, err = openAsStreamOptimizedVmdk(imagePath) f, err = vmware.OpenAsStreamOptimizedVmdk(imagePath)
if err != nil { if err != nil {
r = append(r, err) r = append(r, err)
continue continue

View file

@ -0,0 +1,26 @@
package vmware
import (
"os"
"os/exec"
)
func OpenAsStreamOptimizedVmdk(imagePath string) (*os.File, error) {
newPath := imagePath + ".stream"
cmd := exec.Command(
"/usr/bin/qemu-img", "convert", "-O", "vmdk", "-o", "subformat=streamOptimized",
imagePath, newPath)
err := cmd.Run()
if err != nil {
return nil, err
}
f, err := os.Open(newPath)
if err != nil {
return nil, err
}
err = os.Remove(newPath)
if err != nil {
return nil, err
}
return f, err
}