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)