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

Reply via email to