lib/cucumber/chef/helpers/chef_client.rb in cucumber-chef-2.1.0.rc.7 vs lib/cucumber/chef/helpers/chef_client.rb in cucumber-chef-2.1.0.rc.8

- old
+ new

@@ -53,11 +53,11 @@ def chef_run_client(name, *args) chef_config_client(name) logger.info { "Removing artifacts #{Cucumber::Chef::Config[:artifacts].values.collect{|z| "'#{z}'" }.join(' ')}." } - (command_run_chroot(name, "/bin/rm -fv #{Cucumber::Chef::Config[:artifacts].values.join(' ')}") rescue nil) + (command_run_remote(name, "/bin/rm -fv #{Cucumber::Chef::Config[:artifacts].values.join(' ')}") rescue nil) logger.info { "Running chef client on container '#{name}'." } arguments = { "--node-name" => name, @@ -68,11 +68,11 @@ "--environment" => @chef_client_config[:environment] }.reject{ |k,v| v.nil? }.sort output = nil bm = ::Benchmark.realtime do - output = command_run_chroot(name, ["/usr/bin/chef-client", arguments, args, "--once"].flatten.join(" ")) + output = command_run_remote(name, ["/usr/bin/chef-client", arguments, args, "--once"].flatten.join(" ")) end logger.info { "Chef client run on container '#{name}' took %0.4f seconds." % bm } output end @@ -82,26 +82,26 @@ def chef_config_client(name) # make sure our configuration location is there client_rb = File.join("/", container_root(name), "etc/chef/client.rb") FileUtils.mkdir_p(File.dirname(client_rb)) - # Do not render out a chef-client config for now; we'll assume the user will - # use a cookbook/recipe to accomplish this to their liking. + # render the chef-client client.rb if we are configured to + if Cucumber::Chef::Config.chef[:render_client_rb] + File.exists?(client_rb) && File.delete(client_rb) - # File.exists?(client_rb) && File.delete(client_rb) + max_key_size = @chef_client_config.keys.collect{ |z| z.to_s.size }.max - # max_key_size = @chef_client_config.keys.collect{ |z| z.to_s.size }.max - - # File.open(client_rb, 'w') do |f| - # f.puts(Cucumber::Chef.generate_do_not_edit_warning("Chef Client Configuration")) - # f.puts - # @chef_client_config.merge(:node_name => name).each do |(key,value)| - # next if value.nil? - # f.puts("%-#{max_key_size}s %s" % [key, value.inspect]) - # end - # f.puts - # f.puts("Mixlib::Log::Formatter.show_time = true") - # end + File.open(client_rb, 'w') do |f| + f.puts(Cucumber::Chef.generate_do_not_edit_warning("Chef Client Configuration")) + f.puts + @chef_client_config.merge(:node_name => name).each do |(key,value)| + next if value.nil? + f.puts("%-#{max_key_size}s %s" % [key, value.inspect]) + end + f.puts + f.puts("Mixlib::Log::Formatter.show_time = true") + end + end attributes_json = File.join("/", container_root(name), "etc", "chef", "attributes.json") FileUtils.mkdir_p(File.dirname(attributes_json)) File.open(attributes_json, 'w') do |f| f.puts((@containers[name][:chef_client] || {}).to_json)