You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sf...@apache.org on 2015/08/27 01:50:28 UTC

[1/2] usergrid git commit: passing tests

Repository: usergrid
Updated Branches:
  refs/heads/entity-size e6b6c0789 -> a11aaa03d


passing tests


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

Branch: refs/heads/entity-size
Commit: bed924fcdff60732361db43b5f455cbe07ec4b17
Parents: e6b6c07
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Aug 26 16:51:17 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Aug 26 16:51:17 2015 -0600

----------------------------------------------------------------------
 .../apache/usergrid/persistence/EntityTest.java |  2 +-
 .../apache/usergrid/utils/IndexUtilsTest.java   |  2 +-
 .../applications/ApplicationResource.java       | 42 ++++++++++++++++++--
 .../usergrid/management/ManagementService.java  |  4 ++
 .../cassandra/ManagementServiceImpl.java        | 23 +++++++++++
 5 files changed, 68 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/bed924fc/stack/core/src/test/java/org/apache/usergrid/persistence/EntityTest.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/EntityTest.java b/stack/core/src/test/java/org/apache/usergrid/persistence/EntityTest.java
index e9e6163..0e29a71 100644
--- a/stack/core/src/test/java/org/apache/usergrid/persistence/EntityTest.java
+++ b/stack/core/src/test/java/org/apache/usergrid/persistence/EntityTest.java
@@ -81,7 +81,7 @@ public class EntityTest {
         User user = new User();
         // user.setId(UUIDUtils.newTimeUUID());
         user.setProperty( "foo", "bar" );
-        assertEquals( "{\"type\":\"user\",\"foo\":\"bar\"}", JsonUtils.mapToJsonString( user ) );
+        assertEquals( "{\"type\":\"user\",\"size\":0,\"foo\":\"bar\"}", JsonUtils.mapToJsonString( user ) );
 
         String json = "{\"username\":\"edanuff\", \"bar\" : \"baz\" }";
         Map<String, Object> p = ( Map<String, Object> ) JsonUtils.parse( json );

http://git-wip-us.apache.org/repos/asf/usergrid/blob/bed924fc/stack/core/src/test/java/org/apache/usergrid/utils/IndexUtilsTest.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/utils/IndexUtilsTest.java b/stack/core/src/test/java/org/apache/usergrid/utils/IndexUtilsTest.java
index c107f20..a727e3f 100644
--- a/stack/core/src/test/java/org/apache/usergrid/utils/IndexUtilsTest.java
+++ b/stack/core/src/test/java/org/apache/usergrid/utils/IndexUtilsTest.java
@@ -66,6 +66,6 @@ public class IndexUtilsTest {
             LOG.info( e.getKey() + " = " + e.getValue() );
         }
 
-        assertEquals( 7, l.size() );
+        assertEquals( 8, l.size() );
     }
 }

http://git-wip-us.apache.org/repos/asf/usergrid/blob/bed924fc/stack/rest/src/main/java/org/apache/usergrid/rest/management/organizations/applications/ApplicationResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/management/organizations/applications/ApplicationResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/management/organizations/applications/ApplicationResource.java
index bcec775..fcb01d7 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/management/organizations/applications/ApplicationResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/management/organizations/applications/ApplicationResource.java
@@ -134,13 +134,13 @@ public class ApplicationResource extends AbstractContextResource {
         throws Exception {
 
         ApiResponse response = createApiResponse();
-        response.setAction( "get application client credentials" );
+        response.setAction("get application client credentials");
 
         ClientCredentialsInfo credentials =
                 new ClientCredentialsInfo( management.getClientIdForApplication( applicationId ),
                         management.getClientSecretForApplication( applicationId ) );
 
-        response.setCredentials( credentials );
+        response.setCredentials(credentials);
         return new JSONWithPadding( response, callback );
     }
 
@@ -157,12 +157,48 @@ public class ApplicationResource extends AbstractContextResource {
 
         ClientCredentialsInfo credentials =
                 new ClientCredentialsInfo( management.getClientIdForApplication( applicationId ),
-                        management.newClientSecretForApplication( applicationId ) );
+                        management.newClientSecretForApplication(applicationId) );
 
         response.setCredentials( credentials );
         return new JSONWithPadding( response, callback );
     }
 
