mirror of
				https://github.com/containers/podman.git
				synced 2025-10-31 10:00:01 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package e2e_test
 | |
| 
 | |
| import (
 | |
| 	"errors"
 | |
| 	"fmt"
 | |
| 	url2 "net/url"
 | |
| 	"os"
 | |
| 	"path"
 | |
| 	"path/filepath"
 | |
| 	"strings"
 | |
| 	"time"
 | |
| 
 | |
| 	"github.com/containers/podman/v5/pkg/machine"
 | |
| 	"github.com/containers/podman/v5/pkg/machine/compression"
 | |
| 	"github.com/containers/podman/v5/pkg/machine/define"
 | |
| 	"github.com/containers/podman/v5/pkg/machine/wsl"
 | |
| 	. "github.com/onsi/ginkgo/v2"
 | |
| )
 | |
| 
 | |
| func pullWSLDisk() error {
 | |
| 	downloadLocation := os.Getenv("MACHINE_IMAGE")
 | |
| 	if downloadLocation == "" {
 | |
| 		dl, _, _, _, err := wsl.GetFedoraDownloadForWSL()
 | |
| 		if err != nil {
 | |
| 			return errors.New("unable to determine WSL download")
 | |
| 		}
 | |
| 		downloadLocation = dl.String()
 | |
| 	}
 | |
| 
 | |
| 	if downloadLocation == "" {
 | |
| 		return errors.New("machine tests require a file reference to a disk image right now")
 | |
| 	}
 | |
| 	compressionExtension := ".zst"
 | |
| 	suiteImageName = strings.TrimSuffix(path.Base(downloadLocation), compressionExtension)
 | |
| 	fqImageName = filepath.Join(tmpDir, suiteImageName)
 | |
| 	getMe, err := url2.Parse(downloadLocation)
 | |
| 	if err != nil {
 | |
| 		return fmt.Errorf("unable to create url for download: %q", err)
 | |
| 	}
 | |
| 	now := time.Now()
 | |
| 	if err := machine.DownloadVMImage(getMe, suiteImageName, fqImageName+compressionExtension); err != nil {
 | |
| 		return fmt.Errorf("unable to download machine image: %q", err)
 | |
| 	}
 | |
| 	GinkgoWriter.Println("Download took: ", time.Since(now).String())
 | |
| 	diskImage, err := define.NewMachineFile(fqImageName+compressionExtension, nil)
 | |
| 	if err != nil {
 | |
| 		return fmt.Errorf("unable to create vmfile %q: %v", fqImageName+compressionExtension, err)
 | |
| 	}
 | |
| 	compressionStart := time.Now()
 | |
| 	if err := compression.Decompress(diskImage, fqImageName); err != nil {
 | |
| 		return fmt.Errorf("unable to decompress image file: %q", err)
 | |
| 	}
 | |
| 	GinkgoWriter.Println("compression took: ", time.Since(compressionStart))
 | |
| 	return nil
 | |
| }
 | 
