Examples of VirtualDiskFlatVer2BackingInfo


Examples of com.vmware.vim25.VirtualDiskFlatVer2BackingInfo

    }

    @SuppressWarnings("unchecked")
    private static void setParentBackingInfo(VirtualDiskFlatVer2BackingInfo backingInfo, Pair<String, ManagedObjectReference>[] parentDatastorePathList) {

        VirtualDiskFlatVer2BackingInfo parentBacking = new VirtualDiskFlatVer2BackingInfo();
        parentBacking.setDatastore(parentDatastorePathList[0].second());
        parentBacking.setDiskMode(VirtualDiskMode.PERSISTENT.value());

        if (parentDatastorePathList.length > 1) {
            Pair<String, ManagedObjectReference>[] nextDatastorePathList = new Pair[parentDatastorePathList.length - 1];
            for (int i = 0; i < parentDatastorePathList.length - 1; i++)
                nextDatastorePathList[i] = parentDatastorePathList[i + 1];
            setParentBackingInfo(parentBacking, nextDatastorePathList);
        }
        parentBacking.setFileName(parentDatastorePathList[0].first());

        backingInfo.setParent(parentBacking);
    }
View Full Code Here

Examples of com.vmware.vim25.VirtualDiskFlatVer2BackingInfo

        }

        VirtualDisk newDisk = new VirtualDisk();
        if (diskType == VirtualDiskType.THIN || diskType == VirtualDiskType.PREALLOCATED || diskType == VirtualDiskType.EAGER_ZEROED_THICK) {

            VirtualDiskFlatVer2BackingInfo backingInfo = new VirtualDiskFlatVer2BackingInfo();
            backingInfo.setDiskMode(VirtualDiskMode.PERSISTENT.value());
            if (diskType == VirtualDiskType.THIN) {
                backingInfo.setThinProvisioned(true);
            } else {
                backingInfo.setThinProvisioned(false);
            }

            if (diskType == VirtualDiskType.EAGER_ZEROED_THICK) {
                backingInfo.setEagerlyScrub(true);
            } else {
                backingInfo.setEagerlyScrub(false);
            }

            backingInfo.setDatastore(morDs);
            backingInfo.setFileName(vmdkDatastorePath);
            newDisk.setBacking(backingInfo);
        } else if (diskType == VirtualDiskType.RDM || diskType == VirtualDiskType.RDMP) {
            VirtualDiskRawDiskMappingVer1BackingInfo backingInfo = new VirtualDiskRawDiskMappingVer1BackingInfo();
            if (diskType == VirtualDiskType.RDM) {
                backingInfo.setCompatibilityMode("virtualMode");
            } else {
                backingInfo.setCompatibilityMode("physicalMode");
            }
            backingInfo.setDeviceName(rdmDeviceName);
            if (diskType == VirtualDiskType.RDM) {
                backingInfo.setDiskMode(VirtualDiskMode.PERSISTENT.value());
            }

            backingInfo.setDatastore(morDs);
            backingInfo.setFileName(vmdkDatastorePath);
            newDisk.setBacking(backingInfo);
        }

        int deviceNumber = getNextDeviceNumber(controllerKey);
        if (controllerKey != ideControllerKey && VmwareHelper.isReservedScsiDeviceNumber(deviceNumber))
View Full Code Here

Examples of com.vmware.vim25.VirtualDiskFlatVer2BackingInfo

    public String getVmdkFileBaseName(VirtualDisk disk) throws Exception {
        String vmdkFileBaseName = null;
        VirtualDeviceBackingInfo backingInfo = disk.getBacking();
        if(backingInfo instanceof VirtualDiskFlatVer2BackingInfo) {
            VirtualDiskFlatVer2BackingInfo diskBackingInfo = (VirtualDiskFlatVer2BackingInfo)backingInfo;
            DatastoreFile dsBackingFile = new DatastoreFile(diskBackingInfo.getFileName());
            vmdkFileBaseName = dsBackingFile.getFileBaseName();
        }
        return vmdkFileBaseName;
    }
View Full Code Here

