Merge branch '1.x' into dup-admin-repair

Conflicts:
        
stack/tools/src/main/java/org/apache/usergrid/tools/DuplicateOrgRepair.java


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

Branch: refs/heads/1.x
Commit: bb6198f9f6d396799f922eb18aa22fbfca562296
Parents: 7324b5a a5045b8
Author: Dave Johnson <[email protected]>
Authored: Mon Jan 11 16:37:54 2016 -0500
Committer: Dave Johnson <[email protected]>
Committed: Mon Jan 11 16:37:54 2016 -0500

----------------------------------------------------------------------
 .../usergrid/tools/DuplicateOrgRepair.java      | 30 +------
 .../org/apache/usergrid/tools/ExportAdmins.java | 82 ++++++++++----------
 .../org/apache/usergrid/tools/ImportAdmins.java | 10 ++-
 .../org/apache/usergrid/tools/ToolBase.java     |  2 +-
 4 files changed, 53 insertions(+), 71 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/bb6198f9/stack/tools/src/main/java/org/apache/usergrid/tools/DuplicateOrgRepair.java
----------------------------------------------------------------------
diff --cc 
stack/tools/src/main/java/org/apache/usergrid/tools/DuplicateOrgRepair.java
index f4d76fd,4363dbd..f0f14c7
--- 
a/stack/tools/src/main/java/org/apache/usergrid/tools/DuplicateOrgRepair.java
+++ 
b/stack/tools/src/main/java/org/apache/usergrid/tools/DuplicateOrgRepair.java
@@@ -168,9 -165,9 +168,9 @@@ public class DuplicateOrgRepair extend
  
          if ( manager == null ) { // we use a special manager when mockTesting
              if (dryRun) {
-                 manager = new DryRunManager( emf, managementService );
 -                manager = new DryRunManager();
++                manager = new DryRunUserOrgManager( emf, managementService );
              } else {
 -                manager = new RepairManager();
 +                manager = new UserOrgManager( emf, managementService );
              }
          } 
  
