Package com.vmware.vim25

Examples of com.vmware.vim25.VirtualDiskFlatVer2BackingInfo


  }
 
  private static void setParentBackingInfo(VirtualDiskFlatVer2BackingInfo backingInfo,
    ManagedObjectReference morDs, String[] parentDatastorePathList) {
   
    VirtualDiskFlatVer2BackingInfo parentBacking = new VirtualDiskFlatVer2BackingInfo();
    parentBacking.setDatastore(morDs);
    parentBacking.setDiskMode(VirtualDiskMode.persistent.toString());
   
    if(parentDatastorePathList.length > 1) {
      String[] nextDatastorePathList = new String[parentDatastorePathList.length -1];
      for(int i = 0; i < parentDatastorePathList.length -1; i++)
        nextDatastorePathList[i] = parentDatastorePathList[i + 1];
      setParentBackingInfo(parentBacking, morDs, nextDatastorePathList);
    }
    parentBacking.setFileName(parentDatastorePathList[0]);
   
    backingInfo.setParent(parentBacking);
  }
View Full Code Here


  }
 
  private static void setParentBackingInfo(VirtualDiskFlatVer2BackingInfo backingInfo,
    Pair<String, ManagedObjectReference>[] parentDatastorePathList) {
   
    VirtualDiskFlatVer2BackingInfo parentBacking = new VirtualDiskFlatVer2BackingInfo();
    parentBacking.setDatastore(parentDatastorePathList[0].second());
    parentBacking.setDiskMode(VirtualDiskMode.persistent.toString());
   
    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

  public static VirtualDevice prepareDiskDevice(VirtualMachineMO vmMo, int controllerKey, String vmdkDatastorePath,
    int sizeInMb, ManagedObjectReference morDs, int deviceNumber, int contextNumber) throws Exception {
   
    VirtualDisk disk = new VirtualDisk();

    VirtualDiskFlatVer2BackingInfo backingInfo = new VirtualDiskFlatVer2BackingInfo();
        backingInfo.setDiskMode(VirtualDiskMode.persistent.toString());
      backingInfo.setThinProvisioned(true);
      backingInfo.setEagerlyScrub(false);
        backingInfo.setDatastore(morDs);
        backingInfo.setFileName(vmdkDatastorePath);
        disk.setBacking(backingInfo);

    if(controllerKey < 0)
      controllerKey = vmMo.getIDEDeviceControllerKey();
        if(deviceNumber < 0)
View Full Code Here

          backingInfo.setDatastore(morDs);
          backingInfo.setFileName(vmdkDatastorePath);
          backingInfo.setParent((VirtualDiskFlatVer1BackingInfo)parentBacking);
          disk.setBacking(backingInfo);
    } else if(parentBacking instanceof VirtualDiskFlatVer2BackingInfo) {
      VirtualDiskFlatVer2BackingInfo backingInfo = new VirtualDiskFlatVer2BackingInfo();
          backingInfo.setDiskMode(((VirtualDiskFlatVer2BackingInfo)parentBacking).getDiskMode());
          backingInfo.setDatastore(morDs);
          backingInfo.setFileName(vmdkDatastorePath);
          backingInfo.setParent((VirtualDiskFlatVer2BackingInfo)parentBacking);
          disk.setBacking(backingInfo);
    } else if(parentBacking instanceof VirtualDiskRawDiskMappingVer1BackingInfo) {
      VirtualDiskRawDiskMappingVer1BackingInfo backingInfo = new VirtualDiskRawDiskMappingVer1BackingInfo();
          backingInfo.setDiskMode(((VirtualDiskRawDiskMappingVer1BackingInfo)parentBacking).getDiskMode());
          backingInfo.setDatastore(morDs);
          backingInfo.setFileName(vmdkDatastorePath);
          backingInfo.setParent((VirtualDiskRawDiskMappingVer1BackingInfo)parentBacking);
          disk.setBacking(backingInfo);
    } else if(parentBacking instanceof VirtualDiskSparseVer1BackingInfo) {
      VirtualDiskSparseVer1BackingInfo backingInfo = new VirtualDiskSparseVer1BackingInfo();
          backingInfo.setDiskMode(((VirtualDiskSparseVer1BackingInfo)parentBacking).getDiskMode());
          backingInfo.setDatastore(morDs);
          backingInfo.setFileName(vmdkDatastorePath);
          backingInfo.setParent((VirtualDiskSparseVer1BackingInfo)parentBacking);
          disk.setBacking(backingInfo);
    } else if(parentBacking instanceof VirtualDiskSparseVer2BackingInfo) {
      VirtualDiskSparseVer2BackingInfo backingInfo = new VirtualDiskSparseVer2BackingInfo();
          backingInfo.setDiskMode(((VirtualDiskSparseVer2BackingInfo)parentBacking).getDiskMode());
          backingInfo.setDatastore(morDs);
          backingInfo.setFileName(vmdkDatastorePath);
          backingInfo.setParent((VirtualDiskSparseVer2BackingInfo)parentBacking);
          disk.setBacking(backingInfo);
    } else {
      throw new Exception("Unsupported disk backing: " + parentBacking.getClass().getCanonicalName());
    }
   
View Full Code Here

   
    VirtualDisk newDisk = new VirtualDisk();
    if(diskType == VirtualDiskType.thin || diskType == VirtualDiskType.preallocated
      || diskType == VirtualDiskType.eagerZeroedThick) {
     
      VirtualDiskFlatVer2BackingInfo backingInfo = new VirtualDiskFlatVer2BackingInfo();
          backingInfo.setDiskMode(diskMode.persistent.toString());
          if(diskType == VirtualDiskType.thin) {
                backingInfo.setThinProvisioned(true);
            } else {
                backingInfo.setThinProvisioned(false);
            }
     
          if(diskType == VirtualDiskType.eagerZeroedThick) {
                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.toString());
          }
           
          backingInfo.setDatastore(morDs);
          backingInfo.setFileName(vmdkDatastorePath);
          newDisk.setBacking(backingInfo);
    }
   
    int deviceNumber = getNextDeviceNumber(controllerKey);
   
