knife-solo 0.7.0.pre → 0.7.0.pre2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 54b796b366bee333a0859d7f76c02c00aace3dfa
4
- data.tar.gz: a7544fec3cd45386282288640a98b928da7265a4
3
+ metadata.gz: 2cd8ed21100393ee29ead0eafe2cc97f0436daaf
4
+ data.tar.gz: eade95b600e9eb50fcd29dcb6e0e97e3267b5555
5
5
  SHA512:
6
- metadata.gz: a2f863db00f02c4f16402e7964178bca9f2c7d5dee8ef4c7699938227c1e3010a7c98be098ac4a4db07f5fdf4665d56d7f0accb29fae762a1db3ce3a7d17508b
7
- data.tar.gz: 1d6ba62ef6d0e1d27c1e1d0ca11beece9f95623fad826e0bcd61548f8b3c0425b8ebe9bb947dc7f35f60e90391d0af3201818badd966231f92a613ca4465ff8f
6
+ metadata.gz: 4c7a9ad01f4efb1ba3be49184c7976f8d95ba654590ce31b920e2338f4481f3233c0ee8f7bf15540180c131df6fe970859c5b658e1a25273a7d158730226de09
7
+ data.tar.gz: 88d901f75f658efc40fe4f84dfad967071fd7b64420a9c44073813b97b291144401161fb5442d871952c27bf8c10c573ac1b449b39abc037538a9cfd5eb0a282
@@ -22,7 +22,7 @@ class Chef
22
22
  def run
23
23
  validate!
24
24
  ui.msg "Cleaning up #{host}..."
25
- run_command "rm -rf #{provisioning_path}"
25
+ run_command "sudo rm -rf #{provisioning_path}"
26
26
  end
27
27
 
28
28
  def validate!
@@ -79,6 +79,11 @@ class Chef
79
79
  :long => '--legacy-mode',
80
80
  :description => 'Run chef-solo in legacy mode'
81
81
 
82
+ option :log_level,
83
+ :short => '-l LEVEL',
84
+ :long => '--log-level',
85
+ :description => 'Set the log level for Chef'
86
+
82
87
  def run
83
88
  time('Run') do
84
89
 
@@ -143,6 +148,14 @@ class Chef
143
148
  Chef::Config[:solo_legacy_mode] || false
144
149
  end
145
150
 
151
+ def log_level
152
+ config_value(:log_level, Chef::Config[:log_level] || :warn).to_sym
153
+ end
154
+
155
+ def enable_reporting
156
+ config_value(:enable_reporting, true)
157
+ end
158
+
146
159
  def expand_path(path)
147
160
  Pathname.new(path).expand_path
148
161
  end
@@ -1,6 +1,6 @@
1
1
  module KnifeSolo
2
2
  def self.version
3
- '0.7.0.pre'
3
+ '0.7.0.pre2'
4
4
  end
5
5
 
6
6
  def self.post_install_message
@@ -10,6 +10,8 @@ environment_path File.join(base, 'environments')
10
10
  environment <%= node_environment.inspect %>
11
11
  ssl_verify_mode <%= ssl_verify_mode.inspect %>
12
12
  solo_legacy_mode <%= solo_legacy_mode.inspect %>
13
+ log_level <%= log_level.inspect %>
14
+ enable_reporting <%= enable_reporting.inspect %>
13
15
 
14
16
  cookbook_path []
15
17
  <% cookbook_paths.each_with_index do |path, i| -%>
@@ -296,7 +296,6 @@ module KnifeSolo
296
296
 
297
297
  output = ui.stdout if options[:streaming]
298
298
 
299
-
300
299
  @connection ||= ssh_connection
301
300
  @connection.run_command(command, output)
302
301
  end
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec :path => '../..'
4
+
5
+ gem 'chef', '~> 13'
@@ -6,9 +6,15 @@ require 'chef/knife/solo_clean'
6
6
  class SoloCleanTest < TestCase
7
7
  include ValidationHelper::ValidationTests
8
8
 
9
+ def test_removes_default_directory
10
+ cmd = command('somehost')
11
+ cmd.expects(:run_command).with('sudo rm -rf ~/chef-solo').returns(SuccessfulResult.new)
12
+ cmd.run
13
+ end
14
+
9
15
  def test_removes_provision_path
10
16
  cmd = command('somehost', '--provisioning-path=/foo/bar')
11
- cmd.expects(:run_command).with('rm -rf /foo/bar').returns(SuccessfulResult.new)
17
+ cmd.expects(:run_command).with('sudo rm -rf /foo/bar').returns(SuccessfulResult.new)
12
18
  cmd.run
13
19
  end
14
20
 
@@ -133,12 +133,15 @@ class SoloCookTest < TestCase
133
133
  assert_equal "/some/other/path", cmd.cookbook_paths[2].to_s
134
134
  end
135
135
 
136
- def test_sets_proxy_settings
137
- Chef::Config[:http_proxy] = "http://proxy:3128"
138
- Chef::Config[:no_proxy] = nil
139
- conf = command.proxy_settings
140
- assert_equal({ :http_proxy => "http://proxy:3128" }, conf)
141
- end
136
+ # NOTE (mat): Looks like chef::config might be setting HTTP_PROXY which blocks
137
+ # subsequent HTTP requests during tests (like sending coverage reports).
138
+ # Commenting out until this can be re-written with appropriate stubbing.
139
+ # def test_sets_proxy_settings
140
+ # Chef::Config[:http_proxy] = "http://proxy:3128"
141
+ # Chef::Config[:no_proxy] = nil
142
+ # conf = command.proxy_settings
143
+ # assert_equal({ :http_proxy => "http://proxy:3128" }, conf)
144
+ # end
142
145
 
