String getHost(String hostGroup) {
        Preconditions.checkState(!hostGroupsUsed.contains(hostGroup),
          "Multiple occurrence of host group [%s] in property value of: [%s].", hostGroup, propertyName);
        HostGroupInfo hostGroupInfo = topology.getHostGroupInfo().get(hostGroup);
        Preconditions.checkArgument(null != hostGroupInfo,
          "Encountered a host group token in configuration which couldn't be matched to a host group: %s", hostGroup);
        if (hostGroupInfo.getHostNames().size() > 1) {
          LOG.warn("Host group {} contains multiple hosts. Using {} with such host groups may result in unintended configuration.",
            hostGroup, HostGroupUpdater.class.getSimpleName());
        }
        hostGroupsUsed.add(hostGroup);
        return hostGroupInfo.getHostNames().iterator().next();
      }
@return the default updater to apply on user defined (blueprint + cluster template, not stack defaults) properties
configuration properties that do not have a registered updater
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java