View Full Code Here

        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

    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

        List<String> managedIqns = new ArrayList<String>();

        if (virtualDisks != null) {
            for (VirtualDisk virtualDisk : virtualDisks) {
                if (virtualDisk.getBacking() instanceof VirtualDiskFlatVer2BackingInfo) {
                    VirtualDiskFlatVer2BackingInfo backingInfo = (VirtualDiskFlatVer2BackingInfo)virtualDisk.getBacking();
                    String path = backingInfo.getFileName();

                    String search = "[-";
                    int index = path.indexOf(search);

                    if (index > -1) {
View Full Code Here

  public static VirtualDevice prepareDiskDevice(VirtualMachineMO vmMo, int controllerKey, String vmdkDatastorePath,
    int sizeInMb, ManagedObjectReference morDs, int deviceNumber, int contextNumber) throws Exception {

    VirtualDisk disk = new VirtualDisk();

    VirtualDiskFlatVer2BackingInfo backingInfo = new VirtualDiskFlatVer2BackingInfo();
        backingInfo.setDiskMode(VirtualDiskMode.PERSISTENT.value());
      backingInfo.setThinProvisioned(true);
      backingInfo.setEagerlyScrub(false);
        backingInfo.setDatastore(morDs);
        backingInfo.setFileName(vmdkDatastorePath);
        disk.setBacking(backingInfo);

        int ideControllerKey = vmMo.getIDEDeviceControllerKey();
    if(controllerKey < 0)
      controllerKey = ideControllerKey;
View Full Code Here

          backingInfo.setDatastore(morDs);
          backingInfo.setFileName(vmdkDatastorePath);
          backingInfo.setParent((VirtualDiskFlatVer1BackingInfo)parentBacking);
          disk.setBacking(backingInfo);
    } else if(parentBacking instanceof VirtualDiskFlatVer2BackingInfo) {
      VirtualDiskFlatVer2BackingInfo backingInfo = new VirtualDiskFlatVer2BackingInfo();
          backingInfo.setDiskMode(((VirtualDiskFlatVer2BackingInfo)parentBacking).getDiskMode());
          backingInfo.setDatastore(morDs);
          backingInfo.setFileName(vmdkDatastorePath);
          backingInfo.setParent((VirtualDiskFlatVer2BackingInfo)parentBacking);
          disk.setBacking(backingInfo);
    } else if(parentBacking instanceof VirtualDiskRawDiskMappingVer1BackingInfo) {
      VirtualDiskRawDiskMappingVer1BackingInfo backingInfo = new VirtualDiskRawDiskMappingVer1BackingInfo();
          backingInfo.setDiskMode(((VirtualDiskRawDiskMappingVer1BackingInfo)parentBacking).getDiskMode());
          backingInfo.setDatastore(morDs);
          backingInfo.setFileName(vmdkDatastorePath);
          backingInfo.setParent((VirtualDiskRawDiskMappingVer1BackingInfo)parentBacking);
          disk.setBacking(backingInfo);
    } else if(parentBacking instanceof VirtualDiskSparseVer1BackingInfo) {
      VirtualDiskSparseVer1BackingInfo backingInfo = new VirtualDiskSparseVer1BackingInfo();
          backingInfo.setDiskMode(((VirtualDiskSparseVer1BackingInfo)parentBacking).getDiskMode());
          backingInfo.setDatastore(morDs);
          backingInfo.setFileName(vmdkDatastorePath);
          backingInfo.setParent((VirtualDiskSparseVer1BackingInfo)parentBacking);
          disk.setBacking(backingInfo);
    } else if(parentBacking instanceof VirtualDiskSparseVer2BackingInfo) {
      VirtualDiskSparseVer2BackingInfo backingInfo = new VirtualDiskSparseVer2BackingInfo();
          backingInfo.setDiskMode(((VirtualDiskSparseVer2BackingInfo)parentBacking).getDiskMode());
          backingInfo.setDatastore(morDs);
          backingInfo.setFileName(vmdkDatastorePath);
          backingInfo.setParent((VirtualDiskSparseVer2BackingInfo)parentBacking);
          disk.setBacking(backingInfo);
    } else {
      throw new Exception("Unsupported disk backing: " + parentBacking.getClass().getCanonicalName());
    }
View Full Code Here

TOP

Related Classes of com.vmware.vim25.VirtualDiskFlatVer2BackingInfo

Copyright © 2018 www.massapicom. 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.