|
9 | 9 | "fmt" |
10 | 10 | "io" |
11 | 11 | "os" |
| 12 | + "os/exec" |
12 | 13 | "path/filepath" |
13 | 14 | "runtime" |
14 | 15 | "strconv" |
@@ -131,6 +132,7 @@ func Inspect(instName string) (*Instance, error) { |
131 | 132 | } |
132 | 133 | disk, err := units.RAMInBytes(*y.Disk) |
133 | 134 | if err == nil { |
| 135 | + // logrus.Infof("Inst:%s changing size %d to %d \n", inst.Name, inst.Disk, disk) |
134 | 136 | inst.Disk = disk |
135 | 137 | } |
136 | 138 | inst.AdditionalDisks = y.AdditionalDisks |
@@ -437,3 +439,25 @@ func (inst *Instance) Unprotect() error { |
437 | 439 | inst.Protected = false |
438 | 440 | return nil |
439 | 441 | } |
| 442 | + |
| 443 | +func (inst *Instance) ResizeGuestOSDisk() error { |
| 444 | + fName := filepath.Join(inst.Dir, filenames.DiffDisk) |
| 445 | + |
| 446 | + cmd := exec.Command("limactl", "disk", "add", inst.Name, "--filename", fName) |
| 447 | + if err := cmd.Run(); err != nil { |
| 448 | + logrus.Fatalf("Failed to add disk: %v", err) |
| 449 | + } |
| 450 | + |
| 451 | + cmd = exec.Command("limactl", "disk", "resize", inst.Name, "--size", string(units.BytesSize(float64(inst.Disk)))) |
| 452 | + if err := cmd.Run(); err != nil { |
| 453 | + logrus.Fatalf("Failed to resize disk: %v", err) |
| 454 | + } |
| 455 | + |
| 456 | + cmd = exec.Command("limactl", "disk", "delete", inst.Name) |
| 457 | + if err := cmd.Run(); err != nil { |
| 458 | + logrus.Fatalf("Failed to remove disk: %v", err) |
| 459 | + } |
| 460 | + |
| 461 | + logrus.Infof("Edit GuestOS size to %s", units.BytesSize(float64(inst.Disk))) |
| 462 | + return nil |
| 463 | +} |
0 commit comments