chef-provisioning 1.0.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -1
- data/lib/chef/provider/machine_batch.rb +1 -1
- data/lib/chef/provisioning/convergence_strategy/install_sh.rb +14 -1
- data/lib/chef/provisioning/transport.rb +11 -6
- data/lib/chef/provisioning/transport/ssh.rb +2 -1
- data/lib/chef/provisioning/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88e66a0f2f8ba08fe89dd0bacfafc5347e60ab1e
|
4
|
+
data.tar.gz: 8613f4903f14bfbee91ad754733a666c7f926b57
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7573ea723df0c01690c01e593f135c1fd3eeac2e0279a521befba486251f045bb51cf5b8af614b9a91f17f835c90af3ce831b33265533bbd88aadf22cd5fa79a
|
7
|
+
data.tar.gz: 773f45f5108f16e456bc75f6fd1bdb2e54f5daa3d35d1a13eb19dd6c17c631e041df21262ed10cdaa567ec1f110c009224c787c54fe7fb135ee5f81bf26d1dc9
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Chef Provisioning Changelog
|
2
2
|
|
3
|
+
## 1.1.0
|
4
|
+
|
5
|
+
- Fix machine_batch :destroy, no longer creating extra threads ([#321][])
|
6
|
+
- Allow user to specify a custom stdout in `Chef::Config[:stdout]` ([#311][])
|
7
|
+
- If `convergence_options[:bootstrap_proxy]` is populated use it to download chef ([#317][])
|
8
|
+
|
3
9
|
## 1.0.1 (4/7/2015)
|
4
10
|
|
5
11
|
- Clean up dependencies ([#316][])
|
@@ -279,7 +285,10 @@
|
|
279
285
|
[#297]: https://github.com/chef/chef-provisioning/issues/297
|
280
286
|
[#299]: https://github.com/chef/chef-provisioning/issues/299
|
281
287
|
[#303]: https://github.com/chef/chef-provisioning/issues/303
|
288
|
+
[#311]: https://github.com/chef/chef-provisioning/issues/311
|
282
289
|
[#316]: https://github.com/chef/chef-provisioning/issues/316
|
290
|
+
[#317]: https://github.com/chef/chef-provisioning/issues/317
|
291
|
+
[#321]: https://github.com/chef/chef-provisioning/issues/321
|
283
292
|
[@MrMMorris]: https://github.com/MrMMorris
|
284
293
|
[@causton1]: https://github.com/causton1
|
285
294
|
[@chef]: https://github.com/chef
|
@@ -296,4 +305,4 @@
|
|
296
305
|
[@mwrock]: https://github.com/mwrock
|
297
306
|
[@segv]: https://github.com/segv
|
298
307
|
[@xeon22]: https://github.com/xeon22
|
299
|
-
[@xorl]: https://github.com/xorl
|
308
|
+
[@xorl]: https://github.com/xorl
|
@@ -77,7 +77,7 @@ class MachineBatch < Chef::Provider::LWRPBase
|
|
77
77
|
action :destroy do
|
78
78
|
parallel_do(by_current_driver) do |driver, specs_and_options|
|
79
79
|
driver.destroy_machines(action_handler, specs_and_options, parallelizer)
|
80
|
-
|
80
|
+
specs_and_options.keys.each do |machine_spec|
|
81
81
|
machine_spec.delete(action_handler)
|
82
82
|
end
|
83
83
|
end
|
@@ -64,7 +64,20 @@ module Provisioning
|
|
64
64
|
|
65
65
|
# Install chef client
|
66
66
|
# TODO ssh verification of install.sh before running arbtrary code would be nice?
|
67
|
-
|
67
|
+
if convergence_options[:bootstrap_proxy].empty?
|
68
|
+
@@install_sh_cache[install_sh_url] ||= Net::HTTP.get(URI(install_sh_url))
|
69
|
+
else
|
70
|
+
@@install_sh_cache[install_sh_url] ||= begin
|
71
|
+
proxy_uri = URI.parse(convergence_options[:bootstrap_proxy])
|
72
|
+
chef_uri = URI.parse(@install_sh_url)
|
73
|
+
proxy = Net::HTTP::Proxy(proxy_uri.host, proxy_uri.port, proxy_uri.user, proxy_uri.password)
|
74
|
+
req = Net::HTTP::Get.new(chef_uri.path)
|
75
|
+
script = proxy.start(chef_uri.host, :use_ssl => proxy_uri.scheme == 'https') do |http|
|
76
|
+
http.request(req)
|
77
|
+
end
|
78
|
+
script.body
|
79
|
+
end
|
80
|
+
end
|
68
81
|
machine.write_file(action_handler, install_sh_path, @@install_sh_cache[install_sh_url], :ensure_dir => true)
|
69
82
|
# TODO handle bad version case better
|
70
83
|
machine.execute(action_handler, install_sh_command_line)
|
@@ -67,18 +67,23 @@ module Provisioning
|
|
67
67
|
options[:stream].call(stdout_chunk, stderr_chunk)
|
68
68
|
else
|
69
69
|
if stdout_chunk
|
70
|
-
if options
|
71
|
-
options[:stream_stdout]
|
70
|
+
if options.has_key?(:stream_stdout)
|
71
|
+
stream = options[:stream_stdout]
|
72
72
|
elsif options[:stream] || config[:log_level] == :debug
|
73
|
-
STDOUT
|
73
|
+
stream = config[:stdout] || STDOUT
|
74
74
|
end
|
75
|
+
|
76
|
+
stream.print stdout_chunk if stream
|
75
77
|
end
|
78
|
+
|
76
79
|
if stderr_chunk
|
77
|
-
if options
|
78
|
-
options[:stream_stderr]
|
80
|
+
if options.has_key?(:stream_stderr)
|
81
|
+
stream = options[:stream_stderr]
|
79
82
|
elsif options[:stream] || config[:log_level] == :debug
|
80
|
-
STDERR
|
83
|
+
stream = config[:stderr] || STDERR
|
81
84
|
end
|
85
|
+
|
86
|
+
stream.print stderr_chunk if stream
|
82
87
|
end
|
83
88
|
end
|
84
89
|
end
|
@@ -90,6 +90,7 @@ module Provisioning
|
|
90
90
|
SSHResult.new(command, execute_options, stdout, stderr, exitstatus)
|
91
91
|
end
|
92
92
|
|
93
|
+
# TODO why does #read_file download it to the target host?
|
93
94
|
def read_file(path)
|
94
95
|
Chef::Log.debug("Reading file #{path} from #{username}@#{host}")
|
95
96
|
result = StringIO.new
|
@@ -208,7 +209,7 @@ module Provisioning
|
|
208
209
|
execute("chown #{username} #{remote_tempfile}").error!
|
209
210
|
do_download remote_tempfile, local_path
|
210
211
|
rescue => e
|
211
|
-
Chef::Log.error "Unable to download #{path} to #{
|
212
|
+
Chef::Log.error "Unable to download #{path} to #{remote_tempfile} on #{username}@#{host} -- #{e}"
|
212
213
|
nil
|
213
214
|
ensure
|
214
215
|
# Clean up afterwards
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-provisioning
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Keiser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef
|