+    @RequireOrganizationAccess
+    @GET
+    @Path("size")
+    public JSONWithPadding getApplicationSize(
+        @Context UriInfo ui, @QueryParam("callback") @DefaultValue("callback") String callback )
+        throws Exception {
+
+        ApiResponse response = createApiResponse();
+        response.setAction( "get application size for all entities" );
+        long size = management.getApplicationSize(this.applicationId);
+        Map<String,Object> map = new HashMap<>();
+        Map<String,Object> innerMap = new HashMap<>();
+        innerMap.put("application",size);
+        map.put("aggregation",innerMap);
+        response.setMetadata(map);
+        return new JSONWithPadding( response, callback );
+    }
+
+    @RequireOrganizationAccess
+    @GET
+    @Path("size/{collection_name}")
+    public JSONWithPadding getCollectionSize(
+        @Context UriInfo ui,
+        @PathParam( "collection_name" ) String collection_name,
+        @QueryParam("callback") @DefaultValue("callback") String callback )
+        throws Exception {
+        ApiResponse response = createApiResponse();
+        response.setAction("get collection size for all entities");
+        long size = management.getCollectionSize(this.applicationId ,collection_name);
+        Map<String,Object> map = new HashMap<>();
+        Map<String,Object> innerMap = new HashMap<>();
+        innerMap.put(collection_name,size);
+        map.put("aggregation",innerMap);
+        response.setMetadata(map);
+        return new JSONWithPadding( response, callback );
+    }
 
     @POST
     @Path("sia-provider")

http://git-wip-us.apache.org/repos/asf/usergrid/blob/bed924fc/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java b/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java
index 9131e47..c822057 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java
@@ -332,4 +332,8 @@ public interface ManagementService {
     public void deleteApplication(UUID applicationId) throws Exception;
 
     public ApplicationInfo restoreApplication(UUID applicationId) throws Exception;
+
+    long getApplicationSize(final UUID applicationId);
+
+    long getCollectionSize(final UUID applicationId, final String collectionName);
 }

http://git-wip-us.apache.org/repos/asf/usergrid/blob/bed924fc/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
index 32e4393..e36e31c 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
@@ -20,9 +20,12 @@ package org.apache.usergrid.management.cassandra;
 import com.google.common.base.Optional;
 import com.google.common.collect.BiMap;
 import com.google.common.collect.HashBiMap;
+import com.google.inject.Injector;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang.text.StrSubstitutor;
 import org.apache.shiro.UnavailableSecurityManagerException;
+import org.apache.usergrid.corepersistence.service.AggregationService;
+import org.apache.usergrid.corepersistence.service.AggregationServiceFactory;
 import org.apache.usergrid.corepersistence.util.CpNamingUtils;
 import org.apache.usergrid.exception.ConflictException;
 import org.apache.usergrid.locking.Lock;
@@ -31,6 +34,7 @@ import org.apache.usergrid.management.*;
 import org.apache.usergrid.management.exceptions.*;
 import org.apache.usergrid.persistence.*;
 import org.apache.usergrid.persistence.Query.Level;
+import org.apache.usergrid.persistence.core.scope.ApplicationScope;
 import org.apache.usergrid.persistence.entities.Application;
 import org.apache.usergrid.persistence.entities.Group;
 import org.apache.usergrid.persistence.entities.User;
