|
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