private void createGlobalPredicates() {
    Preconditions.checkState(servicePredicatesByStep != null);

    Function<Predicate, Predicate> andClusterNameMatches = and(clusterNameIs(request.clusterName()));
    for (Map.Entry<ProvisionStep, List<Predicate>> entry : servicePredicatesByStep.entrySet()) {
      ProvisionStep step = entry.getKey();
      List<Predicate> servicePredicates = entry.getValue();
      anyOf(servicePredicates).map(andClusterNameMatches).ifPresent(predicate -> predicates.put(step, predicate));
    }
  }
Creates a "global" predicate for each {@link ProvisionStep} in the form of:
cluster_name=... AND (service1 predicate OR service2 predicate OR ...)
ambari-server/src/main/java/org/apache/ambari/server/topology/addservice/ProvisionActionPredicateBuilder.java