private void addRequiredHostgroupsByDefaultUpdater(Map<String, Map<String, String>> properties,
                                                     Set<Pair<String, String>> propertiesWithUpdaters,
                                                     Set<String> hostGroupAccumulator) {
    properties.entrySet().forEach(
      configTypeEntry -> {
        String configType = configTypeEntry.getKey();
        configTypeEntry.getValue().entrySet().forEach(
          propertyEntry -> {
            String propertyName = propertyEntry.getKey();
            String oldValue = propertyEntry.getValue();
            if (!propertiesWithUpdaters.contains(Pair.of(configType, propertyName))) {
              Collection<String> requiredHostGroups =
                PropertyUpdater.defaultUpdater().getRequiredHostGroups(propertyName, oldValue, properties, clusterTopology);
              if (!requiredHostGroups.isEmpty()) {
                LOG.info("The following host groups are required by applying the default property updater on {}/{} property: {}",
                  configType, propertyName, requiredHostGroups);
              }
              hostGroupAccumulator.addAll(requiredHostGroups);
            }
          });
      });
  }
Adds required host groups based on user defined (in the blueprint or cluster template) configuration properties and
the default property updaters. Only those properties are considered which don't have a configured updater.
@param properties properties to scan for host group references
@param propertiesWithUpdaters properties in (configType, propertyName) which have a configured updater
@param hostGroupAccumulator collection to accumulate required host groups
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java