Liran Zelkha has uploaded a new change for review.

Change subject: restapi: Remove dynamic queries from storage REST API
......................................................................

restapi: Remove dynamic queries from storage REST API

Dynamic search is extremely slow. This patch removes the usage of
dynamic search from the Storage Rest API.

Change-Id: I501058a88005df117a492ce8ece3f16ddbbd1e66
Signed-off-by: [email protected] <[email protected]>
---
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainsResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageServerConnectionResource.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainsResourceTest.java
4 files changed, 43 insertions(+), 24 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/03/26303/1

diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainResource.java
index 13a1de2..35131f8 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainResource.java
@@ -1,5 +1,7 @@
 package org.ovirt.engine.api.restapi.resource;
 
+import static 
org.ovirt.engine.api.restapi.resource.BackendStorageDomainsResource.SUB_COLLECTIONS;
+
 import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
@@ -16,11 +18,12 @@
 import org.ovirt.engine.api.model.VMs;
 import org.ovirt.engine.api.resource.AssignedPermissionsResource;
 import org.ovirt.engine.api.resource.DisksResource;
+import org.ovirt.engine.api.resource.FilesResource;
 import org.ovirt.engine.api.resource.ImagesResource;
 import org.ovirt.engine.api.resource.RemovableStorageDomainContentsResource;
-import org.ovirt.engine.api.resource.FilesResource;
 import org.ovirt.engine.api.resource.StorageDomainResource;
 import org.ovirt.engine.api.resource.StorageDomainServerConnectionsResource;
+import org.ovirt.engine.api.restapi.util.StorageDomainHelper;
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.action.ExtendSANStorageDomainParameters;
 import org.ovirt.engine.core.common.action.StorageDomainManagementParameter;
@@ -28,20 +31,16 @@
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.StorageDomainSharedStatus;
-import org.ovirt.engine.core.common.businessentities.VDS;
-
 import org.ovirt.engine.core.common.businessentities.StorageDomainStatic;
 import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
-import org.ovirt.engine.core.common.interfaces.SearchType;
+import org.ovirt.engine.core.common.businessentities.StorageType;
+import org.ovirt.engine.core.common.businessentities.VdsStatic;
 import org.ovirt.engine.core.common.queries.GetDeviceListQueryParameters;
 import org.ovirt.engine.core.common.queries.GetPermissionsForObjectParameters;
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
+import org.ovirt.engine.core.common.queries.NameQueryParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.Guid;
-import org.ovirt.engine.core.common.businessentities.StorageType;
-import org.ovirt.engine.api.restapi.util.StorageDomainHelper;
-
-import static 
org.ovirt.engine.api.restapi.resource.BackendStorageDomainsResource.SUB_COLLECTIONS;
 
 public class BackendStorageDomainResource extends
         AbstractBackendSubResource<StorageDomain, 
org.ovirt.engine.core.common.businessentities.StorageDomain> implements 
StorageDomainResource {
@@ -204,10 +203,12 @@
         return storageDomain.getHost().isSetId()
                ? new Guid(storageDomain.getHost().getId())
                : storageDomain.getHost().isSetName()
-                 ? getEntity(VDS.class,
-                             SearchType.VDS,
-                             "Hosts: name=" + 
storageDomain.getHost().getName()).getId()
+                        ? getEntity(VdsStatic.class,
+                                VdcQueryType.GetVdsStaticByName,
+                                new 
NameQueryParameters(storageDomain.getHost().getName()),
+                                "Hosts: name=" + 
storageDomain.getHost().getName()).getId()
                  : null;
+
     }
 
     private ExtendSANStorageDomainParameters createParameters(Guid 
storageDomainId, List<LogicalUnit> newLuns, boolean force) {
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainsResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainsResource.java
index 50b505c..fcfbb7a 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainsResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainsResource.java
@@ -34,12 +34,13 @@
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
 import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
 import org.ovirt.engine.core.common.businessentities.StorageType;
-import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.VdsStatic;
 import org.ovirt.engine.core.common.interfaces.SearchType;
 import org.ovirt.engine.core.common.queries.GetDeviceListQueryParameters;
 import 
org.ovirt.engine.core.common.queries.GetExistingStorageDomainListParameters;
 import org.ovirt.engine.core.common.queries.GetLunsByVgIdParameters;
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
+import org.ovirt.engine.core.common.queries.NameQueryParameters;
 import 
org.ovirt.engine.core.common.queries.StorageServerConnectionQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
@@ -361,9 +362,10 @@
         return storageDomain.getHost().isSetId()
                ? new Guid(storageDomain.getHost().getId())
                : storageDomain.getHost().isSetName()
-                 ? getEntity(VDS.class,
-                             SearchType.VDS,
-                             "Hosts: name=" + 
storageDomain.getHost().getName()).getId()
+                        ? getEntity(VdsStatic.class,
+                                VdcQueryType.GetVdsStaticByName,
+                                new 
NameQueryParameters(storageDomain.getHost().getName()),
+                                "Hosts: name=" + 
storageDomain.getHost().getName()).getId()
                  : null;
     }
 
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageServerConnectionResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageServerConnectionResource.java
index a9a450e..905999d 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageServerConnectionResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageServerConnectionResource.java
@@ -7,8 +7,8 @@
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
-import org.ovirt.engine.core.common.businessentities.VDS;
-import org.ovirt.engine.core.common.interfaces.SearchType;
+import org.ovirt.engine.core.common.businessentities.VdsStatic;
+import org.ovirt.engine.core.common.queries.NameQueryParameters;
 import 
