You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2014/03/25 17:21:17 UTC
[23/51] [abbrv] git commit: Fixed multiple orbs being exported bug.
Added test proving issue.
Fixed multiple orbs being exported bug.
Added test proving issue.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/9baec839
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/9baec839
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/9baec839
Branch: refs/heads/two-dot-o
Commit: 9baec8397933ec6fadcfd39247a8c723778f9ff0
Parents: 63fb1ca
Author: grey <gr...@apigee.com>
Authored: Wed Mar 19 09:31:31 2014 -0700
Committer: grey <gr...@apigee.com>
Committed: Wed Mar 19 09:31:31 2014 -0700
----------------------------------------------------------------------
.../management/export/ExportServiceImpl.java | 57 ++-----------
.../cassandra/ManagementServiceIT.java | 84 +++++++++++++++++++-
2 files changed, 90 insertions(+), 51 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9baec839/stack/services/src/main/java/org/apache/usergrid/management/export/ExportServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/export/ExportServiceImpl.java b/stack/services/src/main/java/org/apache/usergrid/management/export/ExportServiceImpl.java
index bab5660..0a11660 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/export/ExportServiceImpl.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/export/ExportServiceImpl.java
@@ -22,7 +22,6 @@ import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -39,7 +38,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.apache.usergrid.batch.JobExecution;
import org.apache.usergrid.batch.service.SchedulerService;
import org.apache.usergrid.management.ManagementService;
-import org.apache.usergrid.management.OrganizationInfo;
import org.apache.usergrid.persistence.ConnectionRef;
import org.apache.usergrid.persistence.Entity;
import org.apache.usergrid.persistence.EntityManager;
@@ -190,20 +188,13 @@ public class ExportServiceImpl implements ExportService {
if ( config.get("collectionName") == null) {
//exports all the applications for a given organization.
- Map<UUID, String> organizations = getOrgs();
- if(organizations == null){
- logger.error( "No organizations could be found" );
+
+ if(config.get( "organizationId" ) == null){
+ logger.error( "No organization could be found" );
return;
}
- for ( Map.Entry<UUID, String> organization : organizations.entrySet() ) {
- try {
- exportApplicationsForOrg( organization, config, jobExecution );
- }catch ( Exception e ) {
- export.setState( Export.State.FAILED );
- em.update( export );
- return;
- }
- }
+ exportApplicationsForOrg( ( UUID ) config.get( "organizationId" ), config, jobExecution );
+
}
else {
try {
@@ -222,36 +213,6 @@ public class ExportServiceImpl implements ExportService {
}
- /**
- * Loops through all the organizations and returns a Map with the corresponding information
- * @param
- * @return Map<UUID, String>
- * @throws Exception
- */
- private Map<UUID, String> getOrgs() throws Exception {
- // Loop through the organizations
- UUID orgId = null;
-
- Map<UUID, String> organizationNames = null;
-
- if ( orgId == null ) {
- organizationNames = managementService.getOrganizations();
- }
-
- else {//this case isn't used yet, but might be in the future.
- OrganizationInfo info = managementService.getOrganizationByUuid( orgId );
-
- if ( info == null ) {
- logger.error( "Organization info is null!" );
- return null;
- }
-
- organizationNames = new HashMap<UUID, String>();
- organizationNames.put( orgId, info.getName() );
- }
-
- return organizationNames;
- }
public SchedulerService getSch() {
return sch;
@@ -285,12 +246,12 @@ public class ExportServiceImpl implements ExportService {
/**
* Exports all applications for the given organization.
- * @param organization
+ * @param organizationUUID
* @param config
* @param jobExecution
* @throws Exception
*/
- private void exportApplicationsForOrg( Map.Entry<UUID, String> organization, final Map<String,Object> config,
+ private void exportApplicationsForOrg( UUID organizationUUID, final Map<String,Object> config,
final JobExecution jobExecution ) throws Exception {
//retrieves export entity
@@ -301,10 +262,8 @@ public class ExportServiceImpl implements ExportService {
//sets up a output stream for s3 backup.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- logger.info( "" + organization );
-
// Loop through the applications per organization
- BiMap<UUID, String> applications = managementService.getApplicationsForOrganization( organization.getKey() );
+ BiMap<UUID, String> applications = managementService.getApplicationsForOrganization( organizationUUID );
for ( Map.Entry<UUID, String> application : applications.entrySet() ) {
logger.info( application.getValue() + " : " + application.getKey() );
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9baec839/stack/services/src/test/java/org/apache/usergrid/management/cassandra/ManagementServiceIT.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/management/cassandra/ManagementServiceIT.java b/stack/services/src/test/java/org/apache/usergrid/management/cassandra/ManagementServiceIT.java
index 9757546..59ce4ad 100644
--- a/stack/services/src/test/java/org/apache/usergrid/management/cassandra/ManagementServiceIT.java
+++ b/stack/services/src/test/java/org/apache/usergrid/management/cassandra/ManagementServiceIT.java
@@ -43,6 +43,7 @@ import org.apache.usergrid.cassandra.CassandraResource;
import org.apache.usergrid.cassandra.ClearShiroSubject;
import org.apache.usergrid.cassandra.Concurrent;
import org.apache.usergrid.count.SimpleBatcher;
+import org.apache.usergrid.management.ApplicationInfo;
import org.apache.usergrid.management.OrganizationInfo;
import org.apache.usergrid.management.UserInfo;
import org.apache.usergrid.management.export.ExportJob;
@@ -1271,6 +1272,85 @@ public class ManagementServiceIT {
}
@Test
+ public void testExportOneOrganization() throws Exception {
+
+ //File f = new File( "exportOneOrganization.json" );
+ int entitiesToCreate = 10000;
+ File f = null;
+
+ try {
+ f = new File( "exportOneOrganization.json" );
+ f.delete();
+ }
+ catch ( Exception e ) {
+ //consumed because this checks to see if the file exists. If it doesn't, don't do anything and carry on.
+ }
+
+ EntityManager em = setup.getEmf().getEntityManager( applicationId);
+ em.createApplicationCollection( "baconators" );
+ //intialize user object to be posted
+ Map<String, Object> userProperties = null;
+ Entity[] entity;
+ entity = new Entity[entitiesToCreate];
+ //creates entities
+ for ( int i = 0; i < entitiesToCreate; i++ ) {
+ userProperties = new LinkedHashMap<String, Object>();
+ userProperties.put( "username", "billybob" + i );
+ userProperties.put( "email", "test" + i + "@anuff.com" );//String.format( "test%i@anuff.com", i ) );
+ entity[i] = em.create( "baconators", userProperties );
+ }
+
+ S3Export s3Export = new MockS3ExportImpl();
+ s3Export.setFilename( "exportOneOrganization.json" );
+ ExportService exportService = setup.getExportService();
+ HashMap<String, Object> payload = payloadBuilder();
+
+ payload.put( "organizationId",organization.getUuid() );
+ payload.put( "applicationId",applicationId);
+ payload.put( "collectionName","baconators");
+
+ //creates 100s of organizations with some entities in each one to make sure we don't actually apply it
+ for(int i = 0; i < 100; i++) {
+ OrganizationInfo orgMade =setup.getMgmtSvc().createOrganization( "superboss"+i,adminUser,true );
+ ApplicationInfo appMade = setup.getMgmtSvc().createApplication( orgMade.getUuid(), "superapp"+i);
+
+ EntityManager customMaker = setup.getEmf().getEntityManager( appMade.getId() );
+ customMaker.createApplicationCollection( "superappCol"+i );
+ //intialize user object to be posted
+ Map<String, Object> entityLevelProperties = null;
+ Entity[] entNotCopied;
+ entNotCopied = new Entity[entitiesToCreate];
+ //creates entities
+ for ( int index = 0; index < 10; index++ ) {
+ entityLevelProperties = new LinkedHashMap<String, Object>();
+ entityLevelProperties.put( "username", "bobso" + i );
+ entityLevelProperties.put( "email", "derp" + i + "@anuff.com" );
+ entNotCopied[i] = customMaker.create( "superappCol", entityLevelProperties );
+ }
+ }
+
+ UUID exportUUID = exportService.schedule( payload );
+ exportService.setS3Export( s3Export );
+
+ JobData jobData = new JobData();
+ jobData.setProperty( "jobName", "exportJob" );
+ jobData.setProperty( "exportInfo", payload );
+ jobData.setProperty( "exportId", exportUUID );
+
+ JobExecution jobExecution = mock( JobExecution.class );
+ when( jobExecution.getJobData() ).thenReturn( jobData );
+
+ exportService.doExport( jobExecution );
+
+ JSONParser parser = new JSONParser();
+
+ org.json.simple.JSONArray a = ( org.json.simple.JSONArray ) parser.parse( new FileReader( f ) );
+
+ assertEquals( entitiesToCreate , a.size() );
+ f.delete();
+ }
+
+ @Test
public void testExportDoJob() throws Exception {
HashMap<String, Object> payload = payloadBuilder();
@@ -1392,6 +1472,7 @@ public class ManagementServiceIT {
ExportService exportService = setup.getExportService();
HashMap<String, Object> payload = payloadBuilder();
+ payload.put("organizationId",organization.getUuid());
payload.put("applicationId",applicationId);
EntityManager em = setup.getEmf().getEntityManager( applicationId );
@@ -1403,7 +1484,7 @@ public class ManagementServiceIT {
for ( int i = 0; i < 100; i++ ) {
userProperties = new LinkedHashMap<String, Object>();
userProperties.put( "username", "billybob" + i );
- userProperties.put( "email", "test" + i + "@anuff.com" );//String.format( "test%i@anuff.com", i ) );
+ userProperties.put( "email", "test" + i + "@anuff.com" );
entity[i] = em.create( "user", userProperties );
}
@@ -1423,7 +1504,6 @@ public class ManagementServiceIT {
exportService.doExport( jobExecution );
}
-
/*Creates fake payload for testing purposes.*/
public HashMap<String, Object> payloadBuilder() {
HashMap<String, Object> payload = new HashMap<String, Object>();