Examples of com.vmware.vim25.VirtualDiskFlatVer2BackingInfo

                if (device instanceof VirtualDisk) {
                    s_logger.info("Test against disk device, controller key: " + device.getControllerKey() + ", unit number: " + device.getUnitNumber());

                    VirtualDeviceBackingInfo backingInfo = ((VirtualDisk)device).getBacking();
                    if (backingInfo instanceof VirtualDiskFlatVer2BackingInfo) {
                        VirtualDiskFlatVer2BackingInfo diskBackingInfo = (VirtualDiskFlatVer2BackingInfo)backingInfo;
                        do {
                            s_logger.info("Test against disk backing : " + diskBackingInfo.getFileName());

                            DatastoreFile dsBackingFile = new DatastoreFile(diskBackingInfo.getFileName());
                            String backingBaseName = dsBackingFile.getFileBaseName();
                            if (matchExactly) {
                                if (backingBaseName.equalsIgnoreCase(srcBaseName)) {
                                    String deviceNumbering = getDeviceBusName(devices, device);

                                    s_logger.info("Disk backing : " + diskBackingInfo.getFileName() + " matches ==> " + deviceNumbering);
                                    return new Pair<VirtualDisk, String>((VirtualDisk)device, deviceNumbering);
                                }
                            } else {
                                if (backingBaseName.contains(srcBaseName)) {
                                    String deviceNumbering = getDeviceBusName(devices, device);

                                    s_logger.info("Disk backing : " + diskBackingInfo.getFileName() + " matches ==> " + deviceNumbering);
                                    return new Pair<VirtualDisk, String>((VirtualDisk)device, deviceNumbering);
                                }
                            }

                            diskBackingInfo = diskBackingInfo.getParent();
                        } while (diskBackingInfo != null);
                    }
                }
            }
        }
View Full Code Here

Examples of com.vmware.vim25.VirtualDiskFlatVer2BackingInfo

                if (device instanceof VirtualDisk) {
                    s_logger.info("Test against disk device, controller key: " + device.getControllerKey() + ", unit number: " + device.getUnitNumber());

                    VirtualDeviceBackingInfo backingInfo = ((VirtualDisk)device).getBacking();
                    if (backingInfo instanceof VirtualDiskFlatVer2BackingInfo) {
                        VirtualDiskFlatVer2BackingInfo diskBackingInfo = (VirtualDiskFlatVer2BackingInfo)backingInfo;

                        String deviceNumbering = getDeviceBusName(devices, device);
                        if (deviceNumbering.equals(deviceBusName))
                            return diskBackingInfo.getFileName();
                    }
                }
            }
        }
View Full Code Here

Examples of com.vmware.vim25.VirtualDiskFlatVer2BackingInfo

        if (devices != null && devices.size() > 0) {
            for (VirtualDevice device : devices) {
                if (device instanceof VirtualDisk) {
                    VirtualDeviceBackingInfo backingInfo = ((VirtualDisk)device).getBacking();
                    if (backingInfo instanceof VirtualDiskFlatVer2BackingInfo) {
                        VirtualDiskFlatVer2BackingInfo diskBackingInfo = (VirtualDiskFlatVer2BackingInfo)backingInfo;

                        while (diskBackingInfo != null) {
                            String deviceBusName = getDeviceBusName(devices, device);
                            builder.addDisk(deviceBusName, diskBackingInfo.getFileName());
                            diskBackingInfo = diskBackingInfo.getParent();
                        }
                    }
                }
            }
        }
View Full Code Here

