Federico Simoncelli has uploaded a new change for review. Change subject: restapi: generalize getStoragePoolIdForDomain ......................................................................
restapi: generalize getStoragePoolIdForDomain Change-Id: I176c8508de20e729d7c8b851aa3733cc0aa596cb Signed-off-by: Federico Simoncelli <fsimo...@redhat.com> --- M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDiskResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDisksResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/util/StorageDomainHelper.java 4 files changed, 31 insertions(+), 20 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/38/18438/1 diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendResource.java index 0c11c4a..52cb391 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendResource.java @@ -110,7 +110,7 @@ return clz.cast(result.getReturnValue()); } - protected <T> List<T> getBackendCollection(Class<T> clz, VdcQueryType query, VdcQueryParametersBase queryParams) { + public <T> List<T> getBackendCollection(Class<T> clz, VdcQueryType query, VdcQueryParametersBase queryParams) { try { VdcQueryReturnValue result = runQuery(query, queryParams); if (!result.getSucceeded()) { diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDiskResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDiskResource.java index 5485662..9eb1f41 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDiskResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDiskResource.java @@ -3,6 +3,7 @@ import org.ovirt.engine.api.common.util.QueryHelper; import org.ovirt.engine.api.model.Disk; import org.ovirt.engine.api.model.StorageDomain; +import org.ovirt.engine.api.restapi.util.StorageDomainHelper; import org.ovirt.engine.core.common.queries.GetUnregisteredDiskQueryParameters; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryParametersBase; @@ -30,7 +31,9 @@ VdcQueryReturnValue result = runQuery(VdcQueryType.GetDiskByDiskId, new IdQueryParameters(guid)); if (!result.getSucceeded() || result.getReturnValue() == null) { Guid storageDomainGuid = asGuid(storageDomainId); - disk = super.performGet(VdcQueryType.GetUnregisteredDisk, new GetUnregisteredDiskQueryParameters(guid, storageDomainGuid, parent.getStoragePoolIdForDomain(storageDomainGuid))); + disk = super.performGet(VdcQueryType.GetUnregisteredDisk, + new GetUnregisteredDiskQueryParameters(guid, storageDomainGuid, + StorageDomainHelper.getStoragePoolIdForDomain(this, storageDomainGuid))); } else { // The disk was found in the first get which means it is already registered. We must return nothing since the unregistered // parameter was passed. diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDisksResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDisksResource.java index 6d9c34d..4db25a0 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDisksResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainDisksResource.java @@ -1,7 +1,5 @@ package org.ovirt.engine.api.restapi.resource; -import java.util.List; - import javax.ws.rs.core.Response; import org.ovirt.engine.api.common.util.QueryHelper; @@ -9,12 +7,12 @@ import org.ovirt.engine.api.model.Disks; import org.ovirt.engine.api.model.StorageDomain; import org.ovirt.engine.api.resource.DiskResource; +import org.ovirt.engine.api.restapi.util.StorageDomainHelper; import org.ovirt.engine.core.common.action.AddDiskParameters; import org.ovirt.engine.core.common.action.RegisterDiskParameters; import org.ovirt.engine.core.common.action.RemoveDiskParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.DiskImage; -import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.queries.GetUnregisteredDiskQueryParameters; import org.ovirt.engine.core.common.queries.GetUnregisteredDisksQueryParameters; import org.ovirt.engine.core.common.queries.IdQueryParameters; @@ -39,7 +37,8 @@ public Disks list() { if (QueryHelper.hasMatrixParam(getUriInfo(), UNREGISTERED_CONSTRAINT_PARAMETER)) { return mapCollection(getBackendCollection(VdcQueryType.GetUnregisteredDisks, - new GetUnregisteredDisksQueryParameters(storageDomainId, getStoragePoolIdForDomain(storageDomainId)))); + new GetUnregisteredDisksQueryParameters(storageDomainId, + StorageDomainHelper.getStoragePoolIdForDomain(this, storageDomainId)))); } else { return mapCollection(getBackendCollection(VdcQueryType.GetAllDisksByStorageDomainId, @@ -54,7 +53,8 @@ // We don't just use the information from the Disk object because it's missing a few things like creation // date and last modified date. GetUnregisteredDiskQueryParameters getDiskParams = new GetUnregisteredDiskQueryParameters( - asGuid(disk.getId()), storageDomainId, getStoragePoolIdForDomain(storageDomainId)); + asGuid(disk.getId()), storageDomainId, + StorageDomainHelper.getStoragePoolIdForDomain(this, storageDomainId)); DiskImage unregisteredDisk = getEntity(DiskImage.class, VdcQueryType.GetUnregisteredDisk, getDiskParams, disk.getId()); unregisteredDisk = @@ -99,17 +99,4 @@ return storageDomainId; } - protected Guid getStoragePoolIdForDomain(Guid storageDomainId) { - // Retrieve the storage pools for the storage domain. - IdQueryParameters params = new IdQueryParameters(storageDomainId); - List<StoragePool> storagePools = getBackendCollection(StoragePool.class, VdcQueryType.GetStoragePoolsByStorageDomainId, params); - - if (storagePools != null && !storagePools.isEmpty()) { - // Take the first storage pool. We should only be running on NFS domains and thus should only have a single - // storage pool to deal with. - return storagePools.get(0).getId(); - } else { - return Guid.Empty; - } - } } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/util/StorageDomainHelper.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/util/StorageDomainHelper.java index 66d5aea..21d838e 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/util/StorageDomainHelper.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/util/StorageDomainHelper.java @@ -1,7 +1,14 @@ package org.ovirt.engine.api.restapi.util; +import org.ovirt.engine.api.restapi.resource.BackendResource; +import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.StorageType; import org.ovirt.engine.core.common.businessentities.StorageServerConnections; +import org.ovirt.engine.core.common.queries.IdQueryParameters; +import org.ovirt.engine.core.common.queries.VdcQueryType; +import org.ovirt.engine.core.compat.Guid; + +import java.util.List; public class StorageDomainHelper { @@ -16,4 +23,18 @@ port==null ? null : Integer.toString(port), "0");//TODO: when VSDM and Backend will support this, we will need to externalize portal to the user } + + public static Guid getStoragePoolIdForDomain(BackendResource backendResource, Guid storageDomainId) { + IdQueryParameters params = new IdQueryParameters(storageDomainId); + + List<StoragePool> storagePools = backendResource.getBackendCollection( + StoragePool.class, VdcQueryType.GetStoragePoolsByStorageDomainId, params); + + if (storagePools != null && !storagePools.isEmpty()) { + return storagePools.get(0).getId(); + } else { + return Guid.Empty; + } + } + } -- To view, visit http://gerrit.ovirt.org/18438 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I176c8508de20e729d7c8b851aa3733cc0aa596cb 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