You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by gr...@apache.org on 2015/12/12 20:39:24 UTC

[2/4] usergrid git commit: Added ability to check one email.

Added ability to check one email.


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

Branch: refs/heads/unique_index_logging
Commit: cabd54a13c99aa25984be1bffc36df1fb87f381b
Parents: 5a96416
Author: George Reyes <gr...@apache.org>
Authored: Fri Dec 11 10:15:58 2015 -0800
Committer: George Reyes <gr...@apache.org>
Committed: Fri Dec 11 10:15:58 2015 -0800

----------------------------------------------------------------------
 .../usergrid/tools/ManagementUserAudit.java     | 117 ++++++++++++-------
 1 file changed, 74 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/cabd54a1/stack/tools/src/main/java/org/apache/usergrid/tools/ManagementUserAudit.java
----------------------------------------------------------------------
diff --git a/stack/tools/src/main/java/org/apache/usergrid/tools/ManagementUserAudit.java b/stack/tools/src/main/java/org/apache/usergrid/tools/ManagementUserAudit.java
index d1eea62..9c100d9 100644
--- a/stack/tools/src/main/java/org/apache/usergrid/tools/ManagementUserAudit.java
+++ b/stack/tools/src/main/java/org/apache/usergrid/tools/ManagementUserAudit.java
@@ -32,6 +32,7 @@ import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
 
+import org.apache.usergrid.persistence.Entity;
 import org.apache.usergrid.persistence.EntityManager;
 import org.apache.usergrid.persistence.Query;
 