Examples of com.vmware.vim25.VirtualDiskFlatVer2BackingInfo

        if (!(backingInfo instanceof VirtualDiskFlatVer2BackingInfo)) {
            throw new Exception("Unsupported VirtualDeviceBackingInfo");
        }

        List<Pair<String, ManagedObjectReference>> pathList = new ArrayList<Pair<String, ManagedObjectReference>>();
        VirtualDiskFlatVer2BackingInfo diskBackingInfo = (VirtualDiskFlatVer2BackingInfo)backingInfo;

        if (!followChain) {
            pathList.add(new Pair<String, ManagedObjectReference>(diskBackingInfo.getFileName(), diskBackingInfo.getDatastore()));
            return pathList;
        }

        Pair<DatacenterMO, String> dcPair = getOwnerDatacenter();
        VirtualMachineFileInfo vmFilesInfo = getFileInfo();
        DatastoreFile snapshotDirFile = new DatastoreFile(vmFilesInfo.getSnapshotDirectory());
        DatastoreFile vmxDirFile = new DatastoreFile(vmFilesInfo.getVmPathName());

        do {
            if (diskBackingInfo.getParent() != null) {
                pathList.add(new Pair<String, ManagedObjectReference>(diskBackingInfo.getFileName(), diskBackingInfo.getDatastore()));
                diskBackingInfo = diskBackingInfo.getParent();
            } else {
                // try getting parent info from VMDK file itself
                byte[] content = null;
                try {
                    String url = getContext().composeDatastoreBrowseUrl(dcPair.second(), diskBackingInfo.getFileName());
                    content = getContext().getResourceContent(url);
                    if (content == null || content.length == 0) {
                        break;
                    }

                    pathList.add(new Pair<String, ManagedObjectReference>(diskBackingInfo.getFileName(), diskBackingInfo.getDatastore()));
                } catch (Exception e) {
                    // if snapshot directory has been changed to place other than default. VMware has a bug
                    // that its corresponding disk backing info is not updated correctly. therefore, we will try search
                    // in snapshot directory one more time
                    DatastoreFile currentFile = new DatastoreFile(diskBackingInfo.getFileName());
                    String vmdkFullDsPath = snapshotDirFile.getCompanionPath(currentFile.getFileName());

                    String url = getContext().composeDatastoreBrowseUrl(dcPair.second(), vmdkFullDsPath);
                    content = getContext().getResourceContent(url);
                    if (content == null || content.length == 0) {
                        break;
                    }

                    pathList.add(new Pair<String, ManagedObjectReference>(vmdkFullDsPath, diskBackingInfo.getDatastore()));
                }

                VmdkFileDescriptor descriptor = new VmdkFileDescriptor();
                descriptor.parse(content);
                if (descriptor.getParentFileName() != null && !descriptor.getParentFileName().isEmpty()) {
                    // create a fake one
                    VirtualDiskFlatVer2BackingInfo parentDiskBackingInfo = new VirtualDiskFlatVer2BackingInfo();
                    parentDiskBackingInfo.setDatastore(diskBackingInfo.getDatastore());

                    String parentFileName = descriptor.getParentFileName();
                    if (parentFileName.startsWith("/")) {
                        int fileNameStartPos = parentFileName.lastIndexOf("/");
                        parentFileName = parentFileName.substring(fileNameStartPos + 1);
                        parentDiskBackingInfo.setFileName(vmxDirFile.getCompanionPath(parentFileName));
                    } else {
                        parentDiskBackingInfo.setFileName(snapshotDirFile.getCompanionPath(parentFileName));
                    }
                    diskBackingInfo = parentDiskBackingInfo;
                } else {
                    break;
                }
View Full Code Here

Examples of com.vmware.vim25.VirtualDiskFlatVer2BackingInfo

        for (VirtualDevice device : devices) {
            if (device instanceof VirtualDisk) {
                VirtualDeviceConfigSpec deviceConfigSpec = new VirtualDeviceConfigSpec();

                VirtualDiskFlatVer2BackingInfo diskBackingInfo = (VirtualDiskFlatVer2BackingInfo)device.getBacking();

                DatastoreFile dsBackingFile = new DatastoreFile(diskBackingInfo.getFileName());
                String backingBaseName = dsBackingFile.getFileBaseName();
                String deviceNumbering = getDeviceBusName(devices, device);
                if (backingBaseName.equalsIgnoreCase(vmdkBaseName) || (deviceBusName != null && deviceBusName.equals(deviceNumbering))) {
                    continue;
                } else {
                    s_logger.info("Detach " + diskBackingInfo.getFileName() + " from " + getName());

                    detachedDiskFiles.add(diskBackingInfo.getFileName());

                    deviceConfigSpec.setDevice(device);
                    deviceConfigSpec.setOperation(VirtualDeviceConfigSpecOperation.REMOVE);

                    reConfigSpec.getDeviceChange().add(deviceConfigSpec);
View Full Code Here

Examples of com.vmware.vim25.VirtualDiskFlatVer2BackingInfo

    VirtualDisk newDisk = new VirtualDisk();
    if(diskType == VirtualDiskType.THIN || diskType == VirtualDiskType.PREALLOCATED
      || diskType == VirtualDiskType.EAGER_ZEROED_THICK) {

      VirtualDiskFlatVer2BackingInfo backingInfo = new VirtualDiskFlatVer2BackingInfo();
          backingInfo.setDiskMode(diskMode.PERSISTENT.value());
          if(diskType == VirtualDiskType.THIN) {
                backingInfo.setThinProvisioned(true);
            } else {
                backingInfo.setThinProvisioned(false);
            }

          if(diskType == VirtualDiskType.EAGER_ZEROED_THICK) {
                backingInfo.setEagerlyScrub(true);
            } else {
                backingInfo.setEagerlyScrub(false);
            }

          backingInfo.setDatastore(morDs);
          backingInfo.setFileName(vmdkDatastorePath);
          newDisk.setBacking(backingInfo);
    } else if(diskType == VirtualDiskType.RDM || diskType == VirtualDiskType.RDMP) {
      VirtualDiskRawDiskMappingVer1BackingInfo backingInfo =
        new VirtualDiskRawDiskMappingVer1BackingInfo();
      if(diskType == VirtualDiskType.RDM) {
        backingInfo.setCompatibilityMode("virtualMode");
          } else {
            backingInfo.setCompatibilityMode("physicalMode");
          }
          backingInfo.setDeviceName(rdmDeviceName);
          if(diskType == VirtualDiskType.RDM) {
            backingInfo.setDiskMode(diskMode.PERSISTENT.value());
          }

          backingInfo.setDatastore(morDs);
          backingInfo.setFileName(vmdkDatastorePath);
          newDisk.setBacking(backingInfo);
    }

    int deviceNumber = getNextDeviceNumber(controllerKey);
    if(controllerKey != ideControllerKey && VmwareHelper.isReservedScsiDeviceNumber(deviceNumber))
View Full Code Here

Examples of com.vmware.vim25.VirtualDiskFlatVer2BackingInfo

        if(device instanceof VirtualDisk) {
          s_logger.info("Test against disk device, controller key: " + device.getControllerKey() + ", unit number: " + device.getUnitNumber());

          VirtualDeviceBackingInfo backingInfo = ((VirtualDisk)device).getBacking();
          if(backingInfo instanceof VirtualDiskFlatVer2BackingInfo) {
            VirtualDiskFlatVer2BackingInfo diskBackingInfo = (VirtualDiskFlatVer2BackingInfo)backingInfo;
            do {
              s_logger.info("Test against disk backing : " + diskBackingInfo.getFileName());

              DatastoreFile dsBackingFile = new DatastoreFile(diskBackingInfo.getFileName());
              String backingBaseName = dsBackingFile.getFileBaseName();
              if(matchExactly) {
                if(backingBaseName .equalsIgnoreCase(srcBaseName)) {
                  String deviceNumbering = getDeviceBusName(devices, device);

                  s_logger.info("Disk backing : " + diskBackingInfo.getFileName() + " matches ==> " + deviceNumbering);
                  return new Pair<VirtualDisk, String>((VirtualDisk)device, deviceNumbering);
                }
              } else {
                if(backingBaseName.contains(srcBaseName)) {
                  String deviceNumbering = getDeviceBusName(devices, device);

                  s_logger.info("Disk backing : " + diskBackingInfo.getFileName() + " matches ==> " + deviceNumbering);
                  return new Pair<VirtualDisk, String>((VirtualDisk)device, deviceNumbering);
                }
              }

              diskBackingInfo = diskBackingInfo.getParent();
            } while(diskBackingInfo != null);
          }
        }
      }
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.