Пример #1
0
  /**
   * Merge configurations with the parent configurations. This will update the child configuration
   * module set as well as the underlying info instances.
   *
   * @param parent parent service module
   * @param allStacks all stack modules
   * @param commonServices common service modules
   */
  private void mergeConfigurations(
      ServiceModule parent,
      Map<String, StackModule> allStacks,
      Map<String, ServiceModule> commonServices)
      throws AmbariException {
    serviceInfo.getProperties().clear();
    serviceInfo.setAllConfigAttributes(new HashMap<String, Map<String, Map<String, String>>>());

    Collection<ConfigurationModule> mergedModules =
        mergeChildModules(
            allStacks, commonServices, configurationModules, parent.configurationModules);

    for (ConfigurationModule module : mergedModules) {
      configurationModules.put(module.getId(), module);
      if (!module.isDeleted()) {
        serviceInfo.getProperties().addAll(module.getModuleInfo().getProperties());
        serviceInfo.setTypeAttributes(
            module.getConfigType(), module.getModuleInfo().getAttributes());
      }
    }
  }