143
146
  def test_adds_patch_cookboks_with_lowest_precedence
144
147
  in_kitchen do
@@ -208,6 +208,27 @@ class SshCommandTest < TestCase
208
208
  assert_equal 300, cmd.connection_options[:keepalive_interval]
209
209
  end
210
210
 
211
+ def test_handle_custom_sudo_command
212
+ cmd = sudo_command("usertest@10.0.0.1", "--sudo-command=/usr/some/sudo")
213
+ assert_equal "/usr/some/sudo", cmd.sudo_command
214
+ end
215
+
216
+ def test_replace_sudo_with_default_sudo_command
217
+ cmd = sudo_command("usertest@10.0.0.1")
218
+ KnifeSolo::SshConnection.any_instance.expects(:run_command).once
219
+ .with("sudo -p 'knife sudo password: ' foo", nil)
220
+
221
+ cmd.run_command("sudo foo")
222
+ end
223
+
224
+ def test_replace_sudo_with_custom_sudo_command
225
+ cmd = sudo_command("usertest@10.0.0.1", "--sudo-command=/usr/some/sudo")
226
+ KnifeSolo::SshConnection.any_instance.expects(:run_command).once
227
+ .with("/usr/some/sudo foo", nil)
228
+
229
+ cmd.run_command("sudo foo")
230
+ end
231
+
211
232
  def test_barks_if_ssh_keepalive_is_zero
212
233
  cmd = command("usertest@10.0.0.1", "--ssh-keepalive-interval=0")
213
234
  cmd.ui.expects(:fatal).with(regexp_matches(/--ssh-keepalive-interval.*positive number/))
@@ -225,4 +246,11 @@ class SshCommandTest < TestCase
225
246
  Net::SSH::Config.stubs(:default_files)
226
247
  knife_command(DummySshCommand, *args)
227
248
  end
249
+
250
+ def sudo_command(*args)
251
+ cmd = command(*args)
252
+ cmd.stubs(:detect_authentication_method).returns(true)
253
+ cmd.stubs(:sudo_available?).returns(true)
254
+ cmd
255
+ end
228
256
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-solo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0.pre
4
+ version: 0.7.0.pre2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mat Schaffer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-03 00:00:00.000000000 Z
11
+ date: 2017-11-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: berkshelf
@@ -270,9 +270,8 @@ files:
270
270
  - lib/knife-solo/tools.rb
271
271
  - test/bootstraps_test.rb
272
272
  - test/deprecated_command_test.rb
273
- - test/gemfiles/Gemfile.chef-10
274
- - test/gemfiles/Gemfile.chef-11
275
273
  - test/gemfiles/Gemfile.chef-12
274
+ - test/gemfiles/Gemfile.chef-13
276
275
  - test/gemfiles/Gemfile.chef-master
277
276
  - test/gitignore_test.rb
278
277
  - test/integration/amazon_linux_2016_03_bootstrap_test.rb
@@ -363,9 +362,8 @@ summary: A collection of knife plugins for dealing with chef solo
363
362
  test_files:
364
363
  - test/bootstraps_test.rb
365
364
  - test/deprecated_command_test.rb
366
- - test/gemfiles/Gemfile.chef-10
367
- - test/gemfiles/Gemfile.chef-11
368
365
  - test/gemfiles/Gemfile.chef-12
366
+ - test/gemfiles/Gemfile.chef-13
369
367
  - test/gemfiles/Gemfile.chef-master
370
368
  - test/gitignore_test.rb
371
369
  - test/integration/amazon_linux_2016_03_bootstrap_test.rb
@@ -1,21 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec :path => '../..'
4
-
5
- gem 'chef', '~> 10.34'
6
-
7
- platform :ruby_19 do
8
- gem 'berkshelf-api-client', '~> 1.3.1'
9
- gem 'tins', '~> 1.6.0'
10
- gem 'varia_model', '~> 0.4.0'
11
- gem 'json', '~> 1.8.1'
12
- gem 'mixlib-config', '~> 1.1.2'
13
- gem 'ohai', '~> 6.24.2'
14
- gem 'nio4r', '~> 1.2.1'
15
- gem 'buff-ignore', '~> 1.1.1'
16
- gem 'rack', '~> 1.6.5'
17
- gem 'net-http-persistent', '~> 2.9.4'
18
- gem 'dep_selector', '<= 1.0.3'
19
- gem 'term-ansicolor', '~> 1.3.2'
20
- gem 'nokogiri', '~> 1.6.8'
21
- end
@@ -1,19 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec :path => '../..'
4
-
5
- gem 'chef', '~> 11'
6
-
7
- platform :ruby_19 do
8
- gem 'berkshelf-api-client', '~> 1.3.1'
9
- gem 'tins', '~> 1.6.0'
10
- gem 'varia_model', '~> 0.4.0'
11
- gem 'ohai', '~> 7.4.1'
12
- gem 'nio4r', '~> 1.2.1'
13
- gem 'buff-ignore', '~> 1.1.1'
14
- gem 'rack', '~> 1.6.5'
15
- gem 'net-http-persistent', '~> 2.9.4'
16
- gem 'dep_selector', '<= 1.0.3'
17
- gem 'term-ansicolor', '~> 1.3.2'
18
- gem 'nokogiri', '~> 1.6.8'
19
- end