@Override public void doInTransactionWithoutResult(TransactionStatus status) { // first delete from image_store_details table, we need to do that since // we are not actually deleting record from main // image_data_store table, so delete cascade will not work _imageStoreDetailsDao.deleteDetails(storeId); _snapshotStoreDao.deletePrimaryRecordsForStore(storeId, DataStoreRole.ImageCache); _volumeStoreDao.deletePrimaryRecordsForStore(storeId); _templateStoreDao.deletePrimaryRecordsForStore(storeId); _imageStoreDao.remove(storeId); } });
private void duplicateCacheStoreRecordsToRegionStore(long storeId) { _templateStoreDao.duplicateCacheRecordsOnRegionStore(storeId); _snapshotStoreDao.duplicateCacheRecordsOnRegionStore(storeId); _volumeStoreDao.duplicateCacheRecordsOnRegionStore(storeId); }
@Override public void updateCapacityBytes(long id, long capacityBytes) { StoragePoolVO pool = createForUpdate(id); pool.setCapacityBytes(capacityBytes); update(id, pool); }
@Override public TemplateDataStoreVO createTemplateDirectDownloadEntry(long templateId, Long size) { TemplateDataStoreVO templateDataStoreVO = new TemplateDataStoreVO(); templateDataStoreVO.setTemplateId(templateId); templateDataStoreVO.setDataStoreRole(DataStoreRole.Image); templateDataStoreVO.setState(State.Ready); templateDataStoreVO.setDownloadState(Status.BYPASSED); templateDataStoreVO.setSize(size == null ? 0l : size); return templateDataStoreVO; }
@Override public boolean equals(Object obj) { if (obj instanceof SnapshotDataStoreVO) { SnapshotDataStoreVO other = (SnapshotDataStoreVO)obj; return (snapshotId == other.getSnapshotId() && dataStoreId == other.getDataStoreId()); } return false; }
@Override public boolean equals(Object obj) { if (obj instanceof VolumeDataStoreVO) { VolumeDataStoreVO other = (VolumeDataStoreVO)obj; return (volumeId == other.getVolumeId() && dataStoreId == other.getDataStoreId()); } return false; }
@Override public ImageStoreEntity getImageStore(String uuid) { ImageStoreVO dataStore = dataStoreDao.findByUuid(uuid); return getImageStore(dataStore.getId()); }
@Override public boolean equals(Object obj) { if (obj instanceof TemplateDataStoreVO) { TemplateDataStoreVO other = (TemplateDataStoreVO)obj; return (templateId == other.getTemplateId() && dataStoreId == other.getDataStoreId()); } return false; }
/** * Return true if the volume should be migrated. Currently only supports migrating volumes on storage pool of the type StoragePoolType.Filesystem. * This ensures that volumes on shared storage are not migrated and those on local storage pools are migrated. */ @Override protected boolean shouldMigrateVolume(StoragePoolVO sourceStoragePool, Host destHost, StoragePoolVO destStoragePool) { return sourceStoragePool.getPoolType() == StoragePoolType.Filesystem; } }
@Override public DataStore getImageStore(long zoneId, long tmpltId) { TemplateDataStoreVO tmpltStore = _tmplStoreDao.findByTemplateZoneDownloadStatus(tmpltId, zoneId, VMTemplateStorageResourceAssoc.Status.DOWNLOADED); if (tmpltStore != null) { return _dataStoreMgr.getDataStore(tmpltStore.getDataStoreId(), DataStoreRole.Image); } return null; }
@Override public void updateCapacityIops(long id, long capacityIops) { StoragePoolVO pool = createForUpdate(id); pool.setCapacityIops(capacityIops); update(id, pool); }
/** * Persist template marking it for direct download to Primary Storage, skipping Secondary Storage */ private void persistDirectDownloadTemplate(long templateId, Long size) { TemplateDataStoreVO directDownloadEntry = templateDataStoreDao.createTemplateDirectDownloadEntry(templateId, size); templateDataStoreDao.persist(directDownloadEntry); }
@Override public List<StoragePoolVO> findPoolsByTags(long dcId, long podId, Long clusterId, String[] tags) { List<StoragePoolVO> storagePools = null; if (tags == null || tags.length == 0) { storagePools = listBy(dcId, podId, clusterId, ScopeType.CLUSTER); } else { String sqlValues = getSqlValuesFromStorageTags(tags); storagePools = findPoolsByDetailsOrTagsInternal(dcId, podId, clusterId, ScopeType.CLUSTER, sqlValues, ValueType.TAGS, tags.length); } return storagePools; }
@Override public String getConfigValue(long id, ConfigKey<?> key) { ImageStoreDetailVO vo = findDetail(id, key.key()); return vo == null ? null : vo.getValue(); }
public ImageStoreDetailsDaoImpl() { super(); storeSearch = createSearchBuilder(); storeSearch.and("store", storeSearch.entity().getResourceId(), SearchCriteria.Op.EQ); storeSearch.done(); }
/** * Returns true if the storage pool type is {@link StoragePoolType.Filesystem}. */ protected boolean isStoragePoolTypeOfFile(StoragePoolVO sourceStoragePool) { return sourceStoragePool.getPoolType() == StoragePoolType.Filesystem; }
@Override public void doInTransactionWithoutResult(TransactionStatus status) { // first delete from image_store_details table, we need to do that since // we are not actually deleting record from main // image_data_store table, so delete cascade will not work _imageStoreDetailsDao.deleteDetails(storeId); _snapshotStoreDao.deletePrimaryRecordsForStore(storeId, DataStoreRole.Image); _volumeStoreDao.deletePrimaryRecordsForStore(storeId); _templateStoreDao.deletePrimaryRecordsForStore(storeId); _imageStoreDao.remove(storeId); } });
@Override public List<StoragePoolVO> findLocalStoragePoolsByTags(long dcId, long podId, Long clusterId, String[] tags) { List<StoragePoolVO> storagePools = null; if (tags == null || tags.length == 0) { storagePools = listBy(dcId, podId, clusterId, ScopeType.HOST); } else { String sqlValues = getSqlValuesFromStorageTags(tags); storagePools = findPoolsByDetailsOrTagsInternal(dcId, podId, clusterId, ScopeType.HOST, sqlValues, ValueType.TAGS, tags.length); } return storagePools; }