Federico Simoncelli has uploaded a new change for review. Change subject: [wip] core: remove redundant image listing by pool ......................................................................
[wip] core: remove redundant image listing by pool Change-Id: I6ed7de8141b73cec53899cf277a9fdfdc06f2fc1 Signed-off-by: Federico Simoncelli <fsimo...@redhat.com> --- M backend/manager/dbscripts/repo_files_meta_data_sp.sql M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetImagesListByStoragePoolIdQuery.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetImagesListQuery.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetImagesListQueryBase.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/IsoDomainListSyncronizer.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RepoFileMetaDataDAO.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RepoFileMetaDataDAODbFacadeImpl.java 7 files changed, 16 insertions(+), 111 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/66/13866/1 diff --git a/backend/manager/dbscripts/repo_files_meta_data_sp.sql b/backend/manager/dbscripts/repo_files_meta_data_sp.sql index 0b41568..e568f06 100644 --- a/backend/manager/dbscripts/repo_files_meta_data_sp.sql +++ b/backend/manager/dbscripts/repo_files_meta_data_sp.sql @@ -31,21 +31,8 @@ END; $procedure$ LANGUAGE plpgsql; - -Create or replace FUNCTION GetRepo_files_by_storage_domain_and_storage_pool(v_storage_pool_id UUID, - v_storage_domain_id UUID, v_file_type INTEGER) -RETURNS SETOF storage_domain_file_repos - AS $procedure$ -BEGIN - RETURN QUERY SELECT storage_domain_file_repos.* - FROM storage_domain_file_repos - WHERE storage_domain_id = v_storage_domain_id - AND storage_pool_id = v_storage_pool_id - AND storage_domain_file_repos.file_type = v_file_type - ORDER BY storage_domain_file_repos.last_refreshed; -END; $procedure$ -LANGUAGE plpgsql; - +DROP FUNCTION IF EXISTS GetRepo_files_by_storage_domain_and_storage_pool(v_storage_pool_id UUID, + v_storage_domain_id UUID, v_file_type INTEGER); Create or replace FUNCTION GetRepo_files_by_storage_domain(v_storage_domain_id UUID, v_file_type INTEGER) RETURNS SETOF repo_file_meta_data diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetImagesListByStoragePoolIdQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetImagesListByStoragePoolIdQuery.java index 3d241c9..6466ecc 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetImagesListByStoragePoolIdQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetImagesListByStoragePoolIdQuery.java @@ -1,8 +1,6 @@ package org.ovirt.engine.core.bll; -import java.util.List; -import org.ovirt.engine.core.common.businessentities.RepoFileMetaData; import org.ovirt.engine.core.common.businessentities.storage_pool; import org.ovirt.engine.core.common.queries.GetImagesListByStoragePoolIdParameters; import org.ovirt.engine.core.compat.Guid; @@ -17,19 +15,15 @@ super(parameters); } + /** + * @return The storage domain to get the images from + */ + @Override protected Guid getStorageDomainId() { if (doesUserHavePermissionsOnStoragePool()) { return getDbFacade().getStorageDomainDao().getIsoStorageDomainIdForPool(getStoragePoolId()); } return null; - } - - @Override - protected List<RepoFileMetaData> getUserRequestForStorageDomainRepoFileList() { - return IsoDomainListSyncronizer.getInstance().getUserRequestForStoragePoolAndDomainRepoFileList - (getStoragePoolId(), getStorageDomainId(), - getParameters().getImageType(), - getParameters().getForceRefresh()); } /** diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetImagesListQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetImagesListQuery.java index 311f3a8..4b0af46 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetImagesListQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetImagesListQuery.java @@ -1,8 +1,5 @@ package org.ovirt.engine.core.bll; -import java.util.List; - -import org.ovirt.engine.core.common.businessentities.RepoFileMetaData; import org.ovirt.engine.core.common.queries.GetImagesListParameters; import org.ovirt.engine.core.compat.Guid; @@ -13,16 +10,10 @@ super(parameters); } - protected List<RepoFileMetaData> getUserRequestForStorageDomainRepoFileList() { - return IsoDomainListSyncronizer.getInstance().getUserRequestForStorageDomainRepoFileList - (getStorageDomainId(), - getParameters().getImageType(), - getParameters().getForceRefresh()); - } - /** * @return The storage domain to get the images from */ + @Override protected Guid getStorageDomainId() { return getParameters().getStorageDomainId(); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetImagesListQueryBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetImagesListQueryBase.java index b537512..62d76e0 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetImagesListQueryBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetImagesListQueryBase.java @@ -5,6 +5,7 @@ import org.ovirt.engine.core.common.businessentities.RepoFileMetaData; import org.ovirt.engine.core.common.errors.VdcBllErrors; import org.ovirt.engine.core.common.queries.GetImagesListParametersBase; +import org.ovirt.engine.core.compat.Guid; public abstract class GetImagesListQueryBase<P extends GetImagesListParametersBase> extends QueriesCommandBase<P> { @@ -23,6 +24,13 @@ } } - protected abstract List<RepoFileMetaData> getUserRequestForStorageDomainRepoFileList(); + /** + * @return The storage domain to get the images from + */ + protected abstract Guid getStorageDomainId(); + protected List<RepoFileMetaData> getUserRequestForStorageDomainRepoFileList() { + return IsoDomainListSyncronizer.getInstance().getUserRequestForStorageDomainRepoFileList + (getStorageDomainId(), getParameters().getImageType(), getParameters().getForceRefresh()); + } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/IsoDomainListSyncronizer.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/IsoDomainListSyncronizer.java index 1e2784a..87acc8f 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/IsoDomainListSyncronizer.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/IsoDomainListSyncronizer.java @@ -161,37 +161,6 @@ return repoList; } - /** - * Returns a RepoFilesMetaData list with Iso file names for storage domain Id and with file type extension.<BR> - * If user choose to refresh the cache, and a problem occurs, then returns null. - * - * @param storagePoolId - * - The storage pool Id - * @param storageDomainId - * - The storage domain Id, which we fetch the Iso list from. - * @param imageType - * - The imageType we want to fetch the files from the cache. - * @param forceRefresh - * - Indicates if the domain should be refreshed from VDSM. - * @return List of RepoFilesMetaData files or null (If fetch from VDSM failed). - */ - public List<RepoFileMetaData> getUserRequestForStoragePoolAndDomainRepoFileList(Guid storagePoolId, - Guid storageDomainId, - ImageFileType imageType, - boolean forceRefresh) { - // The result list we send back. - List<RepoFileMetaData> repoList = null; - - if (! isStorageDomainValid(storageDomainId, imageType, forceRefresh)){ - return null; - } - // At any case, if refreshed or not, get Iso list from the cache. - repoList = getCachedIsoListByStoragePoolAndDomainId(storagePoolId, storageDomainId, imageType); - - // Return list of repository files. - return repoList; - } - private boolean refreshRepos(Guid storageDomainId, ImageFileType imageType, boolean forceRefresh) { boolean res = true; List<RepoFileMetaData> tempProblematicRepoFileList = new ArrayList<RepoFileMetaData>(); @@ -348,27 +317,6 @@ } }); } - } - - /** - * Returns the cached Iso file meta data list, of the storage pool Id with the storage domain id. - * - * @param isoStoragePoolId - * - The storage domain Id we want to get the file list from. - * @param isoStorageDomainId - * - The storage pool Id we want to get the file list from. - * @param imageType - * - The file type extension (ISO or Floppy). - * @return List of Iso file fetched from DB, if parameter is invalid returns an empty list. - */ - public List<RepoFileMetaData> getCachedIsoListByStoragePoolAndDomainId(Guid isoStoragePoolId, Guid isoStorageDomainId, ImageFileType imageType) { - List<RepoFileMetaData> fileListMD = new ArrayList<RepoFileMetaData>(); - // Check validation of parameters. - if (isoStorageDomainId != null && isoStoragePoolId != null && VmRunHandler.getInstance().findActiveISODomain(isoStoragePoolId) != null) { - // Get all the Iso files of storage and domain ID. - fileListMD = repoStorageDom.getRepoListForStorageDomainAndStoragePool(isoStoragePoolId, isoStorageDomainId, imageType); - } - return fileListMD; } /** diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RepoFileMetaDataDAO.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RepoFileMetaDataDAO.java index 415950d..fc24e1d 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RepoFileMetaDataDAO.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RepoFileMetaDataDAO.java @@ -31,13 +31,6 @@ public void addRepoFileMap(RepoFileMetaData map); /** - * Returns a list of repository files with specific file extension from storage domain id with specific status. If - * no repository found, will return an empty list. - */ - public List<RepoFileMetaData> getRepoListForStorageDomainAndStoragePool(Guid storagePoolId, Guid storageDomainId, - ImageFileType fileType); - - /** * Returns a list of repository files with specific file extension from storage domain id.<BR/> * If no repository found, will return an empty list. */ diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RepoFileMetaDataDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RepoFileMetaDataDAODbFacadeImpl.java index 3335a0e..3a09587 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RepoFileMetaDataDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/RepoFileMetaDataDAODbFacadeImpl.java @@ -44,22 +44,6 @@ } /** - * Returns a list of repository files with specific file extension from storage domain id with specific status. - */ - @Override - public List<RepoFileMetaData> getRepoListForStorageDomainAndStoragePool(Guid storagePoolId, Guid storageDomainId, - ImageFileType fileType) { - MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("storage_pool_id", - storagePoolId); - parameterSource.addValue("storage_domain_id", storageDomainId); - parameterSource.addValue("file_type", fileType.getValue()); - - return getCallsHandler().executeReadList("GetRepo_files_by_storage_domain_and_storage_pool", - StorageDomainRepoFileMetaDataMapper.instance, - parameterSource); - } - - /** * Returns a list of repository files with specific file extension from storage domain id.<BR/> * If no repository is found, the method will return an empty list. */ -- To view, visit http://gerrit.ovirt.org/13866 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I6ed7de8141b73cec53899cf277a9fdfdc06f2fc1 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Federico Simoncelli <fsimo...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches