@Override public long getLastSnapshot(long volumeId, DataStoreRole role) { TransactionLegacy txn = TransactionLegacy.currentTxn(); PreparedStatement pstmt = null; String sql = GET_LAST_SNAPSHOT; try { pstmt = txn.prepareAutoCloseStatement(sql); pstmt.setLong(1, volumeId); pstmt.setString(2, role.toString()); ResultSet rs = pstmt.executeQuery(); if (rs.next()) { return rs.getLong(1); } } catch (Exception ex) { s_logger.error("error getting last snapshot", ex); } return 0; }
protected boolean moveBetweenPrimaryImage(DataStore srcStore, DataStore destStore) { DataStoreRole srcRole = srcStore.getRole(); DataStoreRole destRole = destStore.getRole(); if ((srcRole == DataStoreRole.Primary && destRole.isImageStore()) || (srcRole.isImageStore() && destRole == DataStoreRole.Primary)) { return true; } else { return false; } }
TemplateDataStoreVO templateStore = _tmplStoreDao.findByTemplate(firstCommand.getEntityId(), DataStoreRole.getRole(firstCommand.getDataToRole())); if (templateStore != null) { templateStore.setExtractUrl(url);
if (!DataStoreRole.Primary.equals(dataStoreRole)) { try {
@Override public SnapshotDataStoreVO findOldestSnapshotForVolume(Long volumeId, DataStoreRole role) { TransactionLegacy txn = TransactionLegacy.currentTxn(); try ( PreparedStatement pstmt = txn.prepareStatement(findOldestSnapshot); ){ pstmt.setString(1, role.toString()); pstmt.setLong(2, volumeId); try (ResultSet rs = pstmt.executeQuery();) { while (rs.next()) { long sid = rs.getLong(1); long snid = rs.getLong(3); return findByStoreSnapshot(role, sid, snid); } } } catch (SQLException e) { s_logger.debug("Failed to find oldest snapshot for volume: " + volumeId + " due to: " + e.toString()); } return null; }
@Override public SnapshotDataStoreVO findLatestSnapshotForVolume(Long volumeId, DataStoreRole role) { TransactionLegacy txn = TransactionLegacy.currentTxn(); try ( PreparedStatement pstmt = txn.prepareStatement(findLatestSnapshot); ){ pstmt.setString(1, role.toString()); pstmt.setLong(2, volumeId); try (ResultSet rs = pstmt.executeQuery();) { while (rs.next()) { long sid = rs.getLong(1); long snid = rs.getLong(3); return findByStoreSnapshot(role, sid, snid); } } } catch (SQLException e) { s_logger.debug("Failed to find latest snapshot for volume: " + volumeId + " due to: " + e.toString()); } return null; }
protected boolean needCacheStorage(DataObject srcData, DataObject destData) { DataTO srcTO = srcData.getTO(); DataStoreTO srcStoreTO = srcTO.getDataStore(); if (srcStoreTO instanceof NfsTO || srcStoreTO.getRole() == DataStoreRole.ImageCache) { return false; } DataTO destTO = destData.getTO(); DataStoreTO destStoreTO = destTO.getDataStore(); if (destStoreTO instanceof NfsTO || destStoreTO.getRole() == DataStoreRole.ImageCache) { return false; } if (s_logger.isDebugEnabled()) { s_logger.debug("needCacheStorage true, dest at " + destTO.getPath() + " dest role " + destStoreTO.getRole().toString() + srcTO.getPath() + " src role " + srcStoreTO.getRole().toString()); } return true; }
private boolean needCacheStorage(DataObject srcData, DataObject destData) { DataTO srcTO = srcData.getTO(); DataStoreTO srcStoreTO = srcTO.getDataStore(); DataTO destTO = destData.getTO(); DataStoreTO destStoreTO = destTO.getDataStore(); // both snapshot and volume are on primary datastore - no need for a cache storage as hypervisor will copy directly if (srcStoreTO instanceof PrimaryDataStoreTO && destStoreTO instanceof PrimaryDataStoreTO) { return false; } if (srcStoreTO instanceof NfsTO || srcStoreTO.getRole() == DataStoreRole.ImageCache) { return false; } if (destStoreTO instanceof NfsTO || destStoreTO.getRole() == DataStoreRole.ImageCache) { return false; } if (LOGGER.isDebugEnabled()) { LOGGER.debug("needCacheStorage true; dest at " + destTO.getPath() + ", dest role " + destStoreTO.getRole().toString() + "; src at " + srcTO.getPath() + ", src role " + srcStoreTO.getRole().toString()); } return true; }
@Override @DB public SnapshotDataStoreVO findParent(DataStoreRole role, Long storeId, Long volumeId) { if(isSnapshotChainingRequired(volumeId)) { SearchCriteria<SnapshotDataStoreVO> sc = parentSnapshotSearch.create(); sc.setParameters("volume_id", volumeId); sc.setParameters("store_role", role.toString()); sc.setParameters("state", ObjectInDataStoreStateMachine.State.Ready.name()); sc.setParameters("store_id", storeId); List<SnapshotDataStoreVO> snapshotList = listBy(sc, new Filter(SnapshotDataStoreVO.class, "created", false, null, null)); if (snapshotList != null && snapshotList.size() != 0) { return snapshotList.get(0); } } return null; }
if (s_logger.isDebugEnabled()) { DataStore srcStore = srcVolume.getDataStore(); String srcRole = (srcStore != null && srcStore.getRole() != null ? srcVolume.getDataStore().getRole().toString() : "<unknown role>");
templateOnStore.getDataStore().getRole().toString());
vol.getName(), vol.getFormat().toString(), dataObject.getDataStore().getUri(), dataObject.getDataStore().getRole().toString()); command.setLocalPath(volumeStore.getLocalDownloadPath());