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/11/05 01:11:49 UTC

usergrid git commit: RC1 for unique index cleanup tool

Repository: usergrid
Updated Branches:
  refs/heads/USERGRID-1076 948269977 -> 03a123dc8


RC1 for unique index cleanup tool


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

Branch: refs/heads/USERGRID-1076
Commit: 03a123dc830908f0f1eb46504d39d0050c8887c5
Parents: 9482699
Author: George Reyes <gr...@apache.org>
Authored: Wed Nov 4 16:11:46 2015 -0800
Committer: George Reyes <gr...@apache.org>
Committed: Wed Nov 4 16:11:46 2015 -0800

----------------------------------------------------------------------
 .../usergrid/tools/UniqueIndexCleanup.java      | 24 ++++++++++++++------
 1 file changed, 17 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/03a123dc/stack/tools/src/main/java/org/apache/usergrid/tools/UniqueIndexCleanup.java
----------------------------------------------------------------------
diff --git a/stack/tools/src/main/java/org/apache/usergrid/tools/UniqueIndexCleanup.java b/stack/tools/src/main/java/org/apache/usergrid/tools/UniqueIndexCleanup.java
index ba7441b..52288e4 100644
--- a/stack/tools/src/main/java/org/apache/usergrid/tools/UniqueIndexCleanup.java
+++ b/stack/tools/src/main/java/org/apache/usergrid/tools/UniqueIndexCleanup.java
@@ -83,6 +83,7 @@ import static org.apache.usergrid.persistence.cassandra.ApplicationCF.ENTITY_UNI
 import static org.apache.usergrid.persistence.cassandra.CassandraPersistenceUtils.addDeleteToMutator;
 import static org.apache.usergrid.persistence.cassandra.CassandraPersistenceUtils.key;
 import static org.apache.usergrid.persistence.cassandra.CassandraService.APPLICATIONS_CF;
+import static org.apache.usergrid.persistence.cassandra.CassandraService.MANAGEMENT_APPLICATION;
 import static org.apache.usergrid.persistence.cassandra.CassandraService.MANAGEMENT_APPLICATION_ID;
 import static org.apache.usergrid.persistence.cassandra.Serializers.be;
 import static org.apache.usergrid.persistence.cassandra.Serializers.dce;
@@ -204,7 +205,7 @@ public class UniqueIndexCleanup extends ToolBase {
                 RangeSlicesQuery<ByteBuffer, ByteBuffer, ByteBuffer> rangeSlicesQuery = HFactory
                         .createRangeSlicesQuery( ko, be, be, be )
                         .setColumnFamily( ENTITY_UNIQUE.getColumnFamily() )
-                        //not sure if I trust the lower two ssettings as it might iterfere with paging or set arbitrary limits and what I want to retrieve.
+                        //not sure if I trust the lower two settings as it might iterfere with paging or set arbitrary limits and what I want to retrieve.
                         //That needs to be verified.
                         .setKeys( null, null )
                         .setRange( null, null, false, 100 );
@@ -217,15 +218,14 @@ public class UniqueIndexCleanup extends ToolBase {
                 result.get().getList().get( 0 ).getColumnSlice();
 
                 while(rangeSlicesIterator.hasNext()) {
-                    //UUID returned_uuid = UUID.nameUUIDFromBytes(((ByteBuffer)rangeSlicesIterator.next().getKey()).array());
                     Row rangeSliceValue = rangeSlicesIterator.next();
 
                     String returnedRowKey =
                             new String( ( ( ByteBuffer ) rangeSliceValue.getKey() ).array(), Charsets.UTF_8 ).trim();
 
                     String[] parsedRowKey = returnedRowKey.split( ":" );
-                    if ( parsedRowKey[1].equals( "users" ) || returnedRowKey.contains( "username" ) || returnedRowKey
-                            .contains( "email" ) ) {
+                    if ( parsedRowKey[1].equals( "users" ) ) {
+
                         ColumnSlice<ByteBuffer, ByteBuffer> columnSlice = rangeSliceValue.getColumnSlice();
                         if ( columnSlice.getColumns().size() != 0 ) {
                             System.out.println( returnedRowKey );
@@ -234,13 +234,23 @@ public class UniqueIndexCleanup extends ToolBase {
                             for ( HColumn<ByteBuffer, ByteBuffer> col : cols ) {
                                 UUID entityId = ue.fromByteBuffer( col.getName() );
 
+                                if(parsedRowKey[0].equals( MANAGEMENT_APPLICATION_ID.toString() )){
+                                    if(managementService.getAdminUserByUuid( entityId )==null ){
+                                        logger.warn( "Entity with id {} did not exist in app {}", entityId, applicationId );
+                                        System.out.println( "Deleting column uuid: " + entityId.toString() );
+
 
-                                if ( em.get( entityId ) == null && managementService.getAdminUserByUuid( entityId )==null ) {
+                                        Object key = key( applicationId, collectionName, parsedRowKey[2], parsedRowKey[3]);
+                                        addDeleteToMutator( m, ENTITY_UNIQUE, key, entityId, timestamp );
+                                        m.execute();
+                                        continue;
+                                    }
+                                }
+                                else if ( em.get( entityId ) == null ) {
                                     logger.warn( "Entity with id {} did not exist in app {}", entityId, applicationId );
                                     System.out.println( "Deleting column uuid: " + entityId.toString() );
 
-
-                                    Object key = key( applicationId, collectionName, "username", entityId );
+                                    Object key = key( applicationId, collectionName, parsedRowKey[2], parsedRowKey[3]);
                                     addDeleteToMutator( m, ENTITY_UNIQUE, key, entityId, timestamp );
                                     m.execute();
                                     continue;