Martin Mucha has uploaded a new change for review.

Change subject: core,restapi>: removed separator inconsistency, removed 
duplicates.
......................................................................

core,restapi>: removed separator inconsistency, removed duplicates.

Change-Id: Id2c72e0527f084e1453da7f720a23fe84dd94db6
Bug-Url: https://bugzilla.redhat.com/1104080
Signed-off-by: Martin Mucha <[email protected]>
---
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/SearchQueryTest.java
M 
backend/manager/modules/restapi/interface/common/jaxrs/src/main/java/org/ovirt/engine/api/common/util/QueryHelper.java
M 
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjects.java
3 files changed, 100 insertions(+), 78 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/43/28343/1

diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/SearchQueryTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/SearchQueryTest.java
index 2e803fe..9b8bbe8 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/SearchQueryTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/SearchQueryTest.java
@@ -358,7 +358,7 @@
 
     @Test
     public void testGetAllMultiDiskImageSearch() throws Exception {
-        SearchParameters searchParam = new SearchParameters("Disks:", 
SearchType.Disk);
+        SearchParameters searchParam = new SearchParameters("Disks : ", 
SearchType.Disk);
         SearchQuery<SearchParameters> searchQuery = 
spySearchQuery(searchParam);
         searchQuery.executeQueryCommand();
         assertTrue(diskImageResultList == 
searchQuery.getQueryReturnValue().getReturnValue());
@@ -369,7 +369,7 @@
         // The query Should be used is : "SELECT * FROM (SELECT *, 
ROW_NUMBER() OVER( ORDER BY disk_name ASC ) as RowNum
         // FROM (SELECT * FROM vm_images_view WHERE ( image_guid IN (SELECT 
vm_images_view.image_guid FROM
         // vm_images_view ))) as T1 ) as T2"
-        SearchParameters searchParam = new SearchParameters("Disk:", 
SearchType.Disk);
+        SearchParameters searchParam = new SearchParameters("Disk : ", 
SearchType.Disk);
         SearchQuery<SearchParameters> searchQuery = 
spySearchQuery(searchParam);
         searchQuery.executeQueryCommand();
         assertTrue(diskImageResultList == 
searchQuery.getQueryReturnValue().getReturnValue());
@@ -377,7 +377,7 @@
 
     @Test
     public void testGetAllVMSearch() throws Exception {
-        SearchParameters searchParam = new SearchParameters("VM:", 
SearchType.VM);
+        SearchParameters searchParam = new SearchParameters("VM : ", 
SearchType.VM);
         SearchQuery<SearchParameters> searchQuery = 
spySearchQuery(searchParam);
         searchQuery.executeQueryCommand();
         assertTrue(vmResultList == 
searchQuery.getQueryReturnValue().getReturnValue());
@@ -385,7 +385,7 @@
 
     @Test
     public void testGetAllMultiVmSearch() throws Exception {
-        SearchParameters searchParam = new SearchParameters("VMs:", 
SearchType.VM);
+        SearchParameters searchParam = new SearchParameters("VMs : ", 
SearchType.VM);
         SearchQuery<SearchParameters> searchQuery = 
spySearchQuery(searchParam);
         searchQuery.executeQueryCommand();
         assertTrue(vmResultList == 
searchQuery.getQueryReturnValue().getReturnValue());
@@ -393,7 +393,7 @@
 
     @Test
     public void testGetAllVdsSearch() throws Exception {
-        SearchParameters searchParam = new SearchParameters("Host:", 
SearchType.VDS);
+        SearchParameters searchParam = new SearchParameters("Host : ", 
SearchType.VDS);
         SearchQuery<SearchParameters> searchQuery = 
spySearchQuery(searchParam);
         searchQuery.executeQueryCommand();
         assertTrue(vdsResultList == 
searchQuery.getQueryReturnValue().getReturnValue());
@@ -401,7 +401,7 @@
 
     @Test
     public void testGetAllMultiVdsSearch() throws Exception {
-        SearchParameters searchParam = new SearchParameters("Hosts:", 
SearchType.VDS);
+        SearchParameters searchParam = new SearchParameters("Hosts : ", 
SearchType.VDS);
         SearchQuery<SearchParameters> searchQuery = 
spySearchQuery(searchParam);
         searchQuery.executeQueryCommand();
         assertTrue(vdsResultList == 
searchQuery.getQueryReturnValue().getReturnValue());
@@ -412,7 +412,7 @@
         // The original query should be : SELECT * FROM (SELECT *, 
ROW_NUMBER() OVER( ORDER BY name ASC ) as RowNum FROM
         // (SELECT * FROM vds_groups WHERE ( vds_group_id IN (SELECT 
vds_groups_storage_domain.vds_group_id FROM
         // vds_groups_storage_domain ))) as T1 ) as T2
-        SearchParameters searchParam = new SearchParameters("Cluster:", 
SearchType.Cluster);
+        SearchParameters searchParam = new SearchParameters("Cluster : ", 
SearchType.Cluster);
         SearchQuery<SearchParameters> searchQuery = 
spySearchQuery(searchParam);
         searchQuery.executeQueryCommand();
         assertTrue(vdsGroupResultList == 
searchQuery.getQueryReturnValue().getReturnValue());
@@ -423,7 +423,7 @@
         // The original query should be : SELECT * FROM (SELECT *, 
ROW_NUMBER() OVER( ORDER BY name ASC ) as RowNum FROM
         // (SELECT * FROM vds_groups WHERE ( vds_group_id IN (SELECT 
vds_groups_storage_domain.vds_group_id FROM
         // vds_groups_storage_domain ))) as T1 ) as T2
-        SearchParameters searchParam = new SearchParameters("Clusters:", 
SearchType.Cluster);
+        SearchParameters searchParam = new SearchParameters("Clusters : ", 
SearchType.Cluster);
         SearchQuery<SearchParameters> searchQuery = 
spySearchQuery(searchParam);
         searchQuery.executeQueryCommand();
         assertTrue(vdsGroupResultList == 
searchQuery.getQueryReturnValue().getReturnValue());
@@ -431,7 +431,7 @@
 
     @Test
     public void testGetAllStoragePoolSearch() throws Exception {
-        SearchParameters searchParam = new SearchParameters("Datacenter:", 
SearchType.StoragePool);
+        SearchParameters searchParam = new SearchParameters("Datacenter : ", 
SearchType.StoragePool);
         SearchQuery<SearchParameters> searchQuery = 
spySearchQuery(searchParam);
         searchQuery.executeQueryCommand();
         assertTrue(storagePoolResultList == 
searchQuery.getQueryReturnValue().getReturnValue());
@@ -441,7 +441,7 @@
     @Ignore
     @Test
     public void testGetAllMultiStoragePoolSearch() throws Exception {
-        SearchParameters searchParam = new SearchParameters("Datacenters:", 
SearchType.StoragePool);
+        SearchParameters searchParam = new SearchParameters("Datacenters : ", 
SearchType.StoragePool);
         SearchQuery<SearchParameters> searchQuery = 
spySearchQuery(searchParam);
         searchQuery.executeQueryCommand();
         assertTrue(storagePoolResultList == 
searchQuery.getQueryReturnValue().getReturnValue());
@@ -449,7 +449,7 @@
 
     @Test
     public void testGetAllGlusterVolumesSearch() throws Exception {
-        SearchParameters searchParam = new SearchParameters("Volumes:", 
SearchType.GlusterVolume);
+        SearchParameters searchParam = new SearchParameters("Volumes : ", 
SearchType.GlusterVolume);
         SearchQuery<SearchParameters> searchQuery = 
spySearchQuery(searchParam);
         searchQuery.executeQueryCommand();
         assertTrue(glusterVolumeList == 
searchQuery.getQueryReturnValue().getReturnValue());
@@ -457,7 +457,7 @@
 
     @Test
     public void testGetAllQuotaSearch() throws Exception {
-        SearchParameters searchParam = new SearchParameters("Quota:", 
SearchType.Quota);
+        SearchParameters searchParam = new SearchParameters("Quota : ", 
SearchType.Quota);
         SearchQuery<SearchParameters> searchQuery = 
spySearchQuery(searchParam);
         searchQuery.executeQueryCommand();
         assertTrue(quotaResultList == 
searchQuery.getQueryReturnValue().getReturnValue());
@@ -465,7 +465,7 @@
 
     @Test
     public void testGetAllNetworkSearch() throws Exception {
-        SearchParameters searchParam = new SearchParameters("Network:", 
SearchType.Network);
+        SearchParameters searchParam = new SearchParameters("Network : ", 
SearchType.Network);
         SearchQuery<SearchParameters> searchQuery = 
spySearchQuery(searchParam);
         searchQuery.executeQueryCommand();
         assertTrue(networkResultList == 
searchQuery.getQueryReturnValue().getReturnValue());
diff --git 
a/backend/manager/modules/restapi/interface/common/jaxrs/src/main/java/org/ovirt/engine/api/common/util/QueryHelper.java
 
b/backend/manager/modules/restapi/interface/common/jaxrs/src/main/java/org/ovirt/engine/api/common/util/QueryHelper.java
index 4e4f04e..26397d7 100644
--- 
a/backend/manager/modules/restapi/interface/common/jaxrs/src/main/java/org/ovirt/engine/api/common/util/QueryHelper.java
+++ 
b/backend/manager/modules/restapi/interface/common/jaxrs/src/main/java/org/ovirt/engine/api/common/util/QueryHelper.java
@@ -16,6 +16,7 @@
 
 package org.ovirt.engine.api.common.util;
 
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -44,7 +45,9 @@
 public class QueryHelper {
 
     public static final String CONSTRAINT_PARAMETER = "search";
-    private static final String RETURN_TYPE_SEPARTOR = " : ";
+
+    //when changing please keep consistent with 
org.ovirt.engine.core.searchbackend.SearchObjects.SAFE_EXPRESSION_SEPARATOR
+    public static final String RETURN_TYPE_SEPARATOR = " : ";
 
     public static final String CURRENT_CONSTRAINT_PARAMETER = "current";
 
@@ -55,27 +58,34 @@
      * REVISIT: can we safely just drop the return type specifier?
      * (doesn't seem to have any effect in the powershell case)
      */
-    private static final Map<Class<?>, String> RETURN_TYPES;
+    /**
+     * REVISIT: RHEVM Admin Guide is not very clear on whether these
+     * return type specifiers should always be pluralized
+     */
+    private static final Map<Class<?>, String> RETURN_TYPES = 
createReturnTypes();
 
-    static {
-        RETURN_TYPES = new HashMap<Class<?>, String>();
-        /**
-         * REVISIT: RHEVM Admin Guide is not very clear on whether these
-         * return type specifiers should always be pluralized
-         */
-        RETURN_TYPES.put(VM.class, "VMs" + RETURN_TYPE_SEPARTOR);
-        RETURN_TYPES.put(Host.class, "Hosts" + RETURN_TYPE_SEPARTOR);
-        RETURN_TYPES.put(Cluster.class, "Clusters" + RETURN_TYPE_SEPARTOR);
-        RETURN_TYPES.put(DataCenter.class, "Datacenter" + 
RETURN_TYPE_SEPARTOR);
-        RETURN_TYPES.put(StorageDomain.class, "Storage" + 
RETURN_TYPE_SEPARTOR);
-        RETURN_TYPES.put(Template.class, "Template" + RETURN_TYPE_SEPARTOR);
-        RETURN_TYPES.put(User.class, "Users" + RETURN_TYPE_SEPARTOR);
-        RETURN_TYPES.put(Group.class, "Groups" + RETURN_TYPE_SEPARTOR);
-        RETURN_TYPES.put(VmPool.class, "Pools" + RETURN_TYPE_SEPARTOR);
-        RETURN_TYPES.put(Event.class, "Events" + RETURN_TYPE_SEPARTOR);
-        RETURN_TYPES.put(GlusterVolume.class, "Volumes" + 
RETURN_TYPE_SEPARTOR);
-        RETURN_TYPES.put(Disk.class, "Disks" + RETURN_TYPE_SEPARTOR);
-        RETURN_TYPES.put(Network.class, "Networks" + RETURN_TYPE_SEPARTOR);
+    private static Map<Class<?>, String> createReturnTypes() {
+        final Map<Class<?>, String> map = new HashMap<>();
+
+        putReturnType(map, VM.class, "VMs");
+        putReturnType(map, Host.class, "Hosts");
+        putReturnType(map, Cluster.class, "Clusters");
+        putReturnType(map, DataCenter.class, "Datacenter");
+        putReturnType(map, StorageDomain.class, "Storage");
+        putReturnType(map, Template.class, "Template");
+        putReturnType(map, User.class, "Users");
+        putReturnType(map, Group.class, "Groups");
+        putReturnType(map, VmPool.class, "Pools");
+        putReturnType(map, Event.class, "Events");
+        putReturnType(map, GlusterVolume.class, "Volumes");
+        putReturnType(map, Disk.class, "Disks");
+        putReturnType(map, Network.class, "Networks");
+
+        return Collections.unmodifiableMap(map);
+    }
+
+    private static void putReturnType(Map<Class<?>, String> map, Class<?> 
clazz, String name) {
+        map.put(clazz, name + RETURN_TYPE_SEPARATOR);
     }
 
     /**
diff --git 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjects.java
 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjects.java
index c6f50bb..f3d33bf 100644
--- 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjects.java
+++ 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjects.java
@@ -55,52 +55,64 @@
     private static final String HOST_BY_CPU = "Host: sortby cpu_usage desc";
     private static final String DATACENTER_BY_NAME = "DataCenter: sortby name";
     private static final String VM_BY_STATUS = "Vms: status=Up or 
status=PoweringUp or status=MigratingTo or status=WaitForLaunch or 
status=RebootInProgress or status=PoweringDown or status=Paused or 
status=Unknown sortby cpu_usage desc";
-    @SuppressWarnings("serial")
-    private static final Set<String> SAFE_SEARCH_EXPR = 
Collections.unmodifiableSet(new HashSet<String>() {
-        {
-            final char SEPARATOR = ':';
 
-            add(VDS_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(VDS_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(VM_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(VM_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(AUDIT_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(AUDIT_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(TEMPLATE_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(TEMPLATE_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(VDC_USER_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(VDC_USER_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(VDC_GROUP_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(VDC_GROUP_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(VDC_POOL_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(VDC_POOL_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(VDC_CLUSTER_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(VDC_CLUSTER_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(VDC_STORAGE_POOL_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(VDC_STORAGE_DOMAIN_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(VDC_STORAGE_DOMAIN_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(VDC_STORAGE_DOMAIN_IMAGE_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(DISK_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(DISK_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(GLUSTER_VOLUME_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(GLUSTER_VOLUME_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(QUOTA_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(QUOTA_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(NETWORK_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(NETWORK_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(PROVIDER_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(PROVIDER_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(ALERT.toLowerCase());
-            add(ERROR.toLowerCase());
-            add(HOST_BY_CPU.toLowerCase());
-            add(DATACENTER_BY_NAME.toLowerCase());
-            add(VM_BY_STATUS.toLowerCase());
-            add(INSTANCE_TYPE_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(INSTANCE_TYPE_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(IMAGE_TYPE_OBJ_NAME.toLowerCase() + SEPARATOR);
-            add(IMAGE_TYPE_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
+    //when changing please keep consistent with 
org.ovirt.engine.api.common.util.QueryHelper.RETURN_TYPE_SEPARATOR
+    public static final String SAFE_EXPRESSION_SEPARATOR = " : ";
+    private static final Set<String> SAFE_SEARCH_EXPR = 
createSafeExpressionSet();
+
+    private static Set<String> createSafeExpressionSet() {
+        return createSafeExpressionSet(
+                VDS_OBJ_NAME,
+                VDS_PLU_OBJ_NAME,
+                VM_OBJ_NAME,
+                VM_PLU_OBJ_NAME,
+                AUDIT_OBJ_NAME,
+                AUDIT_PLU_OBJ_NAME,
+                TEMPLATE_OBJ_NAME,
+                TEMPLATE_PLU_OBJ_NAME,
+                VDC_USER_OBJ_NAME,
+                VDC_USER_PLU_OBJ_NAME,
+                VDC_GROUP_OBJ_NAME,
+                VDC_GROUP_PLU_OBJ_NAME,
+                VDC_POOL_OBJ_NAME,
+                VDC_POOL_PLU_OBJ_NAME,
+                VDC_CLUSTER_OBJ_NAME,
+                VDC_CLUSTER_PLU_OBJ_NAME,
+                VDC_STORAGE_POOL_OBJ_NAME,
+                VDC_STORAGE_DOMAIN_OBJ_NAME,
+                VDC_STORAGE_DOMAIN_PLU_OBJ_NAME,
+                VDC_STORAGE_DOMAIN_IMAGE_OBJ_NAME,
+                DISK_OBJ_NAME,
+                DISK_PLU_OBJ_NAME,
+                GLUSTER_VOLUME_OBJ_NAME,
+                GLUSTER_VOLUME_PLU_OBJ_NAME,
+                QUOTA_OBJ_NAME,
+                QUOTA_PLU_OBJ_NAME,
+                NETWORK_OBJ_NAME,
+                NETWORK_PLU_OBJ_NAME,
+                PROVIDER_OBJ_NAME,
+                PROVIDER_PLU_OBJ_NAME,
+                ALERT,
+                ERROR,
+                HOST_BY_CPU,
+                DATACENTER_BY_NAME,
+                VM_BY_STATUS,
+                INSTANCE_TYPE_OBJ_NAME,
+                INSTANCE_TYPE_PLU_OBJ_NAME,
+                IMAGE_TYPE_OBJ_NAME,
+                IMAGE_TYPE_PLU_OBJ_NAME
+        );
+    }
+
+    private static Set<String> createSafeExpressionSet(String ... 
searchObjects) {
+        final Set<String> set = new HashSet<String>(searchObjects.length);
+
+        for (String searchObject : searchObjects) {
+            set.add(searchObject.toLowerCase() + SAFE_EXPRESSION_SEPARATOR);
         }
-    });
+
+        return Collections.unmodifiableSet(set);
+    }
 
     /**
      * Determines if a search expression is safe.


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

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

Reply via email to