Ricky Hopper has uploaded a new change for review. Change subject: core: Add scan domain query (revised) ......................................................................
core: Add scan domain query (revised) Update of query in response to code review. Some comments: 1) The reason this returns a list of Guid rather than DiskImage is because the DiskImages that are loaded are only those that oVirt currently recognizes. To return DiskImages, the query would have to construct those images itself, as opposed to letting whatever workflow calls this query handle that. 2) There is no corresponding vdsm patch for the getImagesList functionality; that method is already in vdsm, it just hadn't been implemented through oVirt yet. 3) This query will be used whenever disks are created outside of oVirt's scope - for example, through the storage controller. A pluign we are writing will need to implement this functionality. Change-Id: I7bf663026c9f3b515f416a2fbb5957fcefc7796f Signed-off-by: Ricky Hopper <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ScanDomainQuery.java D backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ScanDomainParameters.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/GetImagesListVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/ImagesListReturnForXmlRpc.java 4 files changed, 18 insertions(+), 41 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/26/8726/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ScanDomainQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ScanDomainQuery.java index 2f6980f..2a6a144 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ScanDomainQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ScanDomainQuery.java @@ -5,7 +5,7 @@ import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.interfaces.VDSBrokerFrontend; -import org.ovirt.engine.core.common.queries.ScanDomainParameters; +import org.ovirt.engine.core.common.queries.StorageDomainQueryParametersBase; import org.ovirt.engine.core.common.vdscommands.GetImagesListVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; @@ -22,7 +22,7 @@ * * @param <P> */ -public class ScanDomainQuery<P extends ScanDomainParameters> extends QueriesCommandBase<P> { +public class ScanDomainQuery<P extends StorageDomainQueryParametersBase> extends QueriesCommandBase<P> { private static final Log logger = LogFactory.getLog(ScanDomainQuery.class); @@ -34,26 +34,23 @@ protected void executeQueryCommand() { // first, run getImagesList query into vdsm to get all of the images on the storage domain - then store in imagesList VDSBrokerFrontend vdsBroker = getBackend().getResourceManager(); - VDSReturnValue imagesListResult = vdsBroker.RunVdsCommand(VDSCommandType.GetImagesList, new GetImagesListVDSCommandParameters(getParameters().getDomainId(), DbFacade.getInstance() - .getStoragePoolDAO() + VDSReturnValue imagesListResult = vdsBroker.RunVdsCommand(VDSCommandType.GetImagesList, new GetImagesListVDSCommandParameters(getParameters().getStorageDomainId(), DbFacade.getInstance() + .getStoragePoolDao() .getAllForStorageDomain( - getParameters().getDomainId()).get(0).getId())); + getParameters().getStorageDomainId()).get(0).getId())); List<Guid> imagesList = (List<Guid>) imagesListResult.getReturnValue(); //fromDao is a list of all disk images on the domain from the DAO - List<DiskImage> fromDao = getDbFacade().getDiskImageDao().getAllSnapshotsForStorageDomain(getParameters().getDomainId()); + List<DiskImage> fromDao = getDbFacade().getDiskImageDao().getAllSnapshotsForStorageDomain(getParameters().getStorageDomainId()); // then, compare the list of all images on the domain with the list oVirt recognizes // if the ID in imagesList is recognized by oVirt, remove from list for (DiskImage image : fromDao) { - if (imagesList.contains(image.getId())) { - imagesList.remove(image.getId()); - } + imagesList.remove(image.getId()); } // log the difference [for testing purposes] if (imagesList.isEmpty()) { - logger.info("List is empty."); //$NON-NLS-1$ - } - else { - logger.info("UUIDs found: " + StringUtils.join(imagesList, ",")); //$NON-NLS-1$ + logger.info("List is empty."); + } else { + logger.info("UUIDs found: " + StringUtils.join(imagesList, ",")); } getQueryReturnValue().setReturnValue(imagesList); // return difference } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ScanDomainParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ScanDomainParameters.java deleted file mode 100644 index 72a126d..0000000 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ScanDomainParameters.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.ovirt.engine.core.common.queries; - -import org.ovirt.engine.core.compat.Guid; - -public class ScanDomainParameters extends VdcQueryParametersBase { - - private static final long serialVersionUID = -7975065688901687512L; - - public ScanDomainParameters(Guid sdUUID) { - super(); - this.sdUUID = sdUUID; - } - - private Guid sdUUID = Guid.Empty; - - public Guid getDomainId() { - return sdUUID; - } - - public ScanDomainParameters() { - } - -} diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/GetImagesListVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/GetImagesListVDSCommand.java index cc12e19..805053b 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/GetImagesListVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/GetImagesListVDSCommand.java @@ -20,9 +20,9 @@ protected void ExecuteIrsBrokerCommand() { _result = getIrsProxy().getImagesList(getParameters().getStorageDomainId().toString()); ProceedProxyReturnValue(); - ArrayList<Guid> tempRetValue = new ArrayList<Guid>(_result.mImageList.length); - for (int i = 0; i < _result.mImageList.length; i++) { - tempRetValue.add(new Guid(_result.mImageList[i])); + ArrayList<Guid> tempRetValue = new ArrayList<Guid>(_result.getImageList().length); + for (String id : _result.getImageList()) { + tempRetValue.add(new Guid(id)); } setReturnValue(tempRetValue); } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/ImagesListReturnForXmlRpc.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/ImagesListReturnForXmlRpc.java index 54540d4..69dfdb5 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/ImagesListReturnForXmlRpc.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/ImagesListReturnForXmlRpc.java @@ -4,8 +4,7 @@ public final class ImagesListReturnForXmlRpc extends StatusReturnForXmlRpc { private static final String IMAGES_LIST = "imageslist"; - // [XmlRpcMissingMapping(MappingAction.Ignore), XmlRpcMember("isolist")] - public String[] mImageList; + private String[] mImageList; public ImagesListReturnForXmlRpc(Map<String, Object> innerMap) { super(innerMap); @@ -17,4 +16,8 @@ } } } + + public String[] getImageList() { + return mImageList; + } } -- To view, visit http://gerrit.ovirt.org/8726 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7bf663026c9f3b515f416a2fbb5957fcefc7796f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ricky Hopper <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
