Skip to content

Commit 139b19e

Browse files
authored
Merge pull request #3527 from bzed/disk_prov
govc: Support thick/eager disk opts on vm.create
2 parents bc0c8a0 + 1892eec commit 139b19e

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

govc/USAGE.md

+2
Original file line numberDiff line numberDiff line change
@@ -6472,6 +6472,8 @@ Options:
64726472
-disk= Disk path (to use existing) OR size (to create new, e.g. 20GB)
64736473
-disk-datastore= Datastore for disk file
64746474
-disk.controller=scsi Disk controller type
6475+
-disk.eager=false Eagerly scrub new disk
6476+
-disk.thick=false Thick provision new disk
64756477
-ds= Datastore [GOVC_DATASTORE]
64766478
-firmware=bios Firmware type [bios|efi]
64776479
-folder= Inventory folder [GOVC_FOLDER]

govc/vm/create.go

+13-5
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ type create struct {
6161
on bool
6262
force bool
6363
controller string
64+
eager bool
65+
thick bool
6466
annotation string
6567
firmware string
6668
version string
@@ -129,6 +131,8 @@ func (cmd *create) Register(ctx context.Context, f *flag.FlagSet) {
129131
f.BoolVar(&cmd.on, "on", true, "Power on VM")
130132
f.BoolVar(&cmd.force, "force", false, "Create VM if vmx already exists")
131133
f.StringVar(&cmd.controller, "disk.controller", "scsi", "Disk controller type")
134+
f.BoolVar(&cmd.eager, "disk.eager", false, "Eagerly scrub new disk")
135+
f.BoolVar(&cmd.thick, "disk.thick", false, "Thick provision new disk")
132136
f.StringVar(&cmd.annotation, "annotation", "", "VM description")
133137
f.StringVar(&cmd.firmware, "firmware", FirmwareTypes[0], FirmwareUsage)
134138
if cli.ShowUnreleased() {
@@ -550,13 +554,17 @@ func (cmd *create) addStorage(devices object.VirtualDeviceList) (object.VirtualD
550554
return nil, err
551555
}
552556

557+
backing := &types.VirtualDiskFlatVer2BackingInfo{
558+
DiskMode: string(types.VirtualDiskModePersistent),
559+
ThinProvisioned: types.NewBool(!cmd.thick),
560+
}
561+
if cmd.thick {
562+
backing.EagerlyScrub = &cmd.eager
563+
}
553564
disk := &types.VirtualDisk{
554565
VirtualDevice: types.VirtualDevice{
555-
Key: devices.NewKey(),
556-
Backing: &types.VirtualDiskFlatVer2BackingInfo{
557-
DiskMode: string(types.VirtualDiskModePersistent),
558-
ThinProvisioned: types.NewBool(true),
559-
},
566+
Key: devices.NewKey(),
567+
Backing: backing,
560568
},
561569
CapacityInKB: cmd.diskByteSize / 1024,
562570
}

0 commit comments

Comments
 (0)