chef 0.10.0.beta.6 → 0.10.0.beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/chef/application.rb +3 -0
- data/lib/chef/application/client.rb +34 -2
- data/lib/chef/checksum.rb +2 -2
- data/lib/chef/checksum_cache.rb +2 -2
- data/lib/chef/client.rb +7 -5
- data/lib/chef/cookbook/remote_file_vendor.rb +1 -1
- data/lib/chef/cookbook/syntax_check.rb +2 -2
- data/lib/chef/cookbook_version.rb +5 -0
- data/lib/chef/data_bag_item.rb +1 -1
- data/lib/chef/environment.rb +31 -9
- data/lib/chef/file_access_control.rb +7 -3
- data/lib/chef/index_queue/indexable.rb +2 -2
- data/lib/chef/knife.rb +1 -1
- data/lib/chef/knife/bootstrap.rb +1 -1
- data/lib/chef/knife/cookbook_site_install.rb +1 -1
- data/lib/chef/knife/cookbook_site_share.rb +2 -2
- data/lib/chef/knife/cookbook_upload.rb +32 -11
- data/lib/chef/knife/core/subcommand_loader.rb +24 -13
- data/lib/chef/knife/core/text_formatter.rb +2 -2
- data/lib/chef/knife/core/ui.rb +1 -1
- data/lib/chef/knife/search.rb +1 -1
- data/lib/chef/knife/ssh.rb +1 -0
- data/lib/chef/mixin/shell_out.rb +2 -2
- data/lib/chef/node.rb +7 -4
- data/lib/chef/provider/cookbook_file.rb +4 -5
- data/lib/chef/provider/cron.rb +3 -3
- data/lib/chef/provider/cron/solaris.rb +7 -7
- data/lib/chef/provider/deploy.rb +52 -29
- data/lib/chef/provider/directory.rb +8 -8
- data/lib/chef/provider/env.rb +8 -8
- data/lib/chef/provider/erl_call.rb +7 -6
- data/lib/chef/provider/execute.rb +7 -2
- data/lib/chef/provider/file.rb +9 -9
- data/lib/chef/provider/git.rb +17 -8
- data/lib/chef/provider/group.rb +6 -6
- data/lib/chef/provider/group/aix.rb +1 -1
- data/lib/chef/provider/group/dscl.rb +2 -2
- data/lib/chef/provider/group/gpasswd.rb +3 -3
- data/lib/chef/provider/group/groupadd.rb +1 -1
- data/lib/chef/provider/group/pw.rb +3 -3
- data/lib/chef/provider/group/usermod.rb +2 -2
- data/lib/chef/provider/group/windows.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +9 -7
- data/lib/chef/provider/link.rb +27 -24
- data/lib/chef/provider/mdadm.rb +10 -10
- data/lib/chef/provider/mount.rb +10 -13
- data/lib/chef/provider/mount/mount.rb +10 -10
- data/lib/chef/provider/mount/windows.rb +4 -3
- data/lib/chef/provider/ohai.rb +2 -1
- data/lib/chef/provider/package.rb +10 -6
- data/lib/chef/provider/package/apt.rb +18 -18
- data/lib/chef/provider/package/dpkg.rb +3 -3
- data/lib/chef/provider/package/easy_install.rb +2 -2
- data/lib/chef/provider/package/freebsd.rb +4 -5
- data/lib/chef/provider/package/macports.rb +2 -2
- data/lib/chef/provider/package/pacman.rb +2 -2
- data/lib/chef/provider/package/portage.rb +1 -1
- data/lib/chef/provider/package/rpm.rb +3 -3
- data/lib/chef/provider/package/rubygems.rb +7 -7
- data/lib/chef/provider/package/solaris.rb +9 -9
- data/lib/chef/provider/package/yum.rb +4 -4
- data/lib/chef/provider/package/zypper.rb +5 -11
- data/lib/chef/provider/remote_directory.rb +15 -14
- data/lib/chef/provider/remote_file.rb +11 -12
- data/lib/chef/provider/route.rb +8 -10
- data/lib/chef/provider/ruby_block.rb +1 -0
- data/lib/chef/provider/service.rb +10 -16
- data/lib/chef/provider/service/debian.rb +1 -1
- data/lib/chef/provider/service/freebsd.rb +16 -18
- data/lib/chef/provider/service/gentoo.rb +2 -3
- data/lib/chef/provider/service/simple.rb +7 -5
- data/lib/chef/provider/service/upstart.rb +8 -8
- data/lib/chef/provider/service/windows.rb +3 -3
- data/lib/chef/provider/subversion.rb +12 -9
- data/lib/chef/provider/template.rb +2 -3
- data/lib/chef/provider/user.rb +13 -14
- data/lib/chef/provider/user/dscl.rb +2 -2
- data/lib/chef/provider/user/pw.rb +4 -4
- data/lib/chef/provider/user/useradd.rb +3 -3
- data/lib/chef/provider/user/windows.rb +3 -3
- data/lib/chef/resource.rb +4 -3
- data/lib/chef/resource/deploy.rb +1 -1
- data/lib/chef/rest/rest_request.rb +2 -2
- data/lib/chef/run_context.rb +1 -1
- data/lib/chef/shell_out.rb +13 -1
- data/lib/chef/solr_query.rb +1 -1
- data/lib/chef/solr_query/solr_http_request.rb +1 -1
- data/lib/chef/tasks/chef_repo.rake +74 -0
- data/lib/chef/version.rb +1 -1
- metadata +2 -2
data/lib/chef/resource/deploy.rb
CHANGED
@@ -274,7 +274,7 @@ class Chef
|
|
274
274
|
|
275
275
|
def environment(arg=nil)
|
276
276
|
if arg.is_a?(String)
|
277
|
-
Chef::Log.
|
277
|
+
Chef::Log.debug "Setting RAILS_ENV, RACK_ENV, and MERB_ENV to `#{arg}'"
|
278
278
|
Chef::Log.warn "[DEPRECATED] please modify your deploy recipe or attributes to set the environment using a hash"
|
279
279
|
arg = {"RAILS_ENV"=>arg,"MERB_ENV"=>arg,"RACK_ENV"=>arg}
|
280
280
|
end
|
@@ -101,7 +101,7 @@ class Chef
|
|
101
101
|
# http://redmine.ruby-lang.org/issues/show/2708
|
102
102
|
# http://redmine.ruby-lang.org/issues/show/2758
|
103
103
|
if e.to_s =~ /#{Regexp.escape(%q|undefined method `closed?' for nil:NilClass|)}/
|
104
|
-
Chef::Log.debug("
|
104
|
+
Chef::Log.debug("Rescued error in http connect, re-raising as Errno::ECONNREFUSED to hide bug in net/http")
|
105
105
|
Chef::Log.debug("#{e.class.name}: #{e.to_s}")
|
106
106
|
Chef::Log.debug(e.backtrace.join("\n"))
|
107
107
|
raise Errno::ECONNREFUSED, "Connection refused attempting to contact #{url.scheme}://#{host}:#{port}"
|
@@ -141,7 +141,7 @@ class Chef
|
|
141
141
|
if http_proxy.nil?
|
142
142
|
@http_client = Net::HTTP.new(host, port)
|
143
143
|
else
|
144
|
-
Chef::Log.debug("
|
144
|
+
Chef::Log.debug("Using #{http_proxy.host}:#{http_proxy.port} for proxy")
|
145
145
|
user = Chef::Config["#{url.scheme}_proxy_user"]
|
146
146
|
pass = Chef::Config["#{url.scheme}_proxy_pass"]
|
147
147
|
@http_client = Net::HTTP.Proxy(http_proxy.host, http_proxy.port, user, pass).new(host, port)
|
data/lib/chef/run_context.rb
CHANGED
@@ -107,7 +107,7 @@ class Chef
|
|
107
107
|
resourcelist = Chef::ResourceDefinitionList.new
|
108
108
|
resourcelist.from_file(filename)
|
109
109
|
definitions.merge!(resourcelist.defines) do |key, oldval, newval|
|
110
|
-
Chef::Log.info("Overriding duplicate definition #{key}, new found in #{filename}")
|
110
|
+
Chef::Log.info("Overriding duplicate definition #{key}, new definition found in #{filename}")
|
111
111
|
newval
|
112
112
|
end
|
113
113
|
end
|
data/lib/chef/shell_out.rb
CHANGED
@@ -56,6 +56,8 @@ class Chef
|
|
56
56
|
attr_accessor :cwd
|
57
57
|
attr_accessor :valid_exit_codes
|
58
58
|
attr_accessor :live_stream
|
59
|
+
attr_accessor :command_log_level
|
60
|
+
attr_accessor :command_log_prepend
|
59
61
|
|
60
62
|
attr_reader :command, :umask, :environment
|
61
63
|
attr_writer :timeout
|
@@ -111,6 +113,8 @@ class Chef
|
|
111
113
|
def initialize(*command_args)
|
112
114
|
@stdout, @stderr = '', ''
|
113
115
|
@live_stream = nil
|
116
|
+
@command_log_level = :debug
|
117
|
+
@command_log_prepend = nil
|
114
118
|
@environment = DEFAULT_ENVIRONMENT
|
115
119
|
@cwd = nil
|
116
120
|
@valid_exit_codes = [0]
|
@@ -169,7 +173,11 @@ class Chef
|
|
169
173
|
# * Chef::Exceptions::CommandTimeout when the command does not complete
|
170
174
|
# within +timeout+ seconds (default: 60s)
|
171
175
|
def run_command
|
172
|
-
|
176
|
+
if command_log_prepend
|
177
|
+
Chef::Log.send(command_log_level, "#{command_log_prepend} sh(#{@command})")
|
178
|
+
else
|
179
|
+
Chef::Log.send(command_log_level, "sh(#{@command})")
|
180
|
+
end
|
173
181
|
super
|
174
182
|
end
|
175
183
|
|
@@ -224,6 +232,10 @@ class Chef
|
|
224
232
|
self.valid_exit_codes = Array(setting)
|
225
233
|
when 'live_stream'
|
226
234
|
self.live_stream = setting
|
235
|
+
when 'command_log_level'
|
236
|
+
self.command_log_level = setting
|
237
|
+
when 'command_log_prepend'
|
238
|
+
self.command_log_prepend = setting
|
227
239
|
when 'environment', 'env'
|
228
240
|
# passing :environment => nil means don't set any new ENV vars
|
229
241
|
@environment = setting.nil? ? {} : @environment.dup.merge!(setting)
|
data/lib/chef/solr_query.rb
CHANGED
@@ -104,7 +104,7 @@ class Chef
|
|
104
104
|
def objects
|
105
105
|
if !object_ids.empty?
|
106
106
|
@bulk_objects ||= @couchdb.bulk_get(object_ids)
|
107
|
-
Chef::Log.debug { "
|
107
|
+
Chef::Log.debug { "Bulk get of objects: #{@bulk_objects.inspect}" }
|
108
108
|
@bulk_objects
|
109
109
|
else
|
110
110
|
[]
|
@@ -97,7 +97,7 @@ class Chef
|
|
97
97
|
# http://redmine.ruby-lang.org/issues/show/2758
|
98
98
|
if e.to_s =~ /#{Regexp.escape(%q|undefined method 'closed?' for nil:NilClass|)}/
|
99
99
|
Chef::Log.fatal("#{description} failed. Chef::Exceptions::SolrConnectionError exception: Errno::ECONNREFUSED (net/http undefined method closed?) attempting to contact #{solr_url}")
|
100
|
-
Chef::Log.debug("
|
100
|
+
Chef::Log.debug("Rescued error in http connect, treating it as Errno::ECONNREFUSED to hide bug in net/http")
|
101
101
|
Chef::Log.debug(e.backtrace.join("\n"))
|
102
102
|
raise Chef::Exceptions::SolrConnectionError, "Errno::ECONNREFUSED: Connection refused attempting to contact #{solr_url}"
|
103
103
|
else
|
@@ -254,3 +254,77 @@ task :test_cookbook, :cookbook do |t, args|
|
|
254
254
|
system("knife cookbook test #{args.cookbook}")
|
255
255
|
end
|
256
256
|
|
257
|
+
namespace :databag do
|
258
|
+
path = "data_bags"
|
259
|
+
|
260
|
+
desc "Upload a single databag"
|
261
|
+
task :upload, :databag do |t, args|
|
262
|
+
input_databag = args[:databag] || 'none_specified'
|
263
|
+
databag = File.join(path, input_databag)
|
264
|
+
|
265
|
+
if File.exists?(databag) && File.directory?(databag)
|
266
|
+
system "knife data bag create #{input_databag}"
|
267
|
+
Dir.foreach(databag) do |item|
|
268
|
+
name, type = item.split('.')
|
269
|
+
if type == 'json' && name.length > 0
|
270
|
+
system "knife data bag from file #{input_databag} " + File.join(databag, item)
|
271
|
+
end
|
272
|
+
end
|
273
|
+
else
|
274
|
+
puts "ERROR: Could not find the databag in your databag path (" + File.join(path, input_databag) + "), skipping it"
|
275
|
+
end
|
276
|
+
end
|
277
|
+
|
278
|
+
desc "Upload all databags"
|
279
|
+
task :upload_all do
|
280
|
+
if File.exists?(path) && File.directory?(path)
|
281
|
+
Dir.foreach(path) do |databag|
|
282
|
+
if databag == databag[/^[\-[:alnum:]_]+$/]
|
283
|
+
Rake::Task['databag:upload'].execute( { :databag => databag } )
|
284
|
+
end
|
285
|
+
end
|
286
|
+
else
|
287
|
+
puts "ERROR: Could not find any databags, skipping it"
|
288
|
+
end
|
289
|
+
end
|
290
|
+
|
291
|
+
desc "Create a databag"
|
292
|
+
task :create, :databag do |t, args|
|
293
|
+
input_databag = args[:databag] || 'none_specified'
|
294
|
+
|
295
|
+
FileUtils.mkdir(path) unless File.exists?(path)
|
296
|
+
databag = File.join(path, input_databag)
|
297
|
+
FileUtils.mkdir(databag) unless File.exists?(databag)
|
298
|
+
end
|
299
|
+
|
300
|
+
desc "Create a databag item stub"
|
301
|
+
task :create_item, :databag, :item do |t, args|
|
302
|
+
input_databag = args[:databag] || 'none_specified'
|
303
|
+
input_item = args[:item] || false
|
304
|
+
|
305
|
+
databag = File.join(path, input_databag)
|
306
|
+
if File.exists?(databag) && File.directory?(databag)
|
307
|
+
if input_item
|
308
|
+
json_filename = File.join(databag, "#{input_item}.json")
|
309
|
+
if !File.exists?(json_filename)
|
310
|
+
stub = <<EOH
|
311
|
+
{
|
312
|
+
"id" : "#{input_item}"
|
313
|
+
}
|
314
|
+
EOH
|
315
|
+
json_file = File.new(json_filename, "w")
|
316
|
+
json_file.write(stub)
|
317
|
+
json_file.close
|
318
|
+
else
|
319
|
+
puts "ERROR: databag item already exists (#{json_filename}), skipping it"
|
320
|
+
end
|
321
|
+
else
|
322
|
+
puts "ERROR: No item id specified, skipping it"
|
323
|
+
end
|
324
|
+
else
|
325
|
+
puts "ERROR: Could not find your databag (#{databag}), skipping it"
|
326
|
+
end
|
327
|
+
end
|
328
|
+
|
329
|
+
end
|
330
|
+
|
data/lib/chef/version.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: chef
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease: 7
|
5
|
-
version: 0.10.0.beta.
|
5
|
+
version: 0.10.0.beta.7
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Adam Jacob
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-04-
|
13
|
+
date: 2011-04-06 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|