You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2017/02/15 19:25:30 UTC

airavata git commit: removing entity-type-id from sharing search interface

Repository: airavata
Updated Branches:
  refs/heads/develop 3072a7369 -> c8326ae62


removing entity-type-id from sharing search interface


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/c8326ae6
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/c8326ae6
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/c8326ae6

Branch: refs/heads/develop
Commit: c8326ae6243f2bb31d4cd41e5dd5e89fe808c470
Parents: 3072a73
Author: scnakandala <su...@gmail.com>
Authored: Wed Feb 15 14:25:24 2017 -0500
Committer: scnakandala <su...@gmail.com>
Committed: Wed Feb 15 14:25:24 2017 -0500

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   |  34 +++-
 .../db/repositories/EntityRepository.java       |  11 +-
 .../server/SharingRegistryServerHandler.java    |   4 +-
 .../SharingRegistryServerHandlerTest.java       |   9 +-
 .../registry/SharingRegistryServiceTest.java    | 165 +++++++++----------
 .../registry/models/EntitySearchField.java      |   5 +-
 .../service/cpi/SharingRegistryService.java     | 151 +++--------------
 .../api-docs/sharing_cpi.html                   |   1 -
 .../api-docs/sharing_models.html                |   9 +-
 .../sharing-service-docs/index.html             |   6 +
 .../thrift_models/sharing_cpi.thrift            |   2 +-
 .../thrift_models/sharing_models.thrift         |   3 +-
 12 files changed, 168 insertions(+), 232 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/c8326ae6/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index d4479b3..f7c2380 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -825,9 +825,14 @@ public class AiravataServerHandler implements Airavata.Iface {
             if (ServerSettings.isEnableSharing()){
                 // user projects + user accessible projects
                 List<String> accessibleProjectIds = new ArrayList<>();
+                List<SearchCriteria> filters = new ArrayList<>();
+                SearchCriteria searchCriteria = new SearchCriteria();
+                searchCriteria.setSearchField(EntitySearchField.ENTITY_TYPE_ID);
+                searchCriteria.setSearchCondition(SearchCondition.EQUAL);
+                searchCriteria.setValue(gatewayId + ":PROJECT");
+                filters.add(searchCriteria);
                 getSharingRegistryServiceClient().searchEntities(authzToken.getClaimsMap().get(Constants.GATEWAY_ID),
-                        userName+"@"+gatewayId , gatewayId+":PROJECT",
-                        new ArrayList<>(), offset, limit).stream().forEach(p->accessibleProjectIds.add(p.entityId));
+                        userName + "@" + gatewayId, filters, offset, limit).stream().forEach(p -> accessibleProjectIds.add(p.entityId));
                 return getRegistryServiceClient().searchProjects(gatewayId, userName, accessibleProjectIds, new HashMap<>(), limit, offset);
             }else{
                 return getRegistryServiceClient().getUserProjects(gatewayId, userName, limit, offset);
@@ -870,11 +875,16 @@ public class AiravataServerHandler implements Airavata.Iface {
         try {
             List<String> accessibleProjIds  = new ArrayList<>();
 
-            if(ServerSettings.isEnableSharing())
+            if (ServerSettings.isEnableSharing()) {
+                List<SearchCriteria> sharingFilters = new ArrayList<>();
+                SearchCriteria searchCriteria = new SearchCriteria();
+                searchCriteria.setSearchField(EntitySearchField.ENTITY_TYPE_ID);
+                searchCriteria.setSearchCondition(SearchCondition.EQUAL);
+                searchCriteria.setValue(gatewayId + ":PROJECT");
+                sharingFilters.add(searchCriteria);
                 getSharingRegistryServiceClient().searchEntities(authzToken.getClaimsMap().get(Constants.GATEWAY_ID),
-                        userName+"@"+gatewayId, gatewayId+":PROJECT",
-                        new ArrayList<>(), 0, -1).stream().forEach(e->accessibleProjIds.add(e.entityId));
-
+                        userName + "@" + gatewayId, sharingFilters, 0, -1).stream().forEach(e -> accessibleProjIds.add(e.entityId));
+            }
             return getRegistryServiceClient().searchProjects(gatewayId, userName, accessibleProjIds, filters, limit, offset);
         }catch (Exception e) {
             logger.error("Error while retrieving projects", e);
@@ -908,10 +918,16 @@ public class AiravataServerHandler implements Airavata.Iface {
             throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
         try {
             List<String> accessibleExpIds = new ArrayList<>();
-            if(ServerSettings.isEnableSharing())
+            if (ServerSettings.isEnableSharing()) {
+                List<SearchCriteria> sharingFilters = new ArrayList<>();
+                SearchCriteria searchCriteria = new SearchCriteria();
+                searchCriteria.setSearchField(EntitySearchField.ENTITY_TYPE_ID);
+                searchCriteria.setSearchCondition(SearchCondition.EQUAL);
+                searchCriteria.setValue(gatewayId + ":EXPERIMENT");
+                sharingFilters.add(searchCriteria);
                 getSharingRegistryServiceClient().searchEntities(authzToken.getClaimsMap().get(Constants.GATEWAY_ID),
-                        userName+"@"+gatewayId, gatewayId+":EXPERIMENT",
-                        new ArrayList<>(), 0, -1).forEach(e->accessibleExpIds.add(e.entityId));
+                        userName + "@" + gatewayId, sharingFilters, 0, -1).forEach(e -> accessibleExpIds.add(e.entityId));
+            }
             return getRegistryServiceClient().searchExperiments(gatewayId, userName, accessibleExpIds, filters, limit, offset);
         }catch (Exception e) {
             logger.error("Error while retrieving experiments", e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/c8326ae6/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/db/repositories/EntityRepository.java
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/db/repositories/EntityRepository.java b/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/db/repositories/EntityRepository.java
index b470f11..57f364e 100644
--- a/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/db/repositories/EntityRepository.java
+++ b/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/db/repositories/EntityRepository.java
@@ -48,7 +48,7 @@ public class EntityRepository extends AbstractRepository<Entity, EntityEntity, E
         return select(filters, 0, -1);
     }
 
-    public List<Entity> searchEntities(String domainId, List<String> groupIds, String entityTypeId, List<SearchCriteria> filters,
+    public List<Entity> searchEntities(String domainId, List<String> groupIds, List<SearchCriteria> filters,
                                        int offset, int limit) throws SharingRegistryException {
         String groupIdString = "'";
         for(String groupId : groupIds)
@@ -56,8 +56,7 @@ public class EntityRepository extends AbstractRepository<Entity, EntityEntity, E
         groupIdString = groupIdString.substring(0, groupIdString.length()-2);
 
         String query = "SELECT E.* FROM ENTITY AS E INNER JOIN SHARING AS S ON (E.ENTITY_ID=S.ENTITY_ID AND E.DOMAIN_ID=S.DOMAIN_ID) WHERE " +
-                    "E.DOMAIN_ID = '" + domainId + "' AND " + "S.GROUP_ID IN(" + groupIdString + ") AND E." +
-                    "ENTITY_TYPE_ID" + "='" + entityTypeId + "' AND ";
+                "E.DOMAIN_ID = '" + domainId + "' AND " + "S.GROUP_ID IN(" + groupIdString + ") AND ";
 
         for(SearchCriteria searchCriteria : filters){
             if(searchCriteria.getSearchField().equals(EntitySearchField.NAME)){
@@ -104,6 +103,12 @@ public class EntityRepository extends AbstractRepository<Entity, EntityEntity, E
                 } else {
                     query += "E.OWNER_ID = '" + searchCriteria.getValue() + "' AND ";
                 }
+            } else if (searchCriteria.getSearchField().equals(EntitySearchField.ENTITY_TYPE_ID)) {
+                if (searchCriteria.getSearchCondition() != null && searchCriteria.getSearchCondition().equals(SearchCondition.NOT)) {
+                    query += "E.ENTITY_TYPE_ID != '" + searchCriteria.getValue() + "' AND ";
+                } else {
+                    query += "E.ENTITY_TYPE_ID = '" + searchCriteria.getValue() + "' AND ";
+                }
             }else if(searchCriteria.getSearchField().equals(EntitySearchField.CREATED_TIME)){
                 if(searchCriteria.getSearchCondition().equals(SearchCondition.GTE)){
                     query += "E.CREATED_TIME >= " + Integer.parseInt(searchCriteria.getValue().trim()) + " AND ";

http://git-wip-us.apache.org/repos/asf/airavata/blob/c8326ae6/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/server/SharingRegistryServerHandler.java
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/server/SharingRegistryServerHandler.java b/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/server/SharingRegistryServerHandler.java
index 5adf499..34a4a21 100644
--- a/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/server/SharingRegistryServerHandler.java
+++ b/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/server/SharingRegistryServerHandler.java
@@ -688,13 +688,13 @@ public class SharingRegistryServerHandler implements SharingRegistryService.Ifac
     }
 
     @Override
-    public List<Entity> searchEntities(String domainId, String userId, String entityTypeId, List<SearchCriteria> filters,
+    public List<Entity> searchEntities(String domainId, String userId, List<SearchCriteria> filters,
                                        int offset, int limit) throws SharingRegistryException, TException {
         try{
             List<String> groupIds = new ArrayList<>();
             groupIds.add(userId);
             (new GroupMembershipRepository()).getAllParentMembershipsForChild(domainId, userId).stream().forEach(gm -> groupIds.add(gm.parentId));
-            return (new EntityRepository()).searchEntities(domainId, groupIds, entityTypeId, filters, offset, limit);
+            return (new EntityRepository()).searchEntities(domainId, groupIds, filters, offset, limit);
         }catch (SharingRegistryException ex) {
             logger.error(ex.getMessage(), ex);
             throw ex;

http://git-wip-us.apache.org/repos/asf/airavata/blob/c8326ae6/modules/sharing-registry/sharing-registry-server/src/test/java/org/apache/airavata/sharing/registry/SharingRegistryServerHandlerTest.java
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/sharing-registry-server/src/test/java/org/apache/airavata/sharing/registry/SharingRegistryServerHandlerTest.java b/modules/sharing-registry/sharing-registry-server/src/test/java/org/apache/airavata/sharing/registry/SharingRegistryServerHandlerTest.java
index 804f678..627d0e1 100644
--- a/modules/sharing-registry/sharing-registry-server/src/test/java/org/apache/airavata/sharing/registry/SharingRegistryServerHandlerTest.java
+++ b/modules/sharing-registry/sharing-registry-server/src/test/java/org/apache/airavata/sharing/registry/SharingRegistryServerHandlerTest.java
@@ -267,7 +267,14 @@ public class SharingRegistryServerHandlerTest {
         searchCriteria.setValue("Input");
         searchCriteria.setSearchField(EntitySearchField.NAME);
         filters.add(searchCriteria);
-        Assert.assertTrue(sharingRegistryServerHandler.searchEntities(domainId, userId1, entityTypeId3, filters, 0, -1).size() > 0);
+
+        searchCriteria = new SearchCriteria();
+        searchCriteria.setSearchCondition(SearchCondition.EQUAL);
+        searchCriteria.setValue(entityTypeId3);
+        searchCriteria.setSearchField(EntitySearchField.ENTITY_TYPE_ID);
+        filters.add(searchCriteria);
+
+        Assert.assertTrue(sharingRegistryServerHandler.searchEntities(domainId, userId1, filters, 0, -1).size() > 0);
 
         Assert.assertNotNull(sharingRegistryServerHandler.getListOfSharedUsers(domainId, entityId1, permissionTypeId1));
         Assert.assertNotNull(sharingRegistryServerHandler.getListOfSharedGroups(domainId, entityId1, permissionTypeId1));

http://git-wip-us.apache.org/repos/asf/airavata/blob/c8326ae6/modules/sharing-registry/sharing-registry-server/src/test/java/org/apache/airavata/sharing/registry/SharingRegistryServiceTest.java
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/sharing-registry-server/src/test/java/org/apache/airavata/sharing/registry/SharingRegistryServiceTest.java b/modules/sharing-registry/sharing-registry-server/src/test/java/org/apache/airavata/sharing/registry/SharingRegistryServiceTest.java
index 78823ae..588097c 100644
--- a/modules/sharing-registry/sharing-registry-server/src/test/java/org/apache/airavata/sharing/registry/SharingRegistryServiceTest.java
+++ b/modules/sharing-registry/sharing-registry-server/src/test/java/org/apache/airavata/sharing/registry/SharingRegistryServiceTest.java
@@ -20,8 +20,8 @@
 */
 package org.apache.airavata.sharing.registry;
 
-import junit.framework.Assert;
 import org.apache.airavata.sharing.registry.models.*;
+import org.apache.airavata.sharing.registry.server.ServerMain;
 import org.apache.airavata.sharing.registry.service.cpi.SharingRegistryService;
 import org.apache.thrift.TException;
 import org.apache.thrift.protocol.TBinaryProtocol;
@@ -29,6 +29,7 @@ import org.apache.thrift.protocol.TProtocol;
 import org.apache.thrift.transport.TSocket;
 import org.apache.thrift.transport.TTransport;
 import org.databene.contiperf.junit.ContiPerfRule;
+import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Rule;
 import org.junit.Test;
@@ -46,16 +47,16 @@ public class SharingRegistryServiceTest {
 
     @BeforeClass
     public static void setUp() throws InterruptedException {
-//        ServerMain serverMain = new ServerMain();
-//        serverMain.main(new String[]{});
-//        Thread.sleep(1000*2);
+        ServerMain serverMain = new ServerMain();
+        serverMain.main(new String[]{});
+        Thread.sleep(1000 * 2);
     }
 
 
     @Test
 //    @PerfTest(invocations = 50, threads = 10)
     public void test() throws TException, InterruptedException {
-        String serverHost = "gw56.iu.xsede.org";
+        String serverHost = "localhost";
         int serverPort = 7878;
 
         TTransport transport = new TSocket(serverHost, serverPort);
@@ -248,94 +249,90 @@ public class SharingRegistryServiceTest {
         entity2.setFullText("test experiment 1 benzene");
         sharingServiceClient.createEntity(entity2);
 
-//
-//        Entity entity3 = new Entity();
-//        entity3.setEntityId("test-experiment-2");
-//        entity3.setDomainId(domainId);
-//        entity3.setEntityTypeId("EXPERIMENT");
-//        entity3.setOwnerId("test-user-1");
-//        entity3.setName("test-experiment-2");
-//        entity3.setDescription("test experiment 2 description");
-//        entity3.setParentEntityId("test-project-1");
-//        entity3.setFullText("test experiment 1 3-methyl 1-butanol stampede");
-//        sharingServiceClient.createEntity(entity3);
 
+        Entity entity3 = new Entity();
+        entity3.setEntityId("test-experiment-2");
+        entity3.setDomainId(domainId);
+        entity3.setEntityTypeId("EXPERIMENT");
+        entity3.setOwnerId("test-user-1");
+        entity3.setName("test-experiment-2");
+        entity3.setDescription("test experiment 2 description");
+        entity3.setParentEntityId("test-project-1");
+        entity3.setFullText("test experiment 1 3-methyl 1-butanol stampede");
+        sharingServiceClient.createEntity(entity3);
+
+
+        Entity entity4 = new Entity();
+        entity4.setEntityId("test-file-1");
+        entity4.setDomainId(domainId);
+        entity4.setEntityTypeId("FILE");
+        entity4.setOwnerId("test-user-1");
+        entity4.setName("test-file-1");
+        entity4.setDescription("test file 1 description");
+        entity4.setParentEntityId("test-experiment-2");
+        entity4.setFullText("test input file 1 for experiment 2");
+        sharingServiceClient.createEntity(entity4);
+
+        sharingServiceClient.shareEntityWithUsers(domainId, "test-project-1", Arrays.asList("test-user-2"), "WRITE", true);
+        sharingServiceClient.shareEntityWithGroups(domainId, "test-experiment-2", Arrays.asList("test-group-2"), "READ", true);
+        sharingServiceClient.shareEntityWithGroups(domainId, "test-experiment-2", Arrays.asList("test-group-2"), "CLONE", false);
+
+        //true
+        Assert.assertTrue(sharingServiceClient.userHasAccess(domainId, "test-user-2", "test-project-1", "WRITE"));
+        //true
+        Assert.assertTrue(sharingServiceClient.userHasAccess(domainId, "test-user-2", "test-experiment-1", "WRITE"));
+        //true
         Assert.assertTrue(sharingServiceClient.userHasAccess(domainId, "test-user-2", "test-experiment-2", "WRITE"));
 
+        //false
+        Assert.assertFalse(sharingServiceClient.userHasAccess(domainId, "test-user-2", "test-experiment-1", "READ"));
+        //true
+        Assert.assertTrue(sharingServiceClient.userHasAccess(domainId, "test-user-2", "test-experiment-2", "READ"));
+
+        //false
+        Assert.assertFalse(sharingServiceClient.userHasAccess(domainId, "test-user-3", "test-project-1", "READ"));
+        //true
+        Assert.assertTrue(sharingServiceClient.userHasAccess(domainId, "test-user-3", "test-experiment-2", "READ"));
+        //false
+        Assert.assertFalse(sharingServiceClient.userHasAccess(domainId, "test-user-3", "test-experiment-2", "WRITE"));
+
+        //true
+        Assert.assertTrue((sharingServiceClient.userHasAccess(domainId, "test-user-3", "test-experiment-2", "CLONE")));
+        //false
+        Assert.assertFalse((sharingServiceClient.userHasAccess(domainId, "test-user-3", "test-file-1", "CLONE")));
+
         ArrayList<SearchCriteria> filters = new ArrayList<>();
         SearchCriteria searchCriteria = new SearchCriteria();
+        searchCriteria.setSearchCondition(SearchCondition.FULL_TEXT);
+        searchCriteria.setValue("experiment");
+        searchCriteria.setSearchField(EntitySearchField.FULL_TEXT);
+        filters.add(searchCriteria);
+
+        searchCriteria = new SearchCriteria();
         searchCriteria.setSearchCondition(SearchCondition.EQUAL);
-        searchCriteria.setValue("WRITE");
+        searchCriteria.setValue("EXPERIMENT");
+        searchCriteria.setSearchField(EntitySearchField.ENTITY_TYPE_ID);
+        filters.add(searchCriteria);
+
+        searchCriteria = new SearchCriteria();
+        searchCriteria.setSearchCondition(SearchCondition.EQUAL);
+        searchCriteria.setValue("READ");
         searchCriteria.setSearchField(EntitySearchField.PERMISSION_TYPE_ID);
         filters.add(searchCriteria);
 
-        Assert.assertTrue(sharingServiceClient.searchEntities(domainId, "test-user-2", "EXPERIMENT", filters, 0, -1).size() > 0);
-
-//        Entity entity4 = new Entity();
-//        entity4.setEntityId("test-file-1");
-//        entity4.setDomainId(domainId);
-//        entity4.setEntityTypeId("FILE");
-//        entity4.setOwnerId("test-user-1");
-//        entity4.setName("test-file-1");
-//        entity4.setDescription("test file 1 description");
-//        entity4.setParentEntityId("test-experiment-2");
-//        entity4.setFullText("test input file 1 for experiment 2");
-//        sharingServiceClient.createEntity(entity4);
-
-//        sharingServiceClient.shareEntityWithUsers(domainId, "test-project-1", Arrays.asList("test-user-2"), "WRITE", true);
-//        sharingServiceClient.shareEntityWithGroups(domainId, "test-experiment-2", Arrays.asList("test-group-2"), "READ", true);
-//        sharingServiceClient.shareEntityWithGroups(domainId, "test-experiment-2", Arrays.asList("test-group-2"), "CLONE", false);
-//
-//        //true
-//        Assert.assertTrue(sharingServiceClient.userHasAccess(domainId, "test-user-2", "test-project-1", "WRITE"));
-//        //true
-//        Assert.assertTrue(sharingServiceClient.userHasAccess(domainId, "test-user-2", "test-experiment-1", "WRITE"));
-//        //true
-//        Assert.assertTrue(sharingServiceClient.userHasAccess(domainId, "test-user-2", "test-experiment-2", "WRITE"));
-//
-//        //false
-//        Assert.assertFalse(sharingServiceClient.userHasAccess(domainId, "test-user-2", "test-experiment-1", "READ"));
-//        //true
-//        Assert.assertTrue(sharingServiceClient.userHasAccess(domainId, "test-user-2", "test-experiment-2", "READ"));
-//
-//        //false
-//        Assert.assertFalse(sharingServiceClient.userHasAccess(domainId, "test-user-3", "test-project-1", "READ"));
-//        //true
-//        Assert.assertTrue(sharingServiceClient.userHasAccess(domainId, "test-user-3", "test-experiment-2", "READ"));
-//        //false
-//        Assert.assertFalse(sharingServiceClient.userHasAccess(domainId, "test-user-3", "test-experiment-2", "WRITE"));
-//
-//        //true
-//        Assert.assertTrue((sharingServiceClient.userHasAccess(domainId, "test-user-3", "test-experiment-2", "CLONE")));
-//        //false
-//        Assert.assertFalse((sharingServiceClient.userHasAccess(domainId, "test-user-3", "test-file-1", "CLONE")));
-//
-//        ArrayList<SearchCriteria> filters = new ArrayList<>();
-//        SearchCriteria searchCriteria = new SearchCriteria();
-//        searchCriteria.setSearchCondition(SearchCondition.FULL_TEXT);
-//        searchCriteria.setValue("experiment");
-//        searchCriteria.setSearchField(EntitySearchField.FULL_TEXT);
-//        filters.add(searchCriteria);
-//
-//        searchCriteria = new SearchCriteria();
-//        searchCriteria.setSearchCondition(SearchCondition.EQUAL);
-//        searchCriteria.setValue("READ");
-//        searchCriteria.setSearchField(EntitySearchField.PERMISSION_TYPE_ID);
-//        filters.add(searchCriteria);
-//
-//        Assert.assertTrue(sharingServiceClient.searchEntities(domainId, "test-user-2", "EXPERIMENT", filters, 0, -1).size()==1);
-//        Entity persistedEntity = sharingServiceClient.searchEntities(
-//                domainId, "test-user-2", "EXPERIMENT", filters, 0, -1).get(0);
-//        Assert.assertEquals(entity3.getName(), persistedEntity.getName());
-//        Assert.assertEquals(entity3.getDescription(), persistedEntity.getDescription());
-//        Assert.assertEquals(entity3.getFullText(), persistedEntity.getFullText());
-//
-//        searchCriteria = new SearchCriteria();
-//        searchCriteria.setSearchCondition(SearchCondition.NOT);
-//        searchCriteria.setValue("test-user-1");
-//        searchCriteria.setSearchField(EntitySearchField.OWNER_ID);
-//        filters.add(searchCriteria);
-//        Assert.assertTrue(sharingServiceClient.searchEntities(domainId, "test-user-2", "EXPERIMENT", filters, 0, -1).size() == 0);
+        Assert.assertTrue(sharingServiceClient.searchEntities(domainId, "test-user-2", filters, 0, -1).size() == 1);
+        Entity persistedEntity = sharingServiceClient.searchEntities(
+                domainId, "test-user-2", filters, 0, -1).get(0);
+        Assert.assertEquals(entity3.getName(), persistedEntity.getName());
+        Assert.assertEquals(entity3.getDescription(), persistedEntity.getDescription());
+        Assert.assertEquals(entity3.getFullText(), persistedEntity.getFullText());
+
+        searchCriteria = new SearchCriteria();
+        searchCriteria.setSearchCondition(SearchCondition.NOT);
+        searchCriteria.setValue("test-user-1");
+        searchCriteria.setSearchField(EntitySearchField.OWNER_ID);
+        filters.add(searchCriteria);
+        Assert.assertTrue(sharingServiceClient.searchEntities(domainId, "test-user-2", filters, 0, -1).size() == 0);
 
         transport.close();
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/c8326ae6/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/EntitySearchField.java
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/EntitySearchField.java b/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/EntitySearchField.java
index 5b0f66c..91d245f 100644
--- a/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/EntitySearchField.java
+++ b/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/EntitySearchField.java
@@ -30,7 +30,8 @@ public enum EntitySearchField implements org.apache.thrift.TEnum {
   OWNER_ID(4),
   PERMISSION_TYPE_ID(5),
   CREATED_TIME(6),
-  UPDATED_TIME(7);
+  UPDATED_TIME(7),
+  ENTITY_TYPE_ID(8);
 
   private final int value;
 
@@ -67,6 +68,8 @@ public enum EntitySearchField implements org.apache.thrift.TEnum {
         return CREATED_TIME;
       case 7:
         return UPDATED_TIME;
+      case 8:
+        return ENTITY_TYPE_ID;
       default:
         return null;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/c8326ae6/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/service/cpi/SharingRegistryService.java
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/service/cpi/SharingRegistryService.java b/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/service/cpi/SharingRegistryService.java
index 9e69d8a..2fc5691 100644
--- a/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/service/cpi/SharingRegistryService.java
+++ b/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/service/cpi/SharingRegistryService.java
@@ -286,12 +286,11 @@ public class SharingRegistryService {
      * 
      * @param domainId
      * @param userId
-     * @param entityTypeId
      * @param filters
      * @param offset
      * @param limit
      */
-    public List<org.apache.airavata.sharing.registry.models.Entity> searchEntities(String domainId, String userId, String entityTypeId, List<org.apache.airavata.sharing.registry.models.SearchCriteria> filters, int offset, int limit) throws org.apache.airavata.sharing.registry.models.SharingRegistryException, org.apache.thrift.TException;
+    public List<org.apache.airavata.sharing.registry.models.Entity> searchEntities(String domainId, String userId, List<org.apache.airavata.sharing.registry.models.SearchCriteria> filters, int offset, int limit) throws org.apache.airavata.sharing.registry.models.SharingRegistryException, org.apache.thrift.TException;
 
     /**
      * <p>API method to get a list of shared users given the entity id</p>
@@ -466,7 +465,7 @@ public class SharingRegistryService {
 
     public void getEntity(String domainId, String entityId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void searchEntities(String domainId, String userId, String entityTypeId, List<org.apache.airavata.sharing.registry.models.SearchCriteria> filters, int offset, int limit, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void searchEntities(String domainId, String userId, List<org.apache.airavata.sharing.registry.models.SearchCriteria> filters, int offset, int limit, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void getListOfSharedUsers(String domainId, String entityId, String permissionTypeId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
@@ -1320,18 +1319,17 @@ public class SharingRegistryService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getEntity failed: unknown result");
     }
 
-    public List<org.apache.airavata.sharing.registry.models.Entity> searchEntities(String domainId, String userId, String entityTypeId, List<org.apache.airavata.sharing.registry.models.SearchCriteria> filters, int offset, int limit) throws org.apache.airavata.sharing.registry.models.SharingRegistryException, org.apache.thrift.TException
+    public List<org.apache.airavata.sharing.registry.models.Entity> searchEntities(String domainId, String userId, List<org.apache.airavata.sharing.registry.models.SearchCriteria> filters, int offset, int limit) throws org.apache.airavata.sharing.registry.models.SharingRegistryException, org.apache.thrift.TException
     {
-      send_searchEntities(domainId, userId, entityTypeId, filters, offset, limit);
+      send_searchEntities(domainId, userId, filters, offset, limit);
       return recv_searchEntities();
     }
 
-    public void send_searchEntities(String domainId, String userId, String entityTypeId, List<org.apache.airavata.sharing.registry.models.SearchCriteria> filters, int offset, int limit) throws org.apache.thrift.TException
+    public void send_searchEntities(String domainId, String userId, List<org.apache.airavata.sharing.registry.models.SearchCriteria> filters, int offset, int limit) throws org.apache.thrift.TException
     {
       searchEntities_args args = new searchEntities_args();
       args.setDomainId(domainId);
       args.setUserId(userId);
-      args.setEntityTypeId(entityTypeId);
       args.setFilters(filters);
       args.setOffset(offset);
       args.setLimit(limit);
@@ -2753,9 +2751,9 @@ public class SharingRegistryService {
       }
     }
 
-    public void searchEntities(String domainId, String userId, String entityTypeId, List<org.apache.airavata.sharing.registry.models.SearchCriteria> filters, int offset, int limit, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void searchEntities(String domainId, String userId, List<org.apache.airavata.sharing.registry.models.SearchCriteria> filters, int offset, int limit, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      searchEntities_call method_call = new searchEntities_call(domainId, userId, entityTypeId, filters, offset, limit, resultHandler, this, ___protocolFactory, ___transport);
+      searchEntities_call method_call = new searchEntities_call(domainId, userId, filters, offset, limit, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
@@ -2763,15 +2761,14 @@ public class SharingRegistryService {
     public static class searchEntities_call extends org.apache.thrift.async.TAsyncMethodCall {
       private String domainId;
       private String userId;
-      private String entityTypeId;
       private List<org.apache.airavata.sharing.registry.models.SearchCriteria> filters;
       private int offset;
       private int limit;
-      public searchEntities_call(String domainId, String userId, String entityTypeId, List<org.apache.airavata.sharing.registry.models.SearchCriteria> filters, int offset, int limit, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+
+      public searchEntities_call(String domainId, String userId, List<org.apache.airavata.sharing.registry.models.SearchCriteria> filters, int offset, int limit, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.domainId = domainId;
         this.userId = userId;
-        this.entityTypeId = entityTypeId;
         this.filters = filters;
         this.offset = offset;
         this.limit = limit;
@@ -2782,7 +2779,6 @@ public class SharingRegistryService {
         searchEntities_args args = new searchEntities_args();
         args.setDomainId(domainId);
         args.setUserId(userId);
-        args.setEntityTypeId(entityTypeId);
         args.setFilters(filters);
         args.setOffset(offset);
         args.setLimit(limit);
@@ -4064,7 +4060,7 @@ public class SharingRegistryService {
       public searchEntities_result getResult(I iface, searchEntities_args args) throws org.apache.thrift.TException {
         searchEntities_result result = new searchEntities_result();
         try {
-          result.success = iface.searchEntities(args.domainId, args.userId, args.entityTypeId, args.filters, args.offset, args.limit);
+          result.success = iface.searchEntities(args.domainId, args.userId, args.filters, args.offset, args.limit);
         } catch (org.apache.airavata.sharing.registry.models.SharingRegistryException sre) {
           result.sre = sre;
         }
@@ -6197,7 +6193,7 @@ public class SharingRegistryService {
       }
 
       public void start(I iface, searchEntities_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.sharing.registry.models.Entity>> resultHandler) throws TException {
-        iface.searchEntities(args.domainId, args.userId, args.entityTypeId, args.filters, args.offset, args.limit,resultHandler);
+        iface.searchEntities(args.domainId, args.userId, args.filters, args.offset, args.limit, resultHandler);
       }
     }
 
@@ -34898,10 +34894,9 @@ public class SharingRegistryService {
 
     private static final org.apache.thrift.protocol.TField DOMAIN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("domainId", org.apache.thrift.protocol.TType.STRING, (short)1);
     private static final org.apache.thrift.protocol.TField USER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("userId", org.apache.thrift.protocol.TType.STRING, (short)2);
-    private static final org.apache.thrift.protocol.TField ENTITY_TYPE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("entityTypeId", org.apache.thrift.protocol.TType.STRING, (short)3);
-    private static final org.apache.thrift.protocol.TField FILTERS_FIELD_DESC = new org.apache.thrift.protocol.TField("filters", org.apache.thrift.protocol.TType.LIST, (short)4);
-    private static final org.apache.thrift.protocol.TField OFFSET_FIELD_DESC = new org.apache.thrift.protocol.TField("offset", org.apache.thrift.protocol.TType.I32, (short)5);
-    private static final org.apache.thrift.protocol.TField LIMIT_FIELD_DESC = new org.apache.thrift.protocol.TField("limit", org.apache.thrift.protocol.TType.I32, (short)6);
+    private static final org.apache.thrift.protocol.TField FILTERS_FIELD_DESC = new org.apache.thrift.protocol.TField("filters", org.apache.thrift.protocol.TType.LIST, (short) 3);
+    private static final org.apache.thrift.protocol.TField OFFSET_FIELD_DESC = new org.apache.thrift.protocol.TField("offset", org.apache.thrift.protocol.TType.I32, (short) 4);
+    private static final org.apache.thrift.protocol.TField LIMIT_FIELD_DESC = new org.apache.thrift.protocol.TField("limit", org.apache.thrift.protocol.TType.I32, (short) 5);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
@@ -34911,7 +34906,6 @@ public class SharingRegistryService {
 
     public String domainId; // required
     public String userId; // required
-    public String entityTypeId; // required
     public List<org.apache.airavata.sharing.registry.models.SearchCriteria> filters; // required
     public int offset; // required
     public int limit; // required
@@ -34920,10 +34914,9 @@ public class SharingRegistryService {
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
       DOMAIN_ID((short)1, "domainId"),
       USER_ID((short)2, "userId"),
-      ENTITY_TYPE_ID((short)3, "entityTypeId"),
-      FILTERS((short)4, "filters"),
-      OFFSET((short)5, "offset"),
-      LIMIT((short)6, "limit");
+      FILTERS((short) 3, "filters"),
+      OFFSET((short) 4, "offset"),
+      LIMIT((short) 5, "limit");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -34942,13 +34935,11 @@ public class SharingRegistryService {
             return DOMAIN_ID;
           case 2: // USER_ID
             return USER_ID;
-          case 3: // ENTITY_TYPE_ID
-            return ENTITY_TYPE_ID;
-          case 4: // FILTERS
+          case 3: // FILTERS
             return FILTERS;
-          case 5: // OFFSET
+          case 4: // OFFSET
             return OFFSET;
-          case 6: // LIMIT
+          case 5: // LIMIT
             return LIMIT;
           default:
             return null;
@@ -35000,8 +34991,6 @@ public class SharingRegistryService {
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       tmpMap.put(_Fields.USER_ID, new org.apache.thrift.meta_data.FieldMetaData("userId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-      tmpMap.put(_Fields.ENTITY_TYPE_ID, new org.apache.thrift.meta_data.FieldMetaData("entityTypeId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       tmpMap.put(_Fields.FILTERS, new org.apache.thrift.meta_data.FieldMetaData("filters", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
               new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.sharing.registry.models.SearchCriteria.class))));
@@ -35019,7 +35008,6 @@ public class SharingRegistryService {
     public searchEntities_args(
       String domainId,
       String userId,
-      String entityTypeId,
       List<org.apache.airavata.sharing.registry.models.SearchCriteria> filters,
       int offset,
       int limit)
@@ -35027,7 +35015,6 @@ public class SharingRegistryService {
       this();
       this.domainId = domainId;
       this.userId = userId;
-      this.entityTypeId = entityTypeId;
       this.filters = filters;
       this.offset = offset;
       setOffsetIsSet(true);
@@ -35046,9 +35033,6 @@ public class SharingRegistryService {
       if (other.isSetUserId()) {
         this.userId = other.userId;
       }
-      if (other.isSetEntityTypeId()) {
-        this.entityTypeId = other.entityTypeId;
-      }
       if (other.isSetFilters()) {
         List<org.apache.airavata.sharing.registry.models.SearchCriteria> __this__filters = new ArrayList<org.apache.airavata.sharing.registry.models.SearchCriteria>(other.filters.size());
         for (org.apache.airavata.sharing.registry.models.SearchCriteria other_element : other.filters) {
@@ -35068,7 +35052,6 @@ public class SharingRegistryService {
     public void clear() {
       this.domainId = null;
       this.userId = null;
-      this.entityTypeId = null;
       this.filters = null;
       setOffsetIsSet(false);
       this.offset = 0;
@@ -35124,30 +35107,6 @@ public class SharingRegistryService {
       }
     }
 
-    public String getEntityTypeId() {
-      return this.entityTypeId;
-    }
-
-    public searchEntities_args setEntityTypeId(String entityTypeId) {
-      this.entityTypeId = entityTypeId;
-      return this;
-    }
-
-    public void unsetEntityTypeId() {
-      this.entityTypeId = null;
-    }
-
-    /** Returns true if field entityTypeId is set (has been assigned a value) and false otherwise */
-    public boolean isSetEntityTypeId() {
-      return this.entityTypeId != null;
-    }
-
-    public void setEntityTypeIdIsSet(boolean value) {
-      if (!value) {
-        this.entityTypeId = null;
-      }
-    }
-
     public int getFiltersSize() {
       return (this.filters == null) ? 0 : this.filters.size();
     }
@@ -35251,14 +35210,6 @@ public class SharingRegistryService {
         }
         break;
 
-      case ENTITY_TYPE_ID:
-        if (value == null) {
-          unsetEntityTypeId();
-        } else {
-          setEntityTypeId((String)value);
-        }
-        break;
-
       case FILTERS:
         if (value == null) {
           unsetFilters();
@@ -35294,9 +35245,6 @@ public class SharingRegistryService {
       case USER_ID:
         return getUserId();
 
-      case ENTITY_TYPE_ID:
-        return getEntityTypeId();
-
       case FILTERS:
         return getFilters();
 
@@ -35321,8 +35269,6 @@ public class SharingRegistryService {
         return isSetDomainId();
       case USER_ID:
         return isSetUserId();
-      case ENTITY_TYPE_ID:
-        return isSetEntityTypeId();
       case FILTERS:
         return isSetFilters();
       case OFFSET:
@@ -35364,15 +35310,6 @@ public class SharingRegistryService {
           return false;
       }
 
-      boolean this_present_entityTypeId = true && this.isSetEntityTypeId();
-      boolean that_present_entityTypeId = true && that.isSetEntityTypeId();
-      if (this_present_entityTypeId || that_present_entityTypeId) {
-        if (!(this_present_entityTypeId && that_present_entityTypeId))
-          return false;
-        if (!this.entityTypeId.equals(that.entityTypeId))
-          return false;
-      }
-
       boolean this_present_filters = true && this.isSetFilters();
       boolean that_present_filters = true && that.isSetFilters();
       if (this_present_filters || that_present_filters) {
@@ -35417,11 +35354,6 @@ public class SharingRegistryService {
       if (present_userId)
         list.add(userId);
 
-      boolean present_entityTypeId = true && (isSetEntityTypeId());
-      list.add(present_entityTypeId);
-      if (present_entityTypeId)
-        list.add(entityTypeId);
-
       boolean present_filters = true && (isSetFilters());
       list.add(present_filters);
       if (present_filters)
@@ -35468,16 +35400,6 @@ public class SharingRegistryService {
           return lastComparison;
         }
       }
-      lastComparison = Boolean.valueOf(isSetEntityTypeId()).compareTo(other.isSetEntityTypeId());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      if (isSetEntityTypeId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.entityTypeId, other.entityTypeId);
-        if (lastComparison != 0) {
-          return lastComparison;
-        }
-      }
       lastComparison = Boolean.valueOf(isSetFilters()).compareTo(other.isSetFilters());
       if (lastComparison != 0) {
         return lastComparison;
@@ -35544,14 +35466,6 @@ public class SharingRegistryService {
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("entityTypeId:");
-      if (this.entityTypeId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.entityTypeId);
-      }
-      first = false;
-      if (!first) sb.append(", ");
       sb.append("filters:");
       if (this.filters == null) {
         sb.append("null");
@@ -35579,9 +35493,6 @@ public class SharingRegistryService {
       if (userId == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'userId' was not present! Struct: " + toString());
       }
-      if (entityTypeId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'entityTypeId' was not present! Struct: " + toString());
-      }
       if (filters == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'filters' was not present! Struct: " + toString());
       }
@@ -35642,15 +35553,7 @@ public class SharingRegistryService {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 3: // ENTITY_TYPE_ID
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.entityTypeId = iprot.readString();
-                struct.setEntityTypeIdIsSet(true);
-              } else { 
-                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-              }
-              break;
-            case 4: // FILTERS
+            case 3: // FILTERS
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
                   org.apache.thrift.protocol.TList _list72 = iprot.readListBegin();
@@ -35669,7 +35572,7 @@ public class SharingRegistryService {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 5: // OFFSET
+            case 4: // OFFSET
               if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                 struct.offset = iprot.readI32();
                 struct.setOffsetIsSet(true);
@@ -35677,7 +35580,7 @@ public class SharingRegistryService {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 6: // LIMIT
+            case 5: // LIMIT
               if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                 struct.limit = iprot.readI32();
                 struct.setLimitIsSet(true);
@@ -35716,11 +35619,6 @@ public class SharingRegistryService {
           oprot.writeString(struct.userId);
           oprot.writeFieldEnd();
         }
-        if (struct.entityTypeId != null) {
-          oprot.writeFieldBegin(ENTITY_TYPE_ID_FIELD_DESC);
-          oprot.writeString(struct.entityTypeId);
-          oprot.writeFieldEnd();
-        }
         if (struct.filters != null) {
           oprot.writeFieldBegin(FILTERS_FIELD_DESC);
           {
@@ -35758,7 +35656,6 @@ public class SharingRegistryService {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         oprot.writeString(struct.domainId);
         oprot.writeString(struct.userId);
-        oprot.writeString(struct.entityTypeId);
         {
           oprot.writeI32(struct.filters.size());
           for (org.apache.airavata.sharing.registry.models.SearchCriteria _iter76 : struct.filters)
@@ -35777,8 +35674,6 @@ public class SharingRegistryService {
         struct.setDomainIdIsSet(true);
         struct.userId = iprot.readString();
         struct.setUserIdIsSet(true);
-        struct.entityTypeId = iprot.readString();
-        struct.setEntityTypeIdIsSet(true);
         {
           org.apache.thrift.protocol.TList _list77 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
           struct.filters = new ArrayList<org.apache.airavata.sharing.registry.models.SearchCriteria>(_list77.size);

http://git-wip-us.apache.org/repos/asf/airavata/blob/c8326ae6/modules/sharing-registry/sharing-service-docs/api-docs/sharing_cpi.html
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/sharing-service-docs/api-docs/sharing_cpi.html b/modules/sharing-registry/sharing-service-docs/api-docs/sharing_cpi.html
index fc081dc..5ec6076 100644
--- a/modules/sharing-registry/sharing-service-docs/api-docs/sharing_cpi.html
+++ b/modules/sharing-registry/sharing-service-docs/api-docs/sharing_cpi.html
@@ -215,7 +215,6 @@
 <br/></div><div class="definition"><h4 id="Fn_SharingRegistryService_searchEntities">Function: SharingRegistryService.searchEntities</h4>
 <pre><code>list&lt;<code><a href="sharing_models.html#Struct_Entity">sharing_models.Entity</a></code>&gt;</code> searchEntities(<code>string</code> domainId,
                                            <code>string</code> userId,
-                                           <code>string</code> entityTypeId,
                                            <code>list&lt;<code><a href="sharing_models.html#Struct_SearchCriteria">sharing_models.SearchCriteria</a></code>&gt;</code> filters,
                                            <code>i32</code> offset,
                                            <code>i32</code> limit)

http://git-wip-us.apache.org/repos/asf/airavata/blob/c8326ae6/modules/sharing-registry/sharing-service-docs/api-docs/sharing_models.html
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/sharing-service-docs/api-docs/sharing_models.html b/modules/sharing-registry/sharing-service-docs/api-docs/sharing_models.html
index 2f1c57e..c21add8 100644
--- a/modules/sharing-registry/sharing-service-docs/api-docs/sharing_models.html
+++ b/modules/sharing-registry/sharing-service-docs/api-docs/sharing_models.html
@@ -70,6 +70,7 @@ considered as a group in it's own right for implementation ease</p>
 <li>OWNER_ID : Owner of the entity</li>
 <li>CREATED_TIME : Created time of the entity</li>
 <li>UPDATED_TIME : Updated time of the entity</li>
+ <li>ENTITY_TYPE_ID : Entity type ID</li>
 
 <br/><br/><table class="table-bordered table-striped table-condensed">
 <tr><td><code>NAME</code></td><td><code>0</code></td><td>
@@ -88,10 +89,16 @@ considered as a group in it's own right for implementation ease</p>
 </td></tr>
 <tr><td><code>UPDATED_TIME</code></td><td><code>7</code></td><td>
 </td></tr>
+  <tr>
+   <td><code>ENTITY_TYPE_ID</code></td>
+   <td><code>8</code></td>
+   <td>
+   </td>
+  </tr>
 </table></div>
 <div class="definition"><h3 id="Enum_SearchCondition">Enumeration: SearchCondition</h3>
 <p>Different search operators that can be used with the entity search fields</p>
- <li>EQUAL : Simply matches for equality. Applicable for name, permission type id, and parent entity id</li>
+ <li>EQUAL : Simply matches for equality. Applicable for name, and parent entity id</li>
 <li>LIKE : Check for the condition %$FIELD% condition. Applicable for name, and description</li>
 <li>FULL_TEXT : Does a full text search. Only applicable for the FULL_TEXT field.</li>
 <li>GTE : Greater than or equal. Only applicable for created time and updated time.</li>

http://git-wip-us.apache.org/repos/asf/airavata/blob/c8326ae6/modules/sharing-registry/sharing-service-docs/index.html
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/sharing-service-docs/index.html b/modules/sharing-registry/sharing-service-docs/index.html
index 7940956..674aa61 100644
--- a/modules/sharing-registry/sharing-service-docs/index.html
+++ b/modules/sharing-registry/sharing-service-docs/index.html
@@ -348,6 +348,12 @@
 
                 searchCriteria = new SearchCriteria();
                 searchCriteria.setSearchCondition(SearchCondition.EQUAL);
+                searchCriteria.setValue("EXPERIMENT");
+                searchCriteria.setSearchField(EntitySearchField.ENTITY_TYPE_ID);
+                filters.add(searchCriteria);
+
+                searchCriteria = new SearchCriteria();
+                searchCriteria.setSearchCondition(SearchCondition.EQUAL);
                 searchCriteria.setValue("READ");
                 searchCriteria.setSearchField(EntitySearchField.PERMISSION_TYPE_ID);
                 filters.add(searchCriteria);

http://git-wip-us.apache.org/repos/asf/airavata/blob/c8326ae6/modules/sharing-registry/thrift_models/sharing_cpi.thrift
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/thrift_models/sharing_cpi.thrift b/modules/sharing-registry/thrift_models/sharing_cpi.thrift
index 7dd0775..5cd837e 100644
--- a/modules/sharing-registry/thrift_models/sharing_cpi.thrift
+++ b/modules/sharing-registry/thrift_models/sharing_cpi.thrift
@@ -156,7 +156,7 @@ service SharingRegistryService {
     /**
      <p>API method to search entities</p>
     */
-    list<sharing_models.Entity> searchEntities(1: required string domainId, 2: required string userId, 3: required string entityTypeId, 4: required list<sharing_models.SearchCriteria> filters, 5: required i32 offset, 6: required i32 limit) throws (1: sharing_models.SharingRegistryException sre)
+    list<sharing_models.Entity> searchEntities(1: required string domainId, 2: required string userId, 3: required list<sharing_models.SearchCriteria> filters, 4: required i32 offset, 5: required i32 limit) throws (1: sharing_models.SharingRegistryException sre)
     /**
      <p>API method to get a list of shared users given the entity id</p>
     */

http://git-wip-us.apache.org/repos/asf/airavata/blob/c8326ae6/modules/sharing-registry/thrift_models/sharing_models.thrift
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/thrift_models/sharing_models.thrift b/modules/sharing-registry/thrift_models/sharing_models.thrift
index d57eb09..c646c85 100644
--- a/modules/sharing-registry/thrift_models/sharing_models.thrift
+++ b/modules/sharing-registry/thrift_models/sharing_models.thrift
@@ -163,7 +163,8 @@ enum EntitySearchField {
     OWNER_ID,
     PERMISSION_TYPE_ID,
     CREATED_TIME,
-    UPDATED_TIME
+    UPDATED_TIME,
+    ENTITY_TYPE_ID
 }
 
 /**