com.cloud.storage.Volume.getPoolId()方法的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(6.1k)|赞(0)|评价(0)|浏览(134)

本文整理了Java中com.cloud.storage.Volume.getPoolId()方法的一些代码示例,展示了Volume.getPoolId()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Volume.getPoolId()方法的具体详情如下:
包路径:com.cloud.storage.Volume
类名称:Volume
方法名:getPoolId

Volume.getPoolId介绍

暂无

代码示例

代码示例来源:origin: apache/cloudstack

private DataStore pickDataStoreFromVolumes(List<VolumeVO> volumes) {
  DataStore dataStore = null;
  for (Volume vol : volumes) {
    if (doesVolumeStateCheckout(vol)) {
      dataStore = _dataStoreMgr.getDataStore(vol.getPoolId(), DataStoreRole.Primary);
      if (dataStore != null) {
        return dataStore;
      }
    }
  }
  return dataStore;
}

代码示例来源:origin: apache/cloudstack

@Override
public boolean volumeOnSharedStoragePool(Volume volume) {
  Long poolId = volume.getPoolId();
  if (poolId == null) {
    return false;
  } else {
    StoragePoolVO pool = _storagePoolDao.findById(poolId);
    if (pool == null) {
      return false;
    } else {
      return (pool.getScope() == ScopeType.HOST) ? false : true;
    }
  }
}

代码示例来源:origin: apache/cloudstack

private HashMap<StoragePool, List<Volume>> getVolumeUuidOnHost(Host agent) {
  List<VMInstanceVO> vm_list = vmInstanceDao.listByHostId(agent.getId());
  List<VolumeVO> volume_list = new ArrayList<VolumeVO>();
  for (VirtualMachine vm : vm_list) {
    List<VolumeVO> vm_volume_list = volumeDao.findByInstance(vm.getId());
    volume_list.addAll(vm_volume_list);
  }
  HashMap<StoragePool, List<Volume>> poolVolMap = new HashMap<StoragePool, List<Volume>>();
  for (Volume vol : volume_list) {
    StoragePool sp = storagePool.findById(vol.getPoolId());
    if (!poolVolMap.containsKey(sp)) {
      List<Volume> list = new ArrayList<Volume>();
      list.add(vol);
      poolVolMap.put(sp, list);
    } else {
      poolVolMap.get(sp).add(vol);
    }
  }
  return poolVolMap;
}

代码示例来源:origin: apache/cloudstack

