private LdapSyncEventEntity toEntity(Map<String, Object> properties) {
    LdapSyncEventEntity      entity   = new LdapSyncEventEntity(getNextEventId());
    List<LdapSyncSpecEntity> specList = new LinkedList<>();

    Set<Map<String, String>> specs = (Set<Map<String, String>>) properties.get(EVENT_SPECS_PROPERTY_ID);

    for (Map<String, String> specMap : specs) {

      LdapSyncSpecEntity.SyncType      syncType      = null;
      LdapSyncSpecEntity.PrincipalType principalType = null;
      boolean postProcessExistingUsers = false;

      List<String> principalNames = Collections.emptyList();

      for (Map.Entry<String, String> entry : specMap.entrySet()) {
        String key = entry.getKey();
        if (key.equalsIgnoreCase(PRINCIPAL_TYPE_SPEC_KEY)) {
          principalType = LdapSyncSpecEntity.PrincipalType.valueOfIgnoreCase(entry.getValue());

        } else if (key.equalsIgnoreCase(SYNC_TYPE_SPEC_KEY)) {
          syncType = LdapSyncSpecEntity.SyncType.valueOfIgnoreCase(entry.getValue());

        } else if (key.equalsIgnoreCase(NAMES_SPEC_KEY)) {
          String names = entry.getValue();
          principalNames = Arrays.asList(names.split("\\s*,\\s*"));

        } else if (key.equalsIgnoreCase(POST_PROCESS_EXISTING_USERS_SPEC_KEY)) {
          postProcessExistingUsers = "true".equalsIgnoreCase(entry.getValue());

        } else {
          throw new IllegalArgumentException("Unknown spec key " + key + ".");
        }
      }

      if (syncType == null || principalType == null) {
        throw new IllegalArgumentException("LDAP event spec must include both sync-type and principal-type.");
      }

      LdapSyncSpecEntity spec = new LdapSyncSpecEntity(principalType, syncType, principalNames, postProcessExistingUsers);
      specList.add(spec);
    }
    entity.setSpecs(specList);

    return entity;
  }
Ensure that sync events are being processed.
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/LdapSyncEventResourceProvider.java