Java Example of Creating a Basic Virtual Machine

This example is based on the code in the
CreateBasicVM.java
sample file.
This example uses the information provided in Creating a Virtual Machine Without a Clone or Template.
For a complete and up-to-date version of the Java sample code, see the
vsphere-automation-sdk-java
VMware repository at GitHub.
... private void createBasicVM( VMTypes.PlacementSpec vmPlacementSpec, String standardNetworkBacking) { // Create the scsi disk as a boot disk DiskTypes.CreateSpec bootDiskCreateSpec = new DiskTypes.CreateSpec.Builder().setType( DiskTypes.HostBusAdapterType.SCSI) .setScsi(new ScsiAddressSpec.Builder(0l).setUnit(0l) .build()) .setNewVmdk(new DiskTypes.VmdkCreateSpec()) .build(); // Create a data disk DiskTypes.CreateSpec dataDiskCreateSpec = new DiskTypes.CreateSpec.Builder().setNewVmdk( new DiskTypes.VmdkCreateSpec()).build(); List<DiskTypes.CreateSpec> disks = Arrays.asList(bootDiskCreateSpec, dataDiskCreateSpec); // Create a nic with standard network backing EthernetTypes.BackingSpec nicBackingSpec = new EthernetTypes.BackingSpec.Builder( BackingType.STANDARD_PORTGROUP).setNetwork( standardNetworkBacking).build(); EthernetTypes.CreateSpec nicCreateSpec = new EthernetTypes.CreateSpec.Builder().setStartConnected(true) .setBacking(nicBackingSpec) .build(); List<EthernetTypes.CreateSpec> nics = Collections.singletonList( nicCreateSpec); // Specify the boot order List<DeviceTypes.EntryCreateSpec> bootDevices = Arrays.asList( new DeviceTypes.EntryCreateSpec.Builder(DeviceTypes.Type.ETHERNET) .build(), new DeviceTypes.EntryCreateSpec.Builder(DeviceTypes.Type.DISK) .build()); VMTypes.CreateSpec vmCreateSpec = new VMTypes.CreateSpec.Builder( this.vmGuestOS).setName(BASIC_VM_NAME) .setBootDevices(bootDevices) .setPlacement(vmPlacementSpec) .setNics(nics) .setDisks(disks) .build(); System.out.println("\n\n#### Example: Creating Basic VM with spec:\n" + vmCreateSpec); this.basicVMId = vmService.create(vmCreateSpec); ...