[chef] Re: more of a ruby problem


Chronological Thread 
  • From: Daniel Condomitti < >
  • To:
  • Subject: [chef] Re: more of a ruby problem
  • Date: Tue, 29 Oct 2013 23:04:00 -0700

Sean brought this up in your previous thread but it’s most likely due to the back ticks being evaluated during the compile phase versus the run phase. Use Chef::Log.info to output debugging information and avoid shelling out in favor of Mixlib::ShellOut. Also, you can get the node hostname through node[:fqdn].

host = node[:fqdn]
Chef::Log.info "Hostname is #{node[:fqdn]}"

File.open("/local_app/account-rest.properties", "r").each_line do |line|
  Chef::Log.debug "#{host} Account Rest line: #{line}"
  if line.include?(host)
    Chef::Log.info "Found host #{host} in #{line}"
    account_value = line.split(':').last
    Chef::Log.info "Found account value #{account_value}"
  end
end

On Tuesday, October 29, 2013 at 10:51 PM, Manoj Thakkar wrote:

Hi All,

i have written this code but it never goes in if condition , i ma not sure why , 
if i replace the host with the real value of the hostname -s it does work , i am not sure what the issue is ,
might be a syntax error but Ruby does not complain about it , it silently ignores the if condition

please advise.


host=`hostname -s`

puts " hostname is #{host}"


File.open("/local_app/account-rest.properties", "r").each_line do |line|
  puts line
  puts host
   line.chomp
if line.include? "host"

puts " found host #{line}"

value = line.split(":").last
puts " found account value  #{value}"
puts value

end
end




Archive powered by MHonArc 2.6.16.

§