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" ) );
}