Lior Vernia has uploaded a new change for review.

Change subject: core: Added Providers to search mechanism
......................................................................

core: Added Providers to search mechanism

Users may now search for Providers using the search mechanism.

Change-Id: Ie3afec14b945175eabb73d2b119fb9a807f69a72
Signed-off-by: Lior Vernia <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SearchQuery.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/interfaces/SearchType.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/provider/ProviderDao.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/provider/ProviderDaoDbFacadeImpl.java
A 
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ProviderConditionFieldAutoCompleter.java
M 
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java
M 
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjects.java
M 
frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/SearchBackend.gwt.xml
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderListModel.java
9 files changed, 81 insertions(+), 24 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/63/14763/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SearchQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SearchQuery.java
index 6e2e836..e67421f 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SearchQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SearchQuery.java
@@ -20,6 +20,7 @@
 import org.ovirt.engine.core.common.businessentities.DbUser;
 import org.ovirt.engine.core.common.businessentities.Disk;
 import org.ovirt.engine.core.common.businessentities.IVdcQueryable;
+import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.Quota;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
@@ -132,6 +133,10 @@
         }
         case Network: {
             returnValue = searchNetworks();
+            break;
+        }
+        case Provider: {
+            returnValue = searchProviders();
             break;
         }
         default: {
@@ -274,6 +279,10 @@
         return genericSearch(getDbFacade().getNetworkViewDao(), true, null);
     }
 