@@ -73,7 +74,9 @@ public class ManagementUserAudit extends ToolBase {
 
     private static final Logger logger = LoggerFactory.getLogger( ManagementUserAudit.class );
 
-    private static final String ENTITY_UNIQUE_PROPERTY_VALUE = "file";
+    private static final String FILE_PATH = "file";
+
+    private static final String DUPLICATE_EMAIL = "dup";
 
 
     @Override
@@ -89,11 +92,15 @@ public class ManagementUserAudit extends ToolBase {
 
         options.addOption( hostOption );
 
-        Option entityUniquePropertyValue =
-                OptionBuilder.withArgName( ENTITY_UNIQUE_PROPERTY_VALUE ).hasArg().isRequired( true )
-                             .withDescription( "file path" ).create( ENTITY_UNIQUE_PROPERTY_VALUE );
-        options.addOption( entityUniquePropertyValue );
+        Option file_path =
+                OptionBuilder.withArgName( FILE_PATH ).hasArg().isRequired( false )
+                             .withDescription( "file path" ).create( FILE_PATH );
+        options.addOption( file_path );
 
+        Option duplicate_email =
+                OptionBuilder.withArgName( DUPLICATE_EMAIL ).hasArg().isRequired( false )
+                             .withDescription( "duplicate email to examine" ).create( DUPLICATE_EMAIL );
+        options.addOption( duplicate_email );
 
         return options;
     }
@@ -113,59 +120,83 @@ public class ManagementUserAudit extends ToolBase {
 
         EntityManager em = emf.getEntityManager( MANAGEMENT_APPLICATION_ID );
 
-        ObjectMapper objectMapper = new ObjectMapper(  );
-
-        File jsonObjectFile = new File(line.getOptionValue( "file" ));
-
-        JsonNode node =  objectMapper.readTree( jsonObjectFile );
-
-        JsonNode users = node.get( "user" );
+        if(line.getOptionValue( ("file") ) == null) {
+            if ( line.getOptionValue( "dup" )!=null){
+                String extractedEmail = line.getOptionValue( "dup" );
+                column_verification( em, extractedEmail );
+             }
+            else{
+                logger.error("Need to have -file or -dup not both and certainly not neither.");
+            }
+        }
+        else {
+            ObjectMapper objectMapper = new ObjectMapper();
 
-        for(JsonNode email:users) {
+            File jsonObjectFile = new File( line.getOptionValue( "file" ) );
 
-            String extractedEmail = email.get( "name" ).getTextValue();
+            JsonNode node = objectMapper.readTree( jsonObjectFile );
 
-            Query query = new Query();
-            query.setEntityType( "user" );
-            query.addEqualityFilter( "email", extractedEmail );
-            //maybe this could be changed to detect duplicates
-            query.setLimit( 1 );
-            query.setResultsLevel( REFS );
+            JsonNode users = node.get( "user" );
 
+            for ( JsonNode email : users ) {
 
+                String extractedEmail = email.get( "name" ).getTextValue();
+                column_verification( em, extractedEmail );
+            }
+            logger.info( "Completed logging successfully" );
+        }
+    }
 
-            UUID applicationId = MANAGEMENT_APPLICATION_ID;
-            String collectionName = "users";
-            String uniqueValueKey = "email";
-            String uniqueValue = extractedEmail;
+    private void column_verification( final EntityManager em, final String extractedEmail ) throws Exception {UUID
+            applicationId = MANAGEMENT_APPLICATION_ID;
+        String collectionName = "users";
+        String uniqueValueKey = "email";
+        String uniqueValue = extractedEmail;
 
 
-            Object key = key( applicationId, collectionName, uniqueValueKey, uniqueValue );
+        Object key = key( applicationId, collectionName, uniqueValueKey, uniqueValue );
 
 
-            List<HColumn<ByteBuffer, ByteBuffer>> cols = cass.getAllColumns( cass.getApplicationKeyspace( applicationId ),ENTITY_UNIQUE,key,be,be );
+        List<HColumn<ByteBuffer, ByteBuffer>> cols =
+                cass.getAllColumns( cass.getApplicationKeyspace( applicationId ), ENTITY_UNIQUE, key, be, be );
 
-            if ( cols.size() == 1  ) {
+        if ( cols.size() == 1 ) {
+            UUID uuid = null;
+            for ( HColumn<ByteBuffer, ByteBuffer> col : cols ) {
+                uuid = ue.fromByteBuffer( col.getName() );
+            }
+            if ( em.get( uuid ) == null ) {
+                logger.error( "Email: {} with uuid: {} doesn't exist in ENTITY_PROPERTIES.", extractedEmail,
+                        uuid );
+            }
+            else {
+                logger.info( "Email: {}  with uuid: {} exists in ENTITY_PROPERTIES", extractedEmail, uuid );
+            }
+        }
+        else {
+            if ( cols.size() == 0 ) {
+                logger.error( "Email: {} doesn't exist in ENTITY_UNIQUE.", extractedEmail );
+            }
+            else {
+                logger.error( "Email: {} has {} number of duplicate columns in ENTITY_UNIQUE", extractedEmail,
+                        cols.size() );
                 UUID uuid = null;
                 for ( HColumn<ByteBuffer, ByteBuffer> col : cols ) {
-                    uuid = ue.fromByteBuffer( col.getName());
-                }
-                if ( em.get( uuid ) == null ) {
-                    logger.error( "Email: {} with uuid: {} doesn't exist in ENTITY_PROPERTIES.", extractedEmail,uuid);
-                }
-                else {
-                    logger.info( "Email: {}  with uuid: {} exists in ENTITY_PROPERTIES", extractedEmail,uuid);
-                }
-            }
-            else{
-                if(cols.size() == 0) {
-                    logger.error( "Email: {} doesn't exist in ENTITY_UNIQUE.", extractedEmail );
-                }
-                else{
-                    logger.error("Email: {} has {} number of duplicate columns in ENTITY_UNIQUE",extractedEmail,cols.size());
+                    uuid = ue.fromByteBuffer( col.getName() );
+                    Entity entity = em.get( uuid );
+                    if ( entity == null ) {
+                        logger.error( "Email: {} with duplicate uuid: {} doesn't exist in ENTITY_PROPERTIES.", extractedEmail,
+                                uuid );
+                    }
+                    else {
+                        Object[] loggerObject = new Object[3];
+                        loggerObject[0] = extractedEmail;
+                        loggerObject[1] = uuid;
+                        loggerObject[2] = entity;
+                        logger.info( "Email: {}  with duplicate uuid: {} with the following data: {} exists in ENTITY_PROPERTIES", extractedEmail, uuid );
+                    }
                 }
             }
         }
-        logger.info( "Completed logging successfully" );
     }
 }