org.ovirt.engine.core.common.queries.StorageServerConnectionQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.Guid;
@@ -64,8 +64,9 @@
             return host.isSetId()
                     ? new Guid(host.getId())
                     : host.isSetName()
-                            ? getEntity(VDS.class,
-                                    SearchType.VDS,
+                            ? getEntity(VdsStatic.class,
+                                    VdcQueryType.GetVdsStaticByName,
+                                    new NameQueryParameters(host.getName()),
                                     "Hosts: name=" + host.getName()).getId()
                             : null;
         }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainsResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainsResourceTest.java
index 9272f3d..b26612b 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainsResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainsResourceTest.java
@@ -26,11 +26,13 @@
 import org.ovirt.engine.core.common.businessentities.StorageDomainStatic;
 import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
 import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.VdsStatic;
 import org.ovirt.engine.core.common.interfaces.SearchType;
 import org.ovirt.engine.core.common.queries.GetDeviceListQueryParameters;
 import 
org.ovirt.engine.core.common.queries.GetExistingStorageDomainListParameters;
 import org.ovirt.engine.core.common.queries.GetLunsByVgIdParameters;
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
+import org.ovirt.engine.core.common.queries.NameQueryParameters;
 import 
org.ovirt.engine.core.common.queries.StorageServerConnectionQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 
@@ -153,10 +155,12 @@
     @Test
     public void testRemoveWithHostName() throws Exception {
         setUpGetEntityExpectations();
-        VDS host = 
BackendHostsResourceTest.setUpEntityExpectations(control.createMock(VDS.class), 
1);
-        setUpGetEntityExpectations("Hosts: name=" + NAMES[1],
-                                   SearchType.VDS,
-                                   host);
+
+        setUpGetEntityExpectations(VdcQueryType.GetVdsStaticByName,
+                NameQueryParameters.class,
+                new String[] { "Name" },
+                new Object[] { NAMES[1] },
+                setUpVDStatic(1));
 
         setUriInfo(setUpActionExpectations(VdcActionType.RemoveStorageDomain,
                                            RemoveStorageDomainParameters.class,
@@ -289,7 +293,11 @@
         Host host = new Host();
         host.setName(NAMES[0]);
 
-        setUpGetEntityExpectations("Hosts: name=" + NAMES[0], SearchType.VDS, 
setUpVDS(0));
+        setUpGetEntityExpectations(VdcQueryType.GetVdsStaticByName,
+                NameQueryParameters.class,
+                new String[] { "Name" },
+                new Object[] { NAMES[0] },
+                setUpVDStatic(0));
 
         doTestAddStorageDomain(0, host, false);
     }
@@ -709,6 +717,13 @@
         return vds;
     }
 
+    protected VdsStatic setUpVDStatic(int index) {
+        VdsStatic vds = new VdsStatic();
+        vds.setId(GUIDS[index]);
+        vds.setVdsName(NAMES[index]);
+        return vds;
+    }
+
     @Override
     protected org.ovirt.engine.core.common.businessentities.StorageDomain 
getEntity(int index) {
         return 
setUpEntityExpectations(control.createMock(org.ovirt.engine.core.common.businessentities.StorageDomain.class),
 index);


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

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

Reply via email to