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/06 17:53:17 UTC

airavata git commit: adding not operator to sharing registry

Repository: airavata
Updated Branches:
  refs/heads/develop f71ef2139 -> a54f78133


adding not operator to sharing registry


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

Branch: refs/heads/develop
Commit: a54f78133d494b6f309963f2b39c7fd09c081118
Parents: f71ef21
Author: scnakandala <su...@gmail.com>
Authored: Mon Feb 6 12:53:05 2017 -0500
Committer: scnakandala <su...@gmail.com>
Committed: Mon Feb 6 12:53:05 2017 -0500

----------------------------------------------------------------------
 .../db/repositories/EntityRepository.java       | 24 +++++++++++++++----
 .../registry/SharingRegistryServiceTest.java    | 10 ++++++--
 .../sharing/registry/models/Domain.java         | 25 ++++++++++++++++----
 .../registry/models/EntitySearchField.java      |  4 ++++
 .../registry/models/SearchCondition.java        |  5 +++-
 .../api-docs/sharing_models.html                |  6 +++++
 .../thrift_models/sharing_models.thrift         |  3 ++-
 7 files changed, 65 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/a54f7813/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 f445f36..b470f11 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
@@ -61,11 +61,19 @@ public class EntityRepository extends AbstractRepository<Entity, EntityEntity, E
 
         for(SearchCriteria searchCriteria : filters){
             if(searchCriteria.getSearchField().equals(EntitySearchField.NAME)){
-                query += "E.NAME LIKE '%" + searchCriteria.getValue() + "%' AND ";
+                if (searchCriteria.getSearchCondition() != null && searchCriteria.getSearchCondition().equals(SearchCondition.NOT)) {
+                    query += "E.NAME != '" + searchCriteria.getValue() + "' AND ";
+                } else {
+                    query += "E.NAME LIKE '%" + searchCriteria.getValue() + "%' AND ";
+                }
             }else if(searchCriteria.getSearchField().equals(EntitySearchField.DESCRIPTION)){
                 query += "E.DESCRIPTION LIKE '%" + searchCriteria.getValue() + "%' AND ";
             }else if(searchCriteria.getSearchField().equals(EntitySearchField.PERMISSION_TYPE_ID)){
-                query += "S.PERMISSION_TYPE_ID = '" + searchCriteria.getValue() + "' AND ";
+                if (searchCriteria.getSearchCondition() != null && searchCriteria.getSearchCondition().equals(SearchCondition.NOT)) {
+                    query += "S.PERMISSION_TYPE_ID != '" + searchCriteria.getValue() + "' AND ";
+                } else {
+                    query += "S.PERMISSION_TYPE_ID = '" + searchCriteria.getValue() + "' AND ";
+                }
             }else if(searchCriteria.getSearchField().equals(EntitySearchField.FULL_TEXT)){
                 try {
                     if(ServerSettings.getSetting(JPAUtils.SHARING_REG_JDBC_DRIVER).contains("derby")){
@@ -85,9 +93,17 @@ public class EntityRepository extends AbstractRepository<Entity, EntityEntity, E
                     throw new SharingRegistryException(e.getMessage());
                 }
             }else if(searchCriteria.getSearchField().equals(EntitySearchField.PARRENT_ENTITY_ID)){
-                query += "E.PARENT_ENTITY_ID = '" + searchCriteria.getValue() + "' AND ";
+                if (searchCriteria.getSearchCondition() != null && searchCriteria.getSearchCondition().equals(SearchCondition.NOT)) {
+                    query += "E.PARENT_ENTITY_ID != '" + searchCriteria.getValue() + "' AND ";
+                } else {
+                    query += "E.PARENT_ENTITY_ID = '" + searchCriteria.getValue() + "' AND ";
+                }
             }else if(searchCriteria.getSearchField().equals(EntitySearchField.OWNER_ID)){
-                query += "E.OWNER_ID = '" + searchCriteria.getValue() + "' AND ";
+                if (searchCriteria.getSearchCondition() != null && searchCriteria.getSearchCondition().equals(SearchCondition.NOT)) {
+                    query += "E.OWNER_ID != '" + searchCriteria.getValue() + "' AND ";
+                } else {
+                    query += "E.OWNER_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/a54f7813/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 d289c46..655b7b5 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
@@ -28,7 +28,6 @@ import org.apache.thrift.protocol.TBinaryProtocol;
 import org.apache.thrift.protocol.TProtocol;
 import org.apache.thrift.transport.TSocket;
 import org.apache.thrift.transport.TTransport;
-import org.databene.contiperf.PerfTest;
 import org.databene.contiperf.junit.ContiPerfRule;
 import org.junit.Assert;
 import org.junit.BeforeClass;
@@ -55,7 +54,7 @@ public class SharingRegistryServiceTest {
 
 
     @Test
-    @PerfTest(invocations = 50, threads = 10)
+//    @PerfTest(invocations = 50, threads = 10)
     public void test() throws TException, InterruptedException {
         String serverHost = "localhost";
         int serverPort = 7878;
@@ -317,5 +316,12 @@ public class SharingRegistryServiceTest {
         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);
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/a54f7813/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Domain.java
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Domain.java b/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Domain.java
index 1bcefc7..a0e89a5 100644
--- a/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Domain.java
+++ b/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Domain.java
@@ -6,15 +6,32 @@
  */
 package org.apache.airavata.sharing.registry.models;
 
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.protocol.TTupleProtocol;
 import org.apache.thrift.scheme.IScheme;
 import org.apache.thrift.scheme.SchemeFactory;
 import org.apache.thrift.scheme.StandardScheme;
-import org.apache.thrift.scheme.TupleScheme;
 
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
 import javax.annotation.Generated;
-import java.util.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
 /**

http://git-wip-us.apache.org/repos/asf/airavata/blob/a54f7813/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 581efc3..5b0f66c 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
@@ -7,6 +7,10 @@
 package org.apache.airavata.sharing.registry.models;
 
 
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
 /**
  * <p>This list of fields that can be used to search entities</p>
  * <li>NAME : Name of the entity</li>

http://git-wip-us.apache.org/repos/asf/airavata/blob/a54f7813/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/SearchCondition.java
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/SearchCondition.java b/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/SearchCondition.java
index 80b57e7..cd65078 100644
--- a/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/SearchCondition.java
+++ b/modules/sharing-registry/sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/SearchCondition.java
@@ -25,7 +25,8 @@ public enum SearchCondition implements org.apache.thrift.TEnum {
   LIKE(1),
   FULL_TEXT(2),
   GTE(3),
-  LTE(4);
+  LTE(4),
+  NOT(5);
 
   private final int value;
 
@@ -56,6 +57,8 @@ public enum SearchCondition implements org.apache.thrift.TEnum {
         return GTE;
       case 4:
         return LTE;
+      case 5:
+        return NOT;
       default:
         return null;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a54f7813/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 2bd64ee..d59f72b 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
@@ -108,6 +108,12 @@ considered as a group in it's own right for implementation ease</p>
 </td></tr>
 <tr><td><code>LTE</code></td><td><code>4</code></td><td>
 </td></tr>
+  <tr>
+   <td><code>NOT</code></td>
+   <td><code>5</code></td>
+   <td>
+   </td>
+  </tr>
 </table></div>
 <div class="definition"><h3 id="Enum_SharingType">Enumeration: SharingType</h3>
 <p>This is an internal enum type for managing sharings</p>

http://git-wip-us.apache.org/repos/asf/airavata/blob/a54f7813/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 3216208..d57eb09 100644
--- a/modules/sharing-registry/thrift_models/sharing_models.thrift
+++ b/modules/sharing-registry/thrift_models/sharing_models.thrift
@@ -179,7 +179,8 @@ enum SearchCondition {
     LIKE,
     FULL_TEXT,
     GTE,
-    LTE
+    LTE,
+    NOT
 }
 
 /**