Skip to content

Commit bcb71ca

Browse files
committed
refactor(image-downloader): move code to limactl from vz & qemu
Signed-off-by: Ansuman Sahoo <[email protected]>
1 parent 53e7cd1 commit bcb71ca

File tree

5 files changed

+42
-79
lines changed

5 files changed

+42
-79
lines changed

pkg/driver/external/server/server.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ func Stop(extDriver *registry.ExternalDriver) error {
167167
return fmt.Errorf("external driver %s is not running", extDriver.Name)
168168
}
169169

170-
extDriver.Logger.Infof("Stopping external driver %s", extDriver.Name)
170+
extDriver.Logger.Debugf("Stopping external driver %s", extDriver.Name)
171171
if extDriver.CancelFunc != nil {
172172
extDriver.CancelFunc()
173173
}
@@ -180,7 +180,7 @@ func Stop(extDriver *registry.ExternalDriver) error {
180180
extDriver.Ctx = nil
181181
extDriver.CancelFunc = nil
182182

183-
extDriver.Logger.Infof("External driver %s stopped successfully", extDriver.Name)
183+
extDriver.Logger.Debugf("External driver %s stopped successfully", extDriver.Name)
184184
return nil
185185
}
186186

@@ -189,8 +189,6 @@ func StopAllExternalDrivers() {
189189
if driver.Command != nil && driver.Command.Process != nil {
190190
if err := Stop(driver); err != nil {
191191
logrus.Errorf("Failed to stop external driver %s: %v", name, err)
192-
} else {
193-
logrus.Infof("External driver %s stopped successfully", name)
194192
}
195193
}
196194
delete(registry.ExternalDrivers, name)

pkg/driver/qemu/qemu.go

Lines changed: 1 addition & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -94,42 +94,7 @@ func EnsureDisk(ctx context.Context, cfg Config) error {
9494
}
9595

9696
baseDisk := filepath.Join(cfg.InstanceDir, filenames.BaseDisk)
97-
kernel := filepath.Join(cfg.InstanceDir, filenames.Kernel)
98-
kernelCmdline := filepath.Join(cfg.InstanceDir, filenames.KernelCmdline)
99-
initrd := filepath.Join(cfg.InstanceDir, filenames.Initrd)
100-
if _, err := os.Stat(baseDisk); errors.Is(err, os.ErrNotExist) {
101-
var ensuredBaseDisk bool
102-
errs := make([]error, len(cfg.LimaYAML.Images))
103-
for i, f := range cfg.LimaYAML.Images {
104-
if _, err := fileutils.DownloadFile(ctx, baseDisk, f.File, true, "the image", *cfg.LimaYAML.Arch); err != nil {
105-
errs[i] = err
106-
continue
107-
}
108-
if f.Kernel != nil {
109-
if _, err := fileutils.DownloadFile(ctx, kernel, f.Kernel.File, false, "the kernel", *cfg.LimaYAML.Arch); err != nil {
110-
errs[i] = err
111-
continue
112-
}
113-
if f.Kernel.Cmdline != "" {
114-
if err := os.WriteFile(kernelCmdline, []byte(f.Kernel.Cmdline), 0o644); err != nil {
115-
errs[i] = err
116-
continue
117-
}
118-
}
119-
}
120-
if f.Initrd != nil {
121-
if _, err := fileutils.DownloadFile(ctx, initrd, *f.Initrd, false, "the initrd", *cfg.LimaYAML.Arch); err != nil {
122-
errs[i] = err
123-
continue
124-
}
125-
}
126-
ensuredBaseDisk = true
127-
break
128-
}
129-
if !ensuredBaseDisk {
130-
return fileutils.Errors(errs)
131-
}
132-
}
97+
13398
diskSize, _ := units.RAMInBytes(*cfg.LimaYAML.Disk)
13499
if diskSize == 0 {
135100
return nil

pkg/driver/vz/disk.go

Lines changed: 1 addition & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
"path/filepath"
1212

1313
"github.com/docker/go-units"
14-
"github.com/lima-vm/lima/pkg/fileutils"
1514
"github.com/lima-vm/lima/pkg/imgutil/proxyimgutil"
1615
"github.com/lima-vm/lima/pkg/iso9660util"
1716
"github.com/lima-vm/lima/pkg/store"
@@ -28,43 +27,7 @@ func EnsureDisk(ctx context.Context, inst *store.Instance) error {
2827
diskUtil := proxyimgutil.NewDiskUtil()
2928

3029
baseDisk := filepath.Join(inst.Dir, filenames.BaseDisk)
31-
kernel := filepath.Join(inst.Dir, filenames.Kernel)
32-
kernelCmdline := filepath.Join(inst.Dir, filenames.KernelCmdline)
33-
initrd := filepath.Join(inst.Dir, filenames.Initrd)
34-
if _, err := os.Stat(baseDisk); errors.Is(err, os.ErrNotExist) {
35-
var ensuredBaseDisk bool
36-
errs := make([]error, len(inst.Config.Images))
37-
for i, f := range inst.Config.Images {
38-
if _, err := fileutils.DownloadFile(ctx, baseDisk, f.File, true, "the image", *inst.Config.Arch); err != nil {
39-
errs[i] = err
40-
continue
41-
}
42-
if f.Kernel != nil {
43-
// ensure decompress kernel because vz expects it to be decompressed
44-
if _, err := fileutils.DownloadFile(ctx, kernel, f.Kernel.File, true, "the kernel", *inst.Config.Arch); err != nil {
45-
errs[i] = err
46-
continue
47-
}
48-
if f.Kernel.Cmdline != "" {
49-
if err := os.WriteFile(kernelCmdline, []byte(f.Kernel.Cmdline), 0o644); err != nil {
50-
errs[i] = err
51-
continue
52-
}
53-
}
54-
}
55-
if f.Initrd != nil {
56-
if _, err := fileutils.DownloadFile(ctx, initrd, *f.Initrd, false, "the initrd", *inst.Config.Arch); err != nil {
57-
errs[i] = err
58-
continue
59-
}
60-
}
61-
ensuredBaseDisk = true
62-
break
63-
}
64-
if !ensuredBaseDisk {
65-
return fileutils.Errors(errs)
66-
}
67-
}
30+
6831
diskSize, _ := units.RAMInBytes(*inst.Config.Disk)
6932
if diskSize == 0 {
7033
return nil

pkg/driverutil/instance.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func CreateConfiguredDriver(inst *store.Instance, sshLocalPort int) (*driver.Con
3030
return nil, err
3131
}
3232
} else {
33-
logrus.Infof("Reusing existing external driver %q instance", extDriver.Name)
33+
logrus.Debugf("Reusing existing external driver %q instance", extDriver.Name)
3434
extDriver.InstanceName = inst.Name
3535
}
3636

pkg/instance/start.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,43 @@ func Prepare(ctx context.Context, inst *store.Instance) (*Prepared, error) {
108108
_, err = os.Stat(baseDisk)
109109
created := err == nil
110110

111+
kernel := filepath.Join(inst.Dir, filenames.Kernel)
112+
kernelCmdline := filepath.Join(inst.Dir, filenames.KernelCmdline)
113+
initrd := filepath.Join(inst.Dir, filenames.Initrd)
114+
if _, err := os.Stat(baseDisk); errors.Is(err, os.ErrNotExist) {
115+
var ensuredBaseDisk bool
116+
errs := make([]error, len(inst.Config.Images))
117+
for i, f := range inst.Config.Images {
118+
if _, err := fileutils.DownloadFile(ctx, baseDisk, f.File, true, "the image", *inst.Config.Arch); err != nil {
119+
errs[i] = err
120+
continue
121+
}
122+
if f.Kernel != nil {
123+
if _, err := fileutils.DownloadFile(ctx, kernel, f.Kernel.File, false, "the kernel", *inst.Config.Arch); err != nil {
124+
errs[i] = err
125+
continue
126+
}
127+
if f.Kernel.Cmdline != "" {
128+
if err := os.WriteFile(kernelCmdline, []byte(f.Kernel.Cmdline), 0o644); err != nil {
129+
errs[i] = err
130+
continue
131+
}
132+
}
133+
}
134+
if f.Initrd != nil {
135+
if _, err := fileutils.DownloadFile(ctx, initrd, *f.Initrd, false, "the initrd", *inst.Config.Arch); err != nil {
136+
errs[i] = err
137+
continue
138+
}
139+
}
140+
ensuredBaseDisk = true
141+
break
142+
}
143+
if !ensuredBaseDisk {
144+
return nil, fileutils.Errors(errs)
145+
}
146+
}
147+
111148
if err := limaDriver.CreateDisk(ctx); err != nil {
112149
return nil, err
113150
}

0 commit comments

Comments
 (0)