Specifying Virtual Machine Attributes with VirtualMachineConfigSpec

The actual customization of the virtual machine happens through the properties of the
VirtualMachineConfigSpec
that is passed in as an argument to
Folder.CreateVM_Task
. For example, you can specify the name, boot options, number of CPUs, and memory for the virtual machine. All properties of
VirtualMachineConfigSpec
are optional to support incremental changes. See the
API Reference
.
The following example fragment from the
VMCreate
sample program illustrates how to define a
VirtualMachineConfigSpec
.
Defining a VirtualMachineConfigSpec Data Object
VirtualMachineConfigSpec vmConfigSpec = new VirtualMachineConfigSpec(); ... vmConfigSpec.setName(“MyVM”); vmConfigSpec.setMemoryMB(new Long(Integer.parseInt 500)); vmConfigSpec.setNumCPUs(Integer.parseInt 4); vmConfigSpec.setGuestId(cb.get_option("guestosid")); ...
The VMware SDK
SDK/samples/Axis/java/com/vmware/apputils/vim/VMUtils.java
sample defines a more comprehensive virtual machine that also includes a Floppy, CD-ROM, disk, and virtual NIC. See Configuring a Virtual Machine for a discussion of commonly set properties.
When you create a virtual machine, the virtual machine files are added at the virtual machine’s storage location. See Table 1.

Additional Configuration Information

The
VirtualMachineConfigInfo
and
VirtualMachineConfigSpec
objects provide the
extraConfig
property for additional configuration information. The
extraConfig
property is an array of key/value pairs that identify configuration options. The Server stores the
extraConfig
options in the
.vmx
file for the virtual machine. As the vSphere API evolves from version to version, an extraConfig option may become a standard configuration property that is part of the defined inventory data model. In this case, you must use the standard data model property for access; you cannot use the
extraConfig
property.