@@ -138,6 +142,9 @@ public class ManagementServiceImpl implements ManagementService {
     @Autowired
     protected MailUtils mailUtils;
 
+    @Autowired
+    protected Injector injector;
+
     protected EncryptionService encryptionService;
 
 
@@ -1709,6 +1716,22 @@ public class ManagementServiceImpl implements ManagementService {
         return new ApplicationInfo( applicationId, appInfo.getName() );
     }
 
+    @Override
+    public long getApplicationSize(final UUID applicationId) {
+        AggregationServiceFactory aggregationServiceFactory = injector.getInstance(AggregationServiceFactory.class);
+        AggregationService aggregationService = aggregationServiceFactory.getAggregationService();
+        ApplicationScope applicationScope =CpNamingUtils.getApplicationScope(applicationId);
+        return aggregationService.sumAllCollections(applicationScope);
+    }
+
+    @Override
+    public long getCollectionSize(final UUID applicationId, final String collectionName) {
+        AggregationServiceFactory aggregationServiceFactory = injector.getInstance(AggregationServiceFactory.class);
+        AggregationService aggregationService = aggregationServiceFactory.getAggregationService();
+        ApplicationScope applicationScope =CpNamingUtils.getApplicationScope(applicationId);
+        return aggregationService.sum(applicationScope,CpNamingUtils.createCollectionSearchEdge(applicationScope.getApplication(),collectionName));
+    }
+
 
     @Override
     public OrganizationInfo getOrganizationForApplication( UUID applicationInfoId ) throws Exception {


[2/2] usergrid git commit: adding rest test

Posted by sf...@apache.org.
adding rest test


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

Branch: refs/heads/entity-size
Commit: a11aaa03d2237d0d2c8fa02ba1f8e32b44e37ee7
Parents: bed924f
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Aug 26 17:50:15 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Aug 26 17:50:15 2015 -0600

----------------------------------------------------------------------
 .../applications/ApplicationResource.java       | 13 +++---
 .../rest/management/ManagementResourceIT.java   | 44 ++++++++++++++------
 .../rest/test/resource/model/Entity.java        |  2 +
 3 files changed, 41 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/a11aaa03/stack/rest/src/main/java/org/apache/usergrid/rest/management/organizations/applications/ApplicationResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/management/organizations/applications/ApplicationResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/management/organizations/applications/ApplicationResource.java
index fcb01d7..df98b43 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/management/organizations/applications/ApplicationResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/management/organizations/applications/ApplicationResource.java
@@ -50,10 +50,7 @@ import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriInfo;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-import java.util.UUID;
+import java.util.*;
 
 import static javax.servlet.http.HttpServletResponse.SC_ACCEPTED;
 import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST;
@@ -175,7 +172,9 @@ public class ApplicationResource extends AbstractContextResource {
         long size = management.getApplicationSize(this.applicationId);
         Map<String,Object> map = new HashMap<>();
         Map<String,Object> innerMap = new HashMap<>();
-        innerMap.put("application",size);
+        Map<String,Object> sumMap = new HashMap<>();
+        sumMap.put("sum",size);
+        innerMap.put("application",sumMap);
         map.put("aggregation",innerMap);
         response.setMetadata(map);
         return new JSONWithPadding( response, callback );
@@ -194,7 +193,9 @@ public class ApplicationResource extends AbstractContextResource {
         long size = management.getCollectionSize(this.applicationId ,collection_name);
         Map<String,Object> map = new HashMap<>();
         Map<String,Object> innerMap = new HashMap<>();
-        innerMap.put(collection_name,size);
+        Map<String,Object> sumMap = new HashMap<>();
+        sumMap.put("sum",size);
+        innerMap.put(collection_name,sumMap);
         map.put("aggregation",innerMap);
         response.setMetadata(map);
         return new JSONWithPadding( response, callback );

http://git-wip-us.apache.org/repos/asf/usergrid/blob/a11aaa03/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
index 1fe4974..99d2089 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/management/ManagementResourceIT.java
@@ -89,7 +89,7 @@ public class ManagementResourceIT extends AbstractRestIT {
         data.clear();
         data.put( "oldpassword", "foo" );
         data.put( "newpassword", "test" );
-        management.users().user("test"+uuid).password().post(Entity.class,data);
+        management.users().user("test"+uuid).password().post(Entity.class, data);
     }
 
 
@@ -111,7 +111,7 @@ public class ManagementResourceIT extends AbstractRestIT {
         Organization organization = new Organization(orgName,username,email,name,password,payload);
 
         Organization node = management().orgs().post(  organization );
-        management.token().get(clientSetup.getUsername(),clientSetup.getPassword());
+        management.token().get(clientSetup.getUsername(), clientSetup.getPassword());
 
         // check that the test admin cannot access the new org info
 
@@ -125,8 +125,8 @@ public class ManagementResourceIT extends AbstractRestIT {
             status = uie.getResponse().getClientResponseStatus();
         }
 
-        assertNotNull( status );
-        assertEquals( Status.UNAUTHORIZED, status );
+        assertNotNull(status);
+        assertEquals(Status.UNAUTHORIZED, status);
 
         // this admin should have access to test org
         status = null;
@@ -137,7 +137,7 @@ public class ManagementResourceIT extends AbstractRestIT {
             status = uie.getResponse().getClientResponseStatus();
         }
 
-        assertNull( status );
+        assertNull(status);
 
         //test getting the organization by org
 
@@ -149,7 +149,7 @@ public class ManagementResourceIT extends AbstractRestIT {
             status = uie.getResponse().getClientResponseStatus();
         }
 
-        assertNull( status );
+        assertNull(status);
     }
 
 
@@ -238,10 +238,10 @@ public class ManagementResourceIT extends AbstractRestIT {
         //post follow
         Entity entity = this.app()
             .collection( "users" )
-            .entity( user )
-            .collection( "following" )
-            .collection( "users" )
-            .entity( followUser )
+            .entity(user)
+            .collection("following")
+            .collection("users")
+            .entity(followUser)
             .post();
     }
 
@@ -256,8 +256,8 @@ public class ManagementResourceIT extends AbstractRestIT {
         activityPayload.put("actor", actorMap);
         Entity entity = this.app()
             .collection( "users" )
-            .entity( user )
-            .collection( "activities" )
+            .entity(user)
+            .collection("activities")
             .post( new Entity( activityPayload ) );
     }
 
@@ -306,6 +306,26 @@ public class ManagementResourceIT extends AbstractRestIT {
 
         assertEquals( "Roles", roles.get("title").toString() );
         assertEquals(4, roles.size());
+
+    }
+
+    @Test
+    public void checkSizes() throws Exception {
+        final String appname = clientSetup.getAppName();
+        this.app().collection("testCollection").post(new Entity().chainPut("name","test"));
+        refreshIndex();
+        Entity size = management().orgs().org( clientSetup.getOrganizationName() ).app().addToPath(appname).addToPath("size").get();
+        Entity rolesSize = management().orgs().org(clientSetup.getOrganizationName()).app().addToPath(appname).addToPath("size/roles").get();
+        assertTrue(size != null);
+        assertTrue(rolesSize != null);
+        int sum =  (int)((LinkedHashMap)((LinkedHashMap)size.metadata().get("aggregation")).get("application")).get("sum");
+        int sumRoles = (int)((LinkedHashMap)((LinkedHashMap)rolesSize.metadata().get("aggregation")).get("roles")).get("sum");
+
+        assertTrue(size != null);
+        assertTrue(rolesSize != null);
+
+        assertNotEquals(sum,sumRoles);
+        assertTrue(sum>sumRoles);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/usergrid/blob/a11aaa03/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/model/Entity.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/model/Entity.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/model/Entity.java
index 3707967..a56e398 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/model/Entity.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource/model/Entity.java
@@ -193,6 +193,8 @@ public class Entity implements Serializable, Map<String,Object> {
         return getDynamicProperties().entrySet();
     }
 
+    public Map<String,Object> metadata(){return (Map<String,Object>)get("metadata");}
+
     public UUID getUuid(){
         return UUID.fromString( ( String ) get( "uuid" ) );
     }