@Override
public Answer sendToPool(Volume vol, Command cmd) {
  StoragePool pool = (StoragePool)dataStoreMgr.getPrimaryDataStore(vol.getPoolId());
  long[] hostIdsToTryFirst = null;

代码示例来源:origin: apache/cloudstack

/**
 * For each one of the volumes we will map it to a storage pool that is available via the target host.
 * An exception is thrown if we cannot find a storage pool that is accessible in the target host to migrate the volume to.
 */
protected void createStoragePoolMappingsForVolumes(VirtualMachineProfile profile, Host targetHost, Map<Volume, StoragePool> volumeToPoolObjectMap, List<Volume> allVolumes) {
  for (Volume volume : allVolumes) {
    StoragePoolVO currentPool = _storagePoolDao.findById(volume.getPoolId());
    executeManagedStorageChecksWhenTargetStoragePoolNotProvided(targetHost, currentPool, volume);
    if (ScopeType.HOST.equals(currentPool.getScope()) || isStorageCrossClusterMigration(targetHost, currentPool)) {
      createVolumeToStoragePoolMappingIfPossible(profile, targetHost, volumeToPoolObjectMap, volume, currentPool);
    } else {
      volumeToPoolObjectMap.put(volume, currentPool);
    }
  }
}

代码示例来源:origin: apache/cloudstack

protected VolumeVO duplicateVolumeOnAnotherStorage(Volume volume, StoragePool pool) {
  Long lastPoolId = volume.getPoolId();
  String folder = pool.getPath();
  // For SMB, pool credentials are also stored in the uri query string.  We trim the query string
  // part  here to make sure the credentials do not get stored in the db unencrypted.
  if (pool.getPoolType() == StoragePoolType.SMB && folder != null && folder.contains("?")) {
    folder = folder.substring(0, folder.indexOf("?"));
  }
  VolumeVO newVol = new VolumeVO(volume);
  newVol.setInstanceId(null);
  newVol.setChainInfo(null);
  newVol.setPath(null);
  newVol.setFolder(folder);
  newVol.setPodId(pool.getPodId());
  newVol.setPoolId(pool.getId());
  newVol.setLastPoolId(lastPoolId);
  newVol.setPodId(pool.getPodId());
  return volDao.persist(newVol);
}

代码示例来源:origin: apache/cloudstack

/**
 * We use {@link StoragePoolAllocator} objects to find storage pools connected to the targetHost where we would be able to allocate the given volume.
 */
protected List<StoragePool> getCandidateStoragePoolsToMigrateLocalVolume(VirtualMachineProfile profile, Host targetHost, Volume volume) {
  List<StoragePool> poolList = new ArrayList<>();
  DiskOfferingVO diskOffering = _diskOfferingDao.findById(volume.getDiskOfferingId());
  DiskProfile diskProfile = new DiskProfile(volume, diskOffering, profile.getHypervisorType());
  DataCenterDeployment plan = new DataCenterDeployment(targetHost.getDataCenterId(), targetHost.getPodId(), targetHost.getClusterId(), targetHost.getId(), null, null);
  ExcludeList avoid = new ExcludeList();
  StoragePoolVO volumeStoragePool = _storagePoolDao.findById(volume.getPoolId());
  if (volumeStoragePool.isLocal()) {
    diskProfile.setUseLocalStorage(true);
  }
  for (StoragePoolAllocator allocator : _storagePoolAllocators) {
    List<StoragePool> poolListFromAllocator = allocator.allocateToPool(diskProfile, profile, plan, avoid, StoragePoolAllocator.RETURN_UPTO_ALL);
    if (CollectionUtils.isEmpty(poolListFromAllocator)) {
      continue;
    }
    for (StoragePool pool : poolListFromAllocator) {
      if (pool.isLocal() || isStorageCrossClusterMigration(targetHost, volumeStoragePool)) {
        poolList.add(pool);
      }
    }
  }
  return poolList;
}

代码示例来源:origin: apache/cloudstack

private VolumeVO duplicateVolumeOnAnotherStorage(Volume volume, StoragePoolVO storagePoolVO) {
  Long lastPoolId = volume.getPoolId();
  VolumeVO newVol = new VolumeVO(volume);
  newVol.setInstanceId(null);
  newVol.setChainInfo(null);
  newVol.setPath(null);
  newVol.setFolder(null);
  newVol.setPodId(storagePoolVO.getPodId());
  newVol.setPoolId(storagePoolVO.getId());
  newVol.setLastPoolId(lastPoolId);
  return _volumeDao.persist(newVol);
}

代码示例来源:origin: apache/cloudstack

_iScsiName = that.get_iScsiName();
diskOfferingId = that.getDiskOfferingId();
poolId = that.getPoolId();
attached = that.getAttached();
chainInfo = that.getChainInfo();

代码示例来源:origin: apache/cloudstack

StoragePoolVO volumePool = _storagePoolDao.findByIdIncludingRemoved(volume.getPoolId());
  DataStore dataStore = volume.getPoolId() != null ? dataStoreMgr.getDataStore(volume.getPoolId(), DataStoreRole.Primary) : null;

代码示例来源:origin: apache/cloudstack

DataTO volTO = volumeInfo.getTO();
DiskTO disk = storageMgr.getDiskWithThrottling(volTO, vol.getVolumeType(), vol.getDeviceId(), vol.getPath(), vm.getServiceOfferingId(), vol.getDiskOfferingId());
DataStore dataStore = dataStoreMgr.getDataStore(vol.getPoolId(), DataStoreRole.Primary);
  Boolean value = CapacityManager.VmwareCreateCloneFull.valueIn(vol.getPoolId());
  if (value != null && value) {
    cloneType = UserVmCloneType.full;

代码示例来源:origin: apache/cloudstack

StoragePoolVO storagePool = _storagePoolDao.findById(volume.getPoolId());

相关文章