@@@ -431,32 -428,289 +431,4 @@@
          return oldest;
      }
  
 -    
 -    class RepairManager implements DuplicateOrgInterface {
--
-     static class DryRunManager extends UserOrgManager {
 -        @Override
 -        public Observable<Org> getOrgs() throws Exception {
--
-         public DryRunManager(EntityManagerFactory emf, ManagementService 
managementService ) {
-             super(emf, managementService);
 -            return Observable.create( new Observable.OnSubscribe<Org>() {
 -
 -                @Override
 -                public void call(Subscriber<? super Org> subscriber) {
 -                    subscriber.onStart();
 -                    try {
 -                        int count = 0;
 -
 -                        EntityManager em = emf.getEntityManager( 
CassandraService.MANAGEMENT_APPLICATION_ID );
 -                        String queryString = "select *";
 -                        Query query = Query.fromQL( queryString );
 -                        query.withLimit( MAX_ENTITY_FETCH );
 -                        
 -                        Results results = em.searchCollection( 
em.getApplicationRef(), "groups", query );
 -
 -                        while (results.size() > 0) {
 -                            for (Entity orgEntity : results.getEntities()) {
 -                                
 -                                Org org = new Org(
 -                                    orgEntity.getUuid(), 
 -                                    orgEntity.getProperty( "path" )+"", 
 -                                    orgEntity.getCreated() );
 -                                org.sourceValue = orgEntity;
 -                                
 -                                subscriber.onNext( org );
 -
 -                                if ( count++ % 1000 == 0 ) {
 -                                    logger.info("Emitted {} orgs", count );
 -                                }
 -
 -                                // logger.info( "org: {}, \"{}\", {}", new 
Object[]{
 -                                //     orgEntity.getProperty( "path" ),
 -                                //     orgEntity.getUuid(),
 -                                //     orgEntity.getCreated()} );
 -                            }
 -                            if (results.getCursor() == null) {
 -                                break;
 -                            }
 -                            query.setCursor( results.getCursor() );
 -                            results = em.searchCollection( 
em.getApplicationRef(), "groups", query );
 -                        }
 -
 -                    } catch (Exception e) {
 -                        subscriber.onError( e );
 -                    }
 -                    subscriber.onCompleted();
 -                }
 -            } );
 -        }
 -
 -        @Override
 -        public Observable<OrgUser> getUsers() throws Exception {
 -
 -            return Observable.create( new Observable.OnSubscribe<OrgUser>() {
 -
 -                @Override
 -                public void call(Subscriber<? super OrgUser> subscriber) {
 -                    subscriber.onStart();
 -                    try {
 -                        int count = 0;
 -                        
 -                        Query query = new Query();
 -                        query.setLimit( MAX_ENTITY_FETCH );
 -                        query.setResultsLevel( Results.Level.ALL_PROPERTIES );
 -                        EntityManager em = emf.getEntityManager( 
CassandraService.MANAGEMENT_APPLICATION_ID );
 -                        Results results = em.searchCollection( 
em.getApplicationRef(), "users", query );
 -
 -                        while (results.size() > 0) {
 -                            for (Entity entity : results.getList()) {
 -
 -                                OrgUser orgUser = new OrgUser( 
 -                                    entity.getUuid(), 
 -                                    entity.getProperty( "username" ) + "" );
 -                                orgUser.sourceValue = entity;
 -
 -                                subscriber.onNext( orgUser );
 -
 -                                if ( count++ % 1000 == 0 ) {
 -                                    logger.info("Emitted {} users", count );
 -                                }
 -
 -                                // logger.info( "org: {}, \"{}\", {}", new 
Object[]{
 -                                //     entity.getProperty( "path" ),
 -                                //     entity.getUuid(),
 -                                //     entity.getCreated()} );
 -                            }
 -                            if (results.getCursor() == null) {
 -                                break;
 -                            }
 -                            query.setCursor( results.getCursor() );
 -                            results = em.searchCollection( 
em.getApplicationRef(), "users", query );
 -                        }
 -
 -                    } catch (Exception e) {
 -                        subscriber.onError( e );
 -                    }
 -                    subscriber.onCompleted();
 -                }
 -            } );
 -        }
 -
 -        @Override
 -        public Set<Org> getUsersOrgs(OrgUser user) throws Exception {
 -           
 -            Set<Org> ret = new HashSet<Org>();
 -            
 -            Map<String, Object> orgData = 
managementService.getAdminUserOrganizationData( user.getId() );
 -           
 -            Map<String, Object> orgs = (Map<String, 
Object>)orgData.get("organizations");
 -            for ( String orgName : orgs.keySet() ) {
 -
 -                Map<String, Object> orgMap = (Map<String, Object>)orgs.get( 
orgName );
 -                Group group = managementService.getOrganizationProps( 
 -                        UUID.fromString( orgMap.get( "uuid" ).toString() ) );
 -
 -                Org org = new Org(
 -                    group.getUuid(),
 -                    group.getPath(), 
 -                    group.getCreated()
 -                );
 -                ret.add(org);   
 -            }
 -            
 -            return ret;
 -        }
 -
 -        
 -        @Override
 -        public void removeOrg(Org keeper, Org duplicate) throws Exception {
 -            
 -            // rename org so that it is no longer a duplicate
 -            EntityManager em = emf.getEntityManager( 
CassandraService.MANAGEMENT_APPLICATION_ID );
 -            em.delete( new SimpleEntityRef( "group", duplicate.getId() ));
 -            logger.info("Deleted org {}:{}", new Object[] { 
duplicate.getName(), duplicate.getId() });
 -
 -            // fix the org name index
 -            OrganizationInfo orgInfoKeeper = 
managementService.getOrganizationByUuid( keeper.getId() );
 -            try {
 -                managementService.updateOrganizationUniqueIndex( 
orgInfoKeeper, duplicate.getId() );
 -                logger.info("Updated index for keeper {}:{} not dup {}", new 
Object[] {
 -                        orgInfoKeeper.getName(), orgInfoKeeper.getUuid(), 
duplicate.getId() });
 -                
 -            } catch ( Exception e ) {
 -                // if there are multiple duplicates this will fail for all 
but one of them. That's OK
 -                logger.warn("Error repairing unique value keeper {} duplicate 
{}", 
 -                        keeper.getId(), duplicate.getId());
 -            }
 -        }
 -        
 -
 -        @Override
 -        public Set<OrgUser> getOrgUsers(Org org) throws Exception {
 -            
 -            Set<OrgUser> ret = new HashSet<OrgUser>();
 -            
 -            List<UserInfo> userInfos = 
managementService.getAdminUsersForOrganization( org.getId() );
 -            
 -            for ( UserInfo userInfo : userInfos ) {
 -                OrgUser orgUser = new OrgUser( userInfo.getUuid(), 
userInfo.getUsername() );
 -                ret.add(orgUser);
 -            }
 -            
 -            return ret;
 -        }
 -
 -        
 -        @Override
 -        public void removeUserFromOrg(OrgUser user, Org org) throws Exception 
{
 -            // forcefully remove admin user from org
 -            managementService.removeAdminUserFromOrganization( user.getId(), 
org.getId(), true );
 -            logger.info("Removed user {}:{} from org {}:{}", new Object[] {
 -                    user.getName(), user.getId(), org.getName(), org.getId() 
});
 -        }
 -
 -        
 -        @Override
 -        public void addUserToOrg(OrgUser user, Org org) throws Exception {
 -            UserInfo userInfo = managementService.getAdminUserByUsername( 
user.getName() );
 -            OrganizationInfo orgInfo = 
managementService.getOrganizationByUuid( org.getId() );
 -            managementService.addAdminUserToOrganization( userInfo, orgInfo, 
false );
 -            logger.info("Added user {}:{} to org {}:{}", new Object[] {
 -                    user.getName(), user.getId(), org.getName(), org.getId() 
});
 -        }
 -
 -        
 -        @Override
 -        public Set<UUID> getOrgApps(Org org) throws Exception {
 -            BiMap<UUID, String> apps = 
managementService.getApplicationsForOrganization( org.getId() );
 -            return apps.keySet();
 -        }
 -
 -        
 -        @Override
 -        public void removeAppFromOrg(UUID appId, Org org) throws Exception {
 -            managementService.removeOrganizationApplication( org.getId(), 
appId );
 -            logger.info("Removed app {} from org {}:{}", new Object[] {
 -                    appId, org.getName(), org.getId() });
 -        }
 -
 -        
 -        @Override
 -        public void addAppToOrg(UUID appId, Org org) throws Exception {
 -            managementService.addApplicationToOrganization( org.getId(), 
appId );
 -            logger.info("Added app {} to org {}:{}", new Object[] {
 -                    appId, org.getName(), org.getId() });
 -        }
 -
 -        
 -        @Override
 -        public void logDuplicates(Map<String, Set<Org>> duplicatesByName) {
 -
 -            for ( String orgName : duplicatesByName.keySet() ) {
 -                Set<Org> orgs = duplicatesByName.get(orgName);
 -                for ( Org org : orgs ) {
 -                    Entity orgEntity = (Entity)org.sourceValue;
 -
 -                    StringBuilder sb = new StringBuilder();
 -                    sb.append(orgEntity.toString()).append(", ");
 -                    
 -                    try {
 -                        BiMap<UUID, String> apps = 
 -                            managementService.getApplicationsForOrganization( 
orgEntity.getUuid() );
 -                        String sep = "";
 -                        for ( UUID uuid : apps.keySet() ) {
 -                            String appName = apps.get(uuid);
 -                            
sb.append(appName).append(":").append(uuid).append(sep);
 -                            sep = ", ";
 -                        }
 -                        
 -                    } catch (Exception e) {
 -                        logger.error("Error getting applications for org 
{}:{}", org.getName(), org.getId() );
 -                    }
 -                    
 -                    logger.info(sb.toString());
 -                }
 -            }
 -        }
 -
 -        
 -        @Override
 -        public Org getOrg(UUID uuid) throws Exception {
 -
 -            EntityManager em = emf.getEntityManager( 
CassandraService.MANAGEMENT_APPLICATION_ID );
 -            Entity entity = em.get( uuid );
 -
 -            Org org = new Org(
 -                    entity.getUuid(),
 -                    entity.getProperty( "path" )+"",
 -                    entity.getCreated() );
 -            org.sourceValue = entity;
 -            
 -            return org;
--        }
 -    }
 -
 -    
 -    class DryRunManager extends RepairManager {
--        
--        @Override
--        public void removeUserFromOrg(OrgUser user, Org org) throws Exception 
{
--        }
--
--        @Override
--        public void addUserToOrg(OrgUser user, Org org) throws Exception {
--        }
--
--        @Override
--        public void addAppToOrg(UUID appId, Org org) throws Exception {
--        }
--
--        @Override
--        public void removeAppFromOrg(UUID appId, Org org) throws Exception {
--        }
--
--        @Override
--        public void removeOrg(Org keeper, Org duplicate) throws Exception {
--        }
--    }
--    
  }

Reply via email to