Updated Branches: refs/heads/branch-1.4 a50a34674 -> eabe6a947
AMBARI-3040. Nodemanger unhealthy alert when multiple log directories are specified. (swagle) Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/eabe6a94 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/eabe6a94 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/eabe6a94 Branch: refs/heads/branch-1.4 Commit: eabe6a9477c8569028bbd79a8b51009e77c94c6e Parents: a50a346 Author: Siddharth Wagle <[email protected]> Authored: Tue Aug 27 14:24:36 2013 -0700 Committer: Siddharth Wagle <[email protected]> Committed: Tue Aug 27 14:24:36 2013 -0700 ---------------------------------------------------------------------- .../modules/hdp-yarn/manifests/nodemanager.pp | 24 ++++++++------------ .../parser/functions/hdp_set_from_comma_list.rb | 7 ++++-- 2 files changed, 14 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/eabe6a94/ambari-agent/src/main/puppet/modules/hdp-yarn/manifests/nodemanager.pp ---------------------------------------------------------------------- diff --git a/ambari-agent/src/main/puppet/modules/hdp-yarn/manifests/nodemanager.pp b/ambari-agent/src/main/puppet/modules/hdp-yarn/manifests/nodemanager.pp index b68a27e..5976730 100644 --- a/ambari-agent/src/main/puppet/modules/hdp-yarn/manifests/nodemanager.pp +++ b/ambari-agent/src/main/puppet/modules/hdp-yarn/manifests/nodemanager.pp @@ -26,6 +26,7 @@ class hdp-yarn::nodemanager( $yarn_user = $hdp-yarn::params::yarn_user $nm_local_dirs = $hdp-yarn::params::nm_local_dirs $nm_log_dirs = $hdp-yarn::params::nm_log_dirs + $yarn_log_dir_prefix = $hdp-yarn::params::yarn_log_dir_prefix if ($service_state == 'no_op') { } elsif ($service_state in 'installed_and_configured') { @@ -39,20 +40,11 @@ class hdp-yarn::nodemanager( include hdp-yarn::initialize - hdp-yarn::nodemanager::create_nm_dirs { $nm_local_dirs: - service_state => $service_state - } + # To avoid duplicate resource definitions + $nm_dirs = hdp_set_from_comma_list("${nm_local_dirs},${nm_log_dirs}", "$yarn_log_dir_prefix") - if ($nm_local_dirs != $nm_log_dirs) { - hdp::directory_recursive_create { $nm_log_dirs: - owner => $yarn_user, - context_tag => 'yarn_service', - service_state => $service_state, - force => true - } - Hdp-yarn::Nodemanager::Create_nm_dirs<||> -> - Hdp::Directory_recursive_create[ $nm_log_dirs ] -> - Hdp-yarn::Service['nodemanager'] + hdp-yarn::nodemanager::create_nm_dirs { $nm_dirs: + service_state => $service_state } hdp-yarn::service{ 'nodemanager': @@ -60,15 +52,17 @@ class hdp-yarn::nodemanager( user => $yarn_user } - anchor{"hdp-yarn::nodemanager::begin":} -> + anchor{"hdp-yarn::nodemanager::begin" : } -> Hdp-yarn::Nodemanager::Create_nm_dirs<||> -> - Hdp-yarn::Service['nodemanager'] -> anchor{"hdp-yarn::nodemanager::end":} + Hdp-yarn::Service['nodemanager'] -> + anchor{"hdp-yarn::nodemanager::end": } } else { hdp_fail("TODO not implemented yet: service_state = ${service_state}") } } + define hdp-yarn::nodemanager::create_nm_dirs($service_state) { $dirs = hdp_array_from_comma_list($name) hdp::directory_recursive_create { $dirs : http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/eabe6a94/ambari-agent/src/main/puppet/modules/hdp/lib/puppet/parser/functions/hdp_set_from_comma_list.rb ---------------------------------------------------------------------- diff --git a/ambari-agent/src/main/puppet/modules/hdp/lib/puppet/parser/functions/hdp_set_from_comma_list.rb b/ambari-agent/src/main/puppet/modules/hdp/lib/puppet/parser/functions/hdp_set_from_comma_list.rb index 1dc61f3..8790fde 100644 --- a/ambari-agent/src/main/puppet/modules/hdp/lib/puppet/parser/functions/hdp_set_from_comma_list.rb +++ b/ambari-agent/src/main/puppet/modules/hdp/lib/puppet/parser/functions/hdp_set_from_comma_list.rb @@ -22,10 +22,13 @@ require 'set' module Puppet::Parser::Functions newfunction(:hdp_set_from_comma_list, :type => :rvalue) do |args| - list = function_hdp_array_from_comma_list(args) + dir_list = args[0] + reject_items = args[1].nil? ? [] : function_hdp_array_from_comma_list(args[1]) + + list = function_hdp_array_from_comma_list(dir_list) list.each_index {|i| list [i]=list [i].strip} #Delete empty strings - list.reject! { |e| e.empty? } + list.reject! { |e| e.empty? or reject_items.include?(e) } list.uniq end end \ No newline at end of file
