// set disk entities, include system/swap/data disk
Set<DiskEntity> diskEntities = nodeEntity.getDisks();
// system disk
DiskEntity systemDisk = nodeEntity.findSystemDisk();
if (systemDisk == null)
systemDisk = new DiskEntity(nodeEntity.getVmName() + ".vmdk");
systemDisk.setDiskType(DiskType.SYSTEM_DISK.getType());
systemDisk.setExternalAddress(DiskEntity
.getSystemDiskExternalAddress());
systemDisk.setNodeEntity(nodeEntity);
systemDisk.setDatastoreName(vNode.getTargetDs());
VcVmUtil.populateDiskInfo(systemDisk, vNode.getVmMobId());
diskEntities.add(systemDisk);
// swap and data disk
for (Disk disk : vNode.getVmSchema().diskSchema.getDisks()) {
DiskEntity newDisk = nodeEntity.findDisk(disk.name);
if (newDisk == null) {
newDisk = new DiskEntity(disk.name);
diskEntities.add(newDisk);
}
newDisk.setSizeInMB(disk.initialSizeMB);
newDisk.setAllocType(disk.allocationType.toString());
newDisk.setDatastoreName(disk.datastore);
newDisk.setDiskType(disk.type);
newDisk.setExternalAddress(disk.externalAddress);
newDisk.setNodeEntity(nodeEntity);
// get vm object and find the vmdk path
VcVmUtil.populateDiskInfo(newDisk, vNode.getVmMobId());
}
}