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
