Ori Liel has uploaded a new change for review. Change subject: restapi: Create-Disk specify SD by name ......................................................................
restapi: Create-Disk specify SD by name Change-Id: Ic9e994b25bb66098275b7094521e079d94926855 Signed-off-by: Ori Liel <[email protected]> --- M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDisksResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmDisksResource.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDisksResourceTest.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmDisksResourceTest.java 4 files changed, 61 insertions(+), 15 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/14/7314/1 diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDisksResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDisksResource.java index 53c8e5f..4cb0b62 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDisksResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDisksResource.java @@ -14,6 +14,7 @@ import org.ovirt.engine.core.common.businessentities.storage_domains; import org.ovirt.engine.core.common.interfaces.SearchType; import org.ovirt.engine.core.common.queries.GetDiskByDiskIdParameters; +import org.ovirt.engine.core.common.queries.VdcQueryParametersBase; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.compat.Guid; @@ -33,15 +34,25 @@ if (disk.isSetStorageDomains() && disk.getStorageDomains().isSetStorageDomains() && disk.getStorageDomains().getStorageDomains().get(0).isSetId()) { params.setStorageDomainId(Guid.createGuidFromString(disk.getStorageDomains().getStorageDomains().get(0).getId())); } else if (disk.isSetStorageDomains() && disk.getStorageDomains().getStorageDomains().get(0).isSetName()) { - params.setStorageDomainId( - getEntity(storage_domains.class, - SearchType.StorageDomain, - "Storage: name=" + disk.getStorageDomains().getStorageDomains().get(0).getName()).getId()); + params.setStorageDomainId(getStorageDomainId(disk.getStorageDomains().getStorageDomains().get(0).getName())); } return performCreation(VdcActionType.AddDisk, params, new QueryIdResolver(VdcQueryType.GetDiskByDiskId, GetDiskByDiskIdParameters.class)); } + private Guid getStorageDomainId(String storageDomainName) { + List<storage_domains> storageDomains = + getBackendCollection(storage_domains.class, + VdcQueryType.GetAllStorageDomains, + new VdcQueryParametersBase()); + for (storage_domains storageDomain : storageDomains) { + if (storageDomain.getstorage_name().equals(storageDomainName)) { + return storageDomain.getId(); + } + } + return null; + } + @Override public Disks list() { return mapCollection(getBackendCollection(SearchType.Disk)); diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmDisksResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmDisksResource.java index 641bd79..f346a99 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmDisksResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmDisksResource.java @@ -22,7 +22,6 @@ import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.storage_domains; -import org.ovirt.engine.core.common.interfaces.SearchType; import org.ovirt.engine.core.common.queries.VdcQueryParametersBase; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.compat.Guid; @@ -107,13 +106,24 @@ parameters.setStorageDomainId(new Guid(disk.getStorageDomains().getStorageDomains().get(0).getId())); } else if (disk.isSetStorageDomains() && disk.getStorageDomains().getStorageDomains().get(0).isSetName()) { parameters.setStorageDomainId( - getEntity(storage_domains.class, - SearchType.StorageDomain, - "Storage: name=" + disk.getStorageDomains().getStorageDomains().get(0).getName()).getId()); + getStorageDomainId(disk.getStorageDomains().getStorageDomains().get(0).getName())); } return parameters; } + private Guid getStorageDomainId(String storageDomainName) { + List<storage_domains> storageDomains = + getBackendCollection(storage_domains.class, + VdcQueryType.GetAllStorageDomains, + new VdcQueryParametersBase()); + for (storage_domains storageDomain : storageDomains) { + if (storageDomain.getstorage_name().equals(storageDomainName)) { + return storageDomain.getId(); + } + } + return null; + } + @Override protected VdcActionParametersBase getRemoveParameters(String id) { return new RemoveDiskParameters(asGuid(id)); diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDisksResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDisksResourceTest.java index 9ee945b..d1a29e0 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDisksResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDisksResourceTest.java @@ -1,5 +1,6 @@ package org.ovirt.engine.api.restapi.resource; +import java.util.LinkedList; import java.util.List; import javax.ws.rs.core.Response; @@ -22,6 +23,7 @@ import org.ovirt.engine.core.common.businessentities.storage_domains; import org.ovirt.engine.core.common.interfaces.SearchType; import org.ovirt.engine.core.common.queries.GetDiskByDiskIdParameters; +import org.ovirt.engine.core.common.queries.VdcQueryParametersBase; import org.ovirt.engine.core.common.queries.VdcQueryType; public class BackendDisksResourceTest extends AbstractBackendCollectionResourceTest<Disk, org.ovirt.engine.core.common.businessentities.Disk, BackendDisksResource> { @@ -100,9 +102,11 @@ Disk model = getModel(0); model.getStorageDomains().getStorageDomains().get(0).setId(null); model.getStorageDomains().getStorageDomains().get(0).setName("Storage_Domain_1"); - storage_domains sd = new storage_domains(); - sd.setId(GUIDS[2]); - setUpGetEntityExpectations("Storage: name=Storage_Domain_1", SearchType.StorageDomain, sd); + setUpEntityQueryExpectations(VdcQueryType.GetAllStorageDomains, + VdcQueryParametersBase.class, + new String[] {}, + new Object[] {}, + getStorageDomains()); setUpCreationExpectations(VdcActionType.AddDisk, AddDiskParameters.class, new String[] {}, @@ -124,6 +128,15 @@ assertNull(((Disk)response.getEntity()).getCreationStatus()); } + private Object getStorageDomains() { + List<storage_domains> sds = new LinkedList<storage_domains>(); + storage_domains sd = new storage_domains(); + sd.setstorage_name("Storage_Domain_1"); + sd.setId(GUIDS[2]); + sds.add(sd); + return sds; + } + static Disk getModel(int index) { Disk model = new Disk(); model.setSize(1024 * 1024L); diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmDisksResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmDisksResourceTest.java index 711d5e6..c8ead9c 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmDisksResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmDisksResourceTest.java @@ -1,5 +1,6 @@ package org.ovirt.engine.api.restapi.resource; +import java.util.LinkedList; import java.util.List; import org.junit.Test; @@ -20,8 +21,8 @@ import org.ovirt.engine.core.common.businessentities.AsyncTaskStatus; import org.ovirt.engine.core.common.businessentities.AsyncTaskStatusEnum; import org.ovirt.engine.core.common.businessentities.storage_domains; -import org.ovirt.engine.core.common.interfaces.SearchType; import org.ovirt.engine.core.common.queries.GetAllDisksByVmIdParameters; +import org.ovirt.engine.core.common.queries.VdcQueryParametersBase; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.compat.Guid; @@ -215,9 +216,11 @@ new String[] { "VmId" }, new Object[] { PARENT_ID }, asList(getEntity(0))); - storage_domains sd = new storage_domains(); - sd.setId(GUIDS[2]); - setUpGetEntityExpectations("Storage: name=Storage_Domain_1", SearchType.StorageDomain, sd); + setUpEntityQueryExpectations(VdcQueryType.GetAllStorageDomains, + VdcQueryParametersBase.class, + new String[] {}, + new Object[] {}, + getStorageDomains()); setUpCreationExpectations(VdcActionType.AddDisk, AddDiskParameters.class, new String[] { "VmId", "StorageDomainId" }, @@ -244,6 +247,15 @@ assertNull(((Disk)response.getEntity()).getCreationStatus()); } + private Object getStorageDomains() { + List<storage_domains> sds = new LinkedList<storage_domains>(); + storage_domains sd = new storage_domains(); + sd.setstorage_name("Storage_Domain_1"); + sd.setId(GUIDS[2]); + sds.add(sd); + return sds; + } + @Test public void testAddDiskWithinStorageDomain() throws Exception { setUriInfo(setUpBasicUriExpectations()); -- To view, visit http://gerrit.ovirt.org/7314 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic9e994b25bb66098275b7094521e079d94926855 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ori Liel <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
