You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by rl...@apache.org on 2016/02/12 22:26:45 UTC

ambari git commit: AMBARI-15031. Duplicate key violation during ldap sync (Oliver Szabo via rlevas)

Repository: ambari
Updated Branches:
  refs/heads/trunk ed55354ab -> e18755393


AMBARI-15031. Duplicate key violation during ldap sync  (Oliver Szabo via rlevas)


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

Branch: refs/heads/trunk
Commit: e18755393326d10564f7d68c2d025572fed25d63
Parents: ed55354
Author: Oliver Szabo <os...@hortonworks.com>
Authored: Fri Feb 12 16:26:31 2016 -0500
Committer: Robert Levas <rl...@hortonworks.com>
Committed: Fri Feb 12 16:26:35 2016 -0500

----------------------------------------------------------------------
 .../ambari/server/security/ldap/AmbariLdapDataPopulator.java    | 5 ++++-
 .../org/apache/ambari/server/security/ldap/LdapBatchDto.java    | 5 +++++
 .../server/security/ldap/AmbariLdapDataPopulatorTest.java       | 4 ++++
 3 files changed, 13 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/e1875539/ambari-server/src/main/java/org/apache/ambari/server/security/ldap/AmbariLdapDataPopulator.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/security/ldap/AmbariLdapDataPopulator.java b/ambari-server/src/main/java/org/apache/ambari/server/security/ldap/AmbariLdapDataPopulator.java
index 21492cf..801e43e 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/security/ldap/AmbariLdapDataPopulator.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/security/ldap/AmbariLdapDataPopulator.java
@@ -485,8 +485,11 @@ public class AmbariLdapDataPopulator {
         batchInfo.getGroupsToBecomeLdap().add(groupName);
       }
       internalGroupsMap.remove(groupName);
+      batchInfo.getGroupsProcessedInternal().add(groupName);
     } else {
-      batchInfo.getGroupsToBeCreated().add(groupName);
+      if (!batchInfo.getGroupsProcessedInternal().contains(groupName)) {
+        batchInfo.getGroupsToBeCreated().add(groupName);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/e1875539/ambari-server/src/main/java/org/apache/ambari/server/security/ldap/LdapBatchDto.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/security/ldap/LdapBatchDto.java b/ambari-server/src/main/java/org/apache/ambari/server/security/ldap/LdapBatchDto.java
index 9247f38..bb9c5ee 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/security/ldap/LdapBatchDto.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/security/ldap/LdapBatchDto.java
@@ -27,6 +27,7 @@ public class LdapBatchDto {
   private final Set<String> groupsToBecomeLdap = new HashSet<String>();
   private final Set<String> groupsToBeCreated = new HashSet<String>();
   private final Set<String> groupsToBeRemoved = new HashSet<String>();
+  private final Set<String> groupsProcessedInternal = new HashSet<>();
   private final Set<String> usersToBecomeLdap = new HashSet<String>();
   private final Set<String> usersToBeCreated = new HashSet<String>();
   private final Set<String> usersToBeRemoved = new HashSet<String>();
@@ -64,4 +65,8 @@ public class LdapBatchDto {
   public Set<String> getUsersToBeRemoved() {
     return usersToBeRemoved;
   }
+
+  public Set<String> getGroupsProcessedInternal() {
+    return groupsProcessedInternal;
+  }
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/e1875539/ambari-server/src/test/java/org/apache/ambari/server/security/ldap/AmbariLdapDataPopulatorTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/ldap/AmbariLdapDataPopulatorTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/ldap/AmbariLdapDataPopulatorTest.java
index be92871..8ce6c5b 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/security/ldap/AmbariLdapDataPopulatorTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/security/ldap/AmbariLdapDataPopulatorTest.java
@@ -348,6 +348,10 @@ public class AmbariLdapDataPopulatorTest {
     assertTrue(result.getMembershipToRemove().isEmpty());
     assertTrue(result.getUsersToBecomeLdap().isEmpty());
     assertTrue(result.getUsersToBeRemoved().isEmpty());
+    assertTrue(result.getGroupsProcessedInternal().contains("group1"));
+    assertTrue(result.getGroupsProcessedInternal().contains("group2"));
+    assertTrue(!result.getGroupsProcessedInternal().contains("xgroup1"));
+    assertTrue(!result.getGroupsProcessedInternal().contains("xgroup2"));
     verify(populator.loadLdapTemplate(), populator);
   }