public VirtualDisk[] getAllIndependentDiskDevice() throws Exception { List<VirtualDisk> independentDisks = new ArrayList<VirtualDisk>(); VirtualDisk[] allDisks = getAllDiskDevice(); if (allDisks.length > 0) { for (VirtualDisk disk : allDisks) { String diskMode = ""; if (disk.getBacking() instanceof VirtualDiskFlatVer1BackingInfo) { diskMode = ((VirtualDiskFlatVer1BackingInfo)disk.getBacking()).getDiskMode(); } else if (disk.getBacking() instanceof VirtualDiskFlatVer2BackingInfo) { diskMode = ((VirtualDiskFlatVer2BackingInfo)disk.getBacking()).getDiskMode(); } else if (disk.getBacking() instanceof VirtualDiskRawDiskMappingVer1BackingInfo) { diskMode = ((VirtualDiskRawDiskMappingVer1BackingInfo)disk.getBacking()).getDiskMode(); } else if (disk.getBacking() instanceof VirtualDiskSparseVer1BackingInfo) { diskMode = ((VirtualDiskSparseVer1BackingInfo)disk.getBacking()).getDiskMode(); } else if (disk.getBacking() instanceof VirtualDiskSparseVer2BackingInfo) { diskMode = ((VirtualDiskSparseVer2BackingInfo)disk.getBacking()).getDiskMode(); } if (diskMode.indexOf("independent") != -1) { independentDisks.add(disk); } } } return independentDisks.toArray(new VirtualDisk[0]); }
private static ArrayList<Integer> getIndependentVirtualDiskKeys(VirtualMachine vm) throws Exception { ArrayList<Integer> diskKeys = Lists.newArrayList(); VirtualDevice[] devices = (VirtualDevice[]) vm.getPropertyByPath("config.hardware.device"); for (int i = 0; i < devices.length; i++) { if (devices[i] instanceof VirtualDisk) { VirtualDisk vDisk = (VirtualDisk) devices[i]; String diskMode = ""; VirtualDeviceBackingInfo vdbi = vDisk.getBacking(); if (vdbi instanceof VirtualDiskFlatVer1BackingInfo) { diskMode = ((VirtualDiskFlatVer1BackingInfo) vdbi).getDiskMode(); } else if (vdbi instanceof VirtualDiskFlatVer2BackingInfo) { diskMode = ((VirtualDiskFlatVer2BackingInfo) vdbi).getDiskMode(); } else if (vdbi instanceof VirtualDiskRawDiskMappingVer1BackingInfo) { diskMode = ((VirtualDiskRawDiskMappingVer1BackingInfo) vdbi).getDiskMode(); } else if (vdbi instanceof VirtualDiskSparseVer1BackingInfo) { diskMode = ((VirtualDiskSparseVer1BackingInfo) vdbi).getDiskMode(); } else if (vdbi instanceof VirtualDiskSparseVer2BackingInfo) { diskMode = ((VirtualDiskSparseVer2BackingInfo) vdbi).getDiskMode(); } if (diskMode.indexOf("independent") != -1) { diskKeys.add(vDisk.getKey()); } } } return diskKeys; }
private static ArrayList<Integer> getIndependentVirtualDiskKeys(VirtualMachine vm) throws Exception { ArrayList<Integer> _diskKeys = new ArrayList<Integer>(); VirtualDevice[] devices = (VirtualDevice[]) vm.getPropertyByPath("config.hardware.device"); for(int i=0; i<devices.length; i++) { if(devices[i] instanceof VirtualDisk) { VirtualDisk vDisk = (VirtualDisk) devices[i]; String diskMode = ""; VirtualDeviceBackingInfo vdbi = vDisk.getBacking(); if(vdbi instanceof VirtualDiskFlatVer1BackingInfo) { diskMode = ((VirtualDiskFlatVer1BackingInfo) vdbi).getDiskMode(); } else if(vdbi instanceof VirtualDiskFlatVer2BackingInfo) { diskMode = ((VirtualDiskFlatVer2BackingInfo)vdbi).getDiskMode(); } else if(vdbi instanceof VirtualDiskRawDiskMappingVer1BackingInfo) { diskMode = ((VirtualDiskRawDiskMappingVer1BackingInfo)vdbi).getDiskMode(); } else if(vdbi instanceof VirtualDiskSparseVer1BackingInfo) { diskMode = ((VirtualDiskSparseVer1BackingInfo)vdbi).getDiskMode(); } else if(vdbi instanceof VirtualDiskSparseVer2BackingInfo) { diskMode = ((VirtualDiskSparseVer2BackingInfo)vdbi).getDiskMode(); } if(diskMode.indexOf("independent") != -1) { _diskKeys.add(vDisk.getKey()); } } } return _diskKeys; }