Skip to content

Commit a00df8e

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

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
@@ -93,42 +93,7 @@ func EnsureDisk(ctx context.Context, cfg Config) error {
9393
}
9494

9595
baseDisk := filepath.Join(cfg.InstanceDir, filenames.BaseDisk)
96-
kernel := filepath.Join(cfg.InstanceDir, filenames.Kernel)
97-
kernelCmdline := filepath.Join(cfg.InstanceDir, filenames.KernelCmdline)
98-
initrd := filepath.Join(cfg.InstanceDir, filenames.Initrd)
99-
if _, err := os.Stat(baseDisk); errors.Is(err, os.ErrNotExist) {
100-
var ensuredBaseDisk bool
101-
errs := make([]error, len(cfg.LimaYAML.Images))
102-
for i, f := range cfg.LimaYAML.Images {
103-
if _, err := fileutils.DownloadFile(ctx, baseDisk, f.File, true, "the image", *cfg.LimaYAML.Arch); err != nil {
104-
errs[i] = err
105-
continue
106-
}
107-
if f.Kernel != nil {
108-
if _, err := fileutils.DownloadFile(ctx, kernel, f.Kernel.File, false, "the kernel", *cfg.LimaYAML.Arch); err != nil {
109-
errs[i] = err
110-
continue
111-
}
112-
if f.Kernel.Cmdline != "" {
113-
if err := os.WriteFile(kernelCmdline, []byte(f.Kernel.Cmdline), 0o644); err != nil {
114-
errs[i] = err
115-
continue
116-
}
117-
}
118-
}
119-
if f.Initrd != nil {
120-
if _, err := fileutils.DownloadFile(ctx, initrd, *f.Initrd, false, "the initrd", *cfg.LimaYAML.Arch); err != nil {
121-
errs[i] = err
122-
continue
123-
}
124-
}
125-
ensuredBaseDisk = true
126-
break
127-
}
128-
if !ensuredBaseDisk {
129-
return fileutils.Errors(errs)
130-
}
131-
}
96+
13297
diskSize, _ := units.RAMInBytes(*cfg.LimaYAML.Disk)
13398
if diskSize == 0 {
13499
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/iso9660util"
1615
"github.com/lima-vm/lima/pkg/nativeimgutil"
1716
"github.com/lima-vm/lima/pkg/store"
@@ -26,43 +25,7 @@ func EnsureDisk(ctx context.Context, inst *store.Instance) error {
2625
}
2726

2827
baseDisk := filepath.Join(inst.Dir, filenames.BaseDisk)
29-
kernel := filepath.Join(inst.Dir, filenames.Kernel)
30-
kernelCmdline := filepath.Join(inst.Dir, filenames.KernelCmdline)
31-
initrd := filepath.Join(inst.Dir, filenames.Initrd)
32-
if _, err := os.Stat(baseDisk); errors.Is(err, os.ErrNotExist) {
33-
var ensuredBaseDisk bool
34-
errs := make([]error, len(inst.Config.Images))
35-
for i, f := range inst.Config.Images {
36-
if _, err := fileutils.DownloadFile(ctx, baseDisk, f.File, true, "the image", *inst.Config.Arch); err != nil {
37-
errs[i] = err
38-
continue
39-
}
40-
if f.Kernel != nil {
41-
// ensure decompress kernel because vz expects it to be decompressed
42-
if _, err := fileutils.DownloadFile(ctx, kernel, f.Kernel.File, true, "the kernel", *inst.Config.Arch); err != nil {
43-
errs[i] = err
44-
continue
45-
}
46-
if f.Kernel.Cmdline != "" {
47-
if err := os.WriteFile(kernelCmdline, []byte(f.Kernel.Cmdline), 0o644); err != nil {
48-
errs[i] = err
49-
continue
50-
}
51-
}
52-
}
53-
if f.Initrd != nil {
54-
if _, err := fileutils.DownloadFile(ctx, initrd, *f.Initrd, false, "the initrd", *inst.Config.Arch); err != nil {
55-
errs[i] = err
56-
continue
57-
}
58-
}
59-
ensuredBaseDisk = true
60-
break
61-
}
62-
if !ensuredBaseDisk {
63-
return fileutils.Errors(errs)
64-
}
65-
}
28+
6629
diskSize, _ := units.RAMInBytes(*inst.Config.Disk)
6730
if diskSize == 0 {
6831
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
@@ -109,6 +109,43 @@ func Prepare(ctx context.Context, inst *store.Instance) (*Prepared, error) {
109109
_, err = os.Stat(baseDisk)
110110
created := err == nil
111111

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

0 commit comments

Comments
 (0)