Maor Lipchuk has uploaded a new change for review.

Change subject: rest: Add support for REST to get all the unregistered entities
......................................................................

rest: Add support for REST to get all the unregistered entities

Adding support to get unregistered entities for storage domain in REST.
The user will have to use the entity API following a semicolon and
an unregistered string (as so : /storageDomain/xxx/vms;unregistered)

WIP : Tests should be added

Change-Id: Ia4a020c4c653b0fafed16c1d29924223f9b2879f
Signed-off-by: Maor Lipchuk <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetUnregisteredVmsQuery.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendStorageDomainContentsResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainTemplatesResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainVmsResource.java
4 files changed, 50 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/83/26483/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetUnregisteredVmsQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetUnregisteredVmsQuery.java
index 9511fdd..81b49d7 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetUnregisteredVmsQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetUnregisteredVmsQuery.java
@@ -5,6 +5,7 @@
 
 import org.ovirt.engine.core.common.businessentities.OvfEntityData;
 import org.ovirt.engine.core.common.businessentities.VM;
+import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.queries.IdAndNameQueryParameters;
 
 public class GetUnregisteredVmsQuery<P extends IdAndNameQueryParameters> 
extends QueriesCommandBase<P> {
@@ -14,15 +15,26 @@
 
     @Override
     protected void executeQueryCommand() {
-        List<VM> vmList = new ArrayList<>();
         List<OvfEntityData> entityList = getDbFacade()
                 
.getUnregisteredOVFDataDao().getAllForStorageDomain(getParameters().getId(), 
getParameters().getName());
-        for (OvfEntityData ovf : entityList) {
-            VM vm = new VM();
-            vm.setId(ovf.getVmId());
-            vm.setName(ovf.getVmName());
-            vmList.add(vm);
+        if (getParameters().getName() == "VM") {
+            List<VM> vmList = new ArrayList<>();
+            for (OvfEntityData ovf : entityList) {
+                VM vm = new VM();
+                vm.setId(ovf.getVmId());
+                vm.setName(ovf.getVmName());
+                vmList.add(vm);
+            }
+            getQueryReturnValue().setReturnValue(vmList);
+        } else {
+            List<VmTemplate> vmTemplates = new ArrayList<>();
+            for (OvfEntityData ovf : entityList) {
+                VmTemplate vmTemplate = new VmTemplate();
+                vmTemplate.setId(ovf.getVmId());
+                vmTemplate.setName(ovf.getVmName());
+                vmTemplates.add(vmTemplate);
+            }
+            getQueryReturnValue().setReturnValue(vmTemplates);
         }
-        getQueryReturnValue().setReturnValue(vmList);
     }
 }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendStorageDomainContentsResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendStorageDomainContentsResource.java
index c21bfca..4992c82 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendStorageDomainContentsResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendStorageDomainContentsResource.java
@@ -22,7 +22,7 @@
                                                                    R extends 
BaseResource,
                                                                    Q extends 
IVdcQueryable>
     extends AbstractBackendCollectionResource<R, Q> {
-
+    protected static final String UNREGISTERED_CONSTRAINT_PARAMETER = 
"unregistered";
     protected Guid storageDomainId;
 
     public AbstractBackendStorageDomainContentsResource(Guid storageDomainId,
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainTemplatesResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainTemplatesResource.java
index a2ecaf5..280ca6d 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainTemplatesResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainTemplatesResource.java
@@ -1,5 +1,6 @@
 package org.ovirt.engine.api.restapi.resource;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
@@ -7,6 +8,7 @@
 
 import javax.ws.rs.core.Response;
 
+import org.ovirt.engine.api.common.util.QueryHelper;
 import org.ovirt.engine.api.model.Template;
 import org.ovirt.engine.api.model.Templates;
 import org.ovirt.engine.api.resource.RemovableStorageDomainContentsResource;
@@ -16,6 +18,7 @@
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import 
org.ovirt.engine.core.common.queries.GetAllFromExportDomainQueryParameters;
+import org.ovirt.engine.core.common.queries.IdAndNameQueryParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.Guid;
 
@@ -30,6 +33,18 @@
     @Override
     public Templates list() {
         Templates templates = new Templates();
+        if (QueryHelper.hasMatrixParam(getUriInfo(), 
UNREGISTERED_CONSTRAINT_PARAMETER)) {
+            List<org.ovirt.engine.core.common.businessentities.VmTemplate> 
unregisteredTemplates =
+                    getBackendCollection(VdcQueryType.GetUnregisteredVms, new 
IdAndNameQueryParameters(storageDomainId,
+                            "Template"));
+            List<Template> collection = new ArrayList<Template>();
+            for (org.ovirt.engine.core.common.businessentities.VmTemplate 
entity : unregisteredTemplates) {
+                Template vmTemplate = map(entity);
+                collection.add(addLinks(populate(vmTemplate, entity)));
+            }
+            templates.getTemplates().addAll(collection);
+        }
+
         templates.getTemplates().addAll(getCollection());
         return templates;
     }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainVmsResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainVmsResource.java
index 8fa9ee9..af54155 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainVmsResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainVmsResource.java
@@ -1,9 +1,12 @@
 package org.ovirt.engine.api.restapi.resource;
 
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 import javax.ws.rs.core.Response;
 
+import org.ovirt.engine.api.common.util.QueryHelper;
 import org.ovirt.engine.api.model.VM;
 import org.ovirt.engine.api.model.VMs;
 import org.ovirt.engine.api.resource.RemovableStorageDomainContentsResource;
@@ -12,6 +15,7 @@
 import org.ovirt.engine.core.common.action.RemoveVmFromImportExportParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import 
org.ovirt.engine.core.common.queries.GetAllFromExportDomainQueryParameters;
+import org.ovirt.engine.core.common.queries.IdAndNameQueryParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.Guid;
 
@@ -26,6 +30,17 @@
     @Override
     public VMs list() {
         VMs vms = new VMs();
+        if (QueryHelper.hasMatrixParam(getUriInfo(), 
UNREGISTERED_CONSTRAINT_PARAMETER)) {
+            List<org.ovirt.engine.core.common.businessentities.VM> 
unregisteredVms =
+                    getBackendCollection(VdcQueryType.GetUnregisteredVms, new 
IdAndNameQueryParameters(storageDomainId,
+                            "VM"));
+            List<VM> collection = new ArrayList<VM>();
+            for (org.ovirt.engine.core.common.businessentities.VM entity : 
unregisteredVms) {
+                VM vm = map(entity);
+                collection.add(addLinks(populate(vm, entity)));
+            }
+            vms.getVMs().addAll(collection);
+        }
         vms.getVMs().addAll(getCollection());
         return vms;
     }


-- 
To view, visit http://gerrit.ovirt.org/26483
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia4a020c4c653b0fafed16c1d29924223f9b2879f
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Maor Lipchuk <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to