private Map<String, Set<String>> gatherPropertiesToIgnore(List<KerberosIdentityDescriptor> identities,
                                                            Map<String, Set<String>> propertiesToIgnore) {
    Map<String, Map<String, String>> identityConfigurations = kerberosHelper.getIdentityConfigurations(identities);
    if (!MapUtils.isEmpty(identityConfigurations)) {
      if (propertiesToIgnore == null) {
        propertiesToIgnore = new HashMap<>();
      }

      for (Map.Entry<String, Map<String, String>> entry : identityConfigurations.entrySet()) {
        String configType = entry.getKey();
        Map<String, String> properties = entry.getValue();

        if (MapUtils.isEmpty(properties)) {
          Set<String> propertyNames = propertiesToIgnore.get(configType);
          if (propertyNames == null) {
            propertyNames = new HashSet<>();
            propertiesToIgnore.put(configType, propertyNames);
          }
          propertyNames.addAll(properties.keySet());
        }
      }
    }

    return propertiesToIgnore;
  }
Find and iterate through the {@link ServiceComponentHost} objects for the current {@link Cluster}
to calculate property updates and auth-to-local rules.

@param cluster                the cluster
@param kerberosDescriptor     the Kerberos descriptor
@param currentConfigurations  the current configurations for the cluster
@param kerberosConfigurations the (Kerberos-specific) configuration updates
@param propertiesToBeIgnored  a map to store properties that should be ignored by operations that update property values
@throws AmbariException if an issue occurs
ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/PreconfigureKerberosAction.java