+    private List<Provider> searchProviders() {
+        return genericSearch(getDbFacade().getProviderDao(), true, null);
+    }
+
     private QueryData2 InitQueryData(boolean useCache) {
         QueryData2 data = null;
         boolean isExistsValue = false;
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/interfaces/SearchType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/interfaces/SearchType.java
index 79fcd3a..0c010f1 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/interfaces/SearchType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/interfaces/SearchType.java
@@ -17,7 +17,8 @@
     Quota,
     Disk,
     GlusterVolume,
-    Network;
+    Network,
+    Provider;
 
     public int getValue() {
         return this.ordinal();
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/provider/ProviderDao.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/provider/ProviderDao.java
index de37a9b..3c8088c 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/provider/ProviderDao.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/provider/ProviderDao.java
@@ -3,8 +3,9 @@
 import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dao.GenericDao;
+import org.ovirt.engine.core.dao.SearchDAO;
 
-public interface ProviderDao extends GenericDao<Provider, Guid> {
+public interface ProviderDao extends GenericDao<Provider, Guid>, 
SearchDAO<Provider> {
 
     /**
      * Query for the provider by name.
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/provider/ProviderDaoDbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/provider/ProviderDaoDbFacadeImpl.java
index 4e52015..12f9e8a 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/provider/ProviderDaoDbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/provider/ProviderDaoDbFacadeImpl.java
@@ -2,6 +2,7 @@
 
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.util.List;
 
 import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.ProviderType;
@@ -68,4 +69,9 @@
             return entity;
         }
     }
+
+    @Override
+    public List<Provider> getAllWithQuery(String query) {
+        return jdbcTemplate.query(query, ProviderRowMapper.INSTANCE);
+    }
 }
diff --git 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ProviderConditionFieldAutoCompleter.java
 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ProviderConditionFieldAutoCompleter.java
new file mode 100644
index 0000000..acd0c63
--- /dev/null
+++ 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/ProviderConditionFieldAutoCompleter.java
@@ -0,0 +1,41 @@
+package org.ovirt.engine.core.searchbackend;
+
+public class ProviderConditionFieldAutoCompleter extends 
BaseConditionFieldAutoCompleter {
+    private static final String NAME = "NAME";
+    private static final String DESCRIPTION = "DESCRIPTION";
+    private static final String URL = "URL";
+
+    public ProviderConditionFieldAutoCompleter() {
+        // Building the basic verbs dict.
+        mVerbs.put(NAME, NAME);
+        mVerbs.put(DESCRIPTION, DESCRIPTION);
+        mVerbs.put(URL, URL);
+
+        // Building the autoCompletion dict.
+        buildCompletions();
+
+        // Building the types dict.
+        getTypeDictionary().put(NAME, String.class);
+        getTypeDictionary().put(DESCRIPTION, String.class);
+        getTypeDictionary().put(URL, String.class);
+
+        // building the ColumnName dict.
+        columnNameDict.put(NAME, "name");
+        columnNameDict.put(DESCRIPTION, "description");
+        columnNameDict.put(URL, "url");
+
+        // Building the validation dict.
+        buildBasicValidationTable();
+    }
+
+    @Override
+    public IAutoCompleter getFieldRelationshipAutoCompleter(final String 
fieldName) {
+        return StringConditionRelationAutoCompleter.INSTANCE;
+    }
+
+    @Override
+    public IConditionValueAutoCompleter getFieldValueAutoCompleter(String 
fieldName) {
+        return null;
+    }
+
+}
diff --git 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java
 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java
index 1ea10b5..65696e6 100644
--- 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java
+++ 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java
@@ -26,6 +26,7 @@
         mVerbs.put(SearchObjects.GLUSTER_VOLUME_PLU_OBJ_NAME, 
SearchObjects.GLUSTER_VOLUME_PLU_OBJ_NAME);
         mVerbs.put(SearchObjects.QUOTA_OBJ_NAME, SearchObjects.QUOTA_OBJ_NAME);
         mVerbs.put(SearchObjects.NETWORK_PLU_OBJ_NAME, 
SearchObjects.NETWORK_PLU_OBJ_NAME);
+        mVerbs.put(SearchObjects.PROVIDER_PLU_OBJ_NAME, 
SearchObjects.PROVIDER_PLU_OBJ_NAME);
 
         buildCompletions();
         mVerbs.put(SearchObjects.VM_OBJ_NAME, SearchObjects.VM_OBJ_NAME);
@@ -38,6 +39,7 @@
         mVerbs.put(SearchObjects.VDC_CLUSTER_OBJ_NAME, 
SearchObjects.VDC_CLUSTER_OBJ_NAME);
         mVerbs.put(SearchObjects.GLUSTER_VOLUME_OBJ_NAME, 
SearchObjects.GLUSTER_VOLUME_OBJ_NAME);
         mVerbs.put(SearchObjects.NETWORK_OBJ_NAME, 
SearchObjects.NETWORK_OBJ_NAME);
+        mVerbs.put(SearchObjects.PROVIDER_OBJ_NAME, 
SearchObjects.PROVIDER_OBJ_NAME);
 
         // vms - vds
         addJoin(SearchObjects.VM_OBJ_NAME, "run_on_vds", 
SearchObjects.VDS_OBJ_NAME, "vds_id");
@@ -281,6 +283,12 @@
                             "network_vds_view",
                             "vds_name",
                             "network_name ASC"));
+                    put(SearchObjects.PROVIDER_OBJ_NAME, new 
EntitySearchInfo(null,
+                            new ProviderConditionFieldAutoCompleter(),
+                            "providers",
+                            "providers",
+                            "id",
+                            "name ASC"));
                 }
             });
 
@@ -303,6 +311,7 @@
             put(SearchObjects.VDC_POOL_PLU_OBJ_NAME, 
SearchObjects.VDC_POOL_OBJ_NAME);
             put(SearchObjects.VDC_STORAGE_DOMAIN_PLU_OBJ_NAME, 
SearchObjects.VDC_STORAGE_DOMAIN_OBJ_NAME);
             put(SearchObjects.NETWORK_PLU_OBJ_NAME, 
SearchObjects.NETWORK_OBJ_NAME);
+            put(SearchObjects.PROVIDER_PLU_OBJ_NAME, 
SearchObjects.PROVIDER_OBJ_NAME);
         }
     });
 
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 93f67fc..35e20ed 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
@@ -38,6 +38,8 @@
     public static final String VM_NETWORK_INTERFACE_OBJ_NAME = "VNIC";
     public static final String NETWORK_CLUSTER_OBJ_NAME = "CLUSTER_NETWORK";
     public static final String NETWORK_HOST_OBJ_NAME = "HOST_NETWORK";
+    public static final String PROVIDER_OBJ_NAME = "PROVIDER";
+    public static final String PROVIDER_PLU_OBJ_NAME = "PROVIDERS";
 
     //special searches
     private static final String ALERT = "EVENTS: severity=alert";
@@ -76,6 +78,8 @@
         SAFE_SEARCH_EXPR.add(QUOTA_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
         SAFE_SEARCH_EXPR.add(NETWORK_OBJ_NAME.toLowerCase() + SEPARATOR);
         SAFE_SEARCH_EXPR.add(NETWORK_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
+        SAFE_SEARCH_EXPR.add(PROVIDER_OBJ_NAME.toLowerCase() + SEPARATOR);
+        SAFE_SEARCH_EXPR.add(PROVIDER_PLU_OBJ_NAME.toLowerCase() + SEPARATOR);
         SAFE_SEARCH_EXPR.add(ALERT.toLowerCase());
         SAFE_SEARCH_EXPR.add(ERROR.toLowerCase());
         SAFE_SEARCH_EXPR.add(HOST_BY_CPU.toLowerCase());
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/SearchBackend.gwt.xml
 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/SearchBackend.gwt.xml
index 53b3cf0..6018a5b 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/SearchBackend.gwt.xml
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/SearchBackend.gwt.xml
@@ -66,6 +66,7 @@
                <include name="searchbackend/NetworkCrossRefAutoCompleter.java" 
/>
                <include 
name="searchbackend/NetworkInterfaceConditionFieldAutoCompleter.java" />
                <include 
name="searchbackend/NetworkClusterConditionFieldAutoCompleter.java" />
+               <include 
name="searchbackend/ProviderConditionFieldAutoCompleter.java" />
                
<!--======================SEARCHBACKEND/GLUSTER====================== -->
                <include 
name="searchbackend/gluster/GlusterVolumeConditionFieldAutoCompleter.java" />
                <include 
name="searchbackend/gluster/GlusterVolumeCrossRefAutoCompleter.java" />
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderListModel.java
index bfcc22f..27dd2ac 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderListModel.java
@@ -4,13 +4,11 @@
 import java.util.List;
 
 import org.ovirt.engine.core.common.businessentities.Provider;
+import org.ovirt.engine.core.common.interfaces.SearchType;
 import org.ovirt.engine.core.common.mode.ApplicationMode;
-import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
-import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
+import org.ovirt.engine.core.common.queries.SearchParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
-import org.ovirt.engine.ui.frontend.AsyncQuery;
-import org.ovirt.engine.ui.frontend.Frontend;
-import org.ovirt.engine.ui.frontend.INewAsyncCallback;
+import org.ovirt.engine.core.searchbackend.SearchObjects;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
 import org.ovirt.engine.ui.uicommonweb.models.ISupportSystemTreeContext;
@@ -37,7 +35,7 @@
 
         setDefaultSearchString("Provider:"); //$NON-NLS-1$
         setSearchString(getDefaultSearchString());
-        // setSearchObjects(new String[] { SearchObjects.PROVIDER_OBJ_NAME, 
SearchObjects.PROVIDER_PLU_OBJ_NAME });
+        setSearchObjects(new String[] { SearchObjects.PROVIDER_OBJ_NAME, 
SearchObjects.PROVIDER_PLU_OBJ_NAME });
         setAvailableInModes(ApplicationMode.VirtOnly);
 
         setAddCommand(new UICommand(CMD_ADD, this));
@@ -135,22 +133,9 @@
 
     @Override
     protected void syncSearch() {
-        AsyncQuery asyncQuery = new AsyncQuery();
-        asyncQuery.asyncCallback = new INewAsyncCallback() {
-
-            @SuppressWarnings("unchecked")
-            @Override
-            public void onSuccess(Object model, Object ReturnValue) {
-                setItems((List<Provider>) ((VdcQueryReturnValue) 
ReturnValue).getReturnValue());
-            }
-        };
-
-        VdcQueryParametersBase params =
-                new VdcQueryParametersBase();
-        params.setRefresh(getIsQueryFirstTime());
-        Frontend.RunQuery(VdcQueryType.GetAllProviders,
-                params,
-                asyncQuery);
+        SearchParameters tempVar = new SearchParameters(getSearchString(), 
SearchType.Provider);
+        tempVar.setMaxCount(getSearchPageSize());
+        super.syncSearch(VdcQueryType.Search, tempVar);
     }
 
     private void add() {


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

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

Reply via email to