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

Reply via email to