knife-windows 3.0.17 → 4.0.0

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
  SHA256:
3
- metadata.gz: 2f32c67cae4311edd774e972d9ede645d9c24086c4e88f6ada071ac2ff36215f
4
- data.tar.gz: add88cd3b2cec7e4f90c4ad20902ee26094d0aedcc2f3e9761b39b1a57355764
3
+ metadata.gz: '00669322920507bee3df2da47e879305c6bce383935885fd36975738ea83e50b'
4
+ data.tar.gz: 8663a57c66f81c31d9664e3c4345adea612db89ca876f8b951f3d75391861a45
5
5
  SHA512:
6
- metadata.gz: 365f9f180c5845cdebb7469c2f097fb413010298a307785852f02362187eb0b3e57cc12d1354ddb8b3868751d9e730e939a438343e49d9ab5360835b67a0c0d6
7
- data.tar.gz: 899b5a45db7b696b241a7b6d8c41505b1a296b4706c95ad3c34c4f1858df4239a13fe2288cd52cb777d1ab4b9a6fa9c003b1e6d594c4e181513bec30e0bf1d86
6
+ metadata.gz: 2eabd372f0cf3fb8b82dcebef93fbaa51fae7b6417bbf3eb2d6b2d76a00c1dc25e1bb9c0f3242cc280c55fb20c6b1bb2a9ab32e0f16468f39ae88b3974ae3439
7
+ data.tar.gz: f5e0794d88d5e57bb0aee87212959fe3944b3d124cea70871693b2ccabdf7b980ac3ac5a8ca0c3ea1ecf1160e848de3e22ff0af113dc9e2caee6c4ffb46a3b52
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Seth Chisamore (<schisamo@chef.io>)
3
- # Copyright:: Copyright (c) 2011-2020 Chef Software, Inc.
3
+ # Copyright:: Copyright (c) Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -42,13 +42,12 @@ class Chef
42
42
  short: "-p PORT",
43
43
  long: "--ssh-port PORT",
44
44
  description: "The ssh port",
45
- proc: Proc.new { |key| Chef::Config[:knife][:ssh_port] = key.strip }
45
+ proc: Proc.new { |key| key.strip }
46
46
 
47
47
  option :ssh_gateway,
48
48
  short: "-G GATEWAY",
49
49
  long: "--ssh-gateway GATEWAY",
50
- description: "The ssh gateway",
51
- proc: Proc.new { |key| Chef::Config[:knife][:ssh_gateway] = key }
50
+ description: "The ssh gateway"
52
51
 
53
52
  option :forward_agent,
54
53
  short: "-A",
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Seth Chisamore (<schisamo@chef.io>)
3
- # Copyright:: Copyright (c) 2011-2020 Chef Software, Inc.
3
+ # Copyright:: Copyright (c) Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -43,23 +43,19 @@ class Chef
43
43
 
44
44
  option :bootstrap_version,
45
45
  long: "--bootstrap-version VERSION",
46
- description: "The version of Chef to install",
47
- proc: Proc.new { |v| Chef::Config[:knife][:bootstrap_version] = v }
46
+ description: "The version of Chef to install"
48
47
 
49
48
  option :bootstrap_proxy,
50
49
  long: "--bootstrap-proxy PROXY_URL",
51
- description: "The proxy server for the node being bootstrapped",
52
- proc: Proc.new { |p| Chef::Config[:knife][:bootstrap_proxy] = p }
50
+ description: "The proxy server for the node being bootstrapped"
53
51
 
54
52
  option :bootstrap_no_proxy,
55
53
  long: "--bootstrap-no-proxy [NO_PROXY_URL|NO_PROXY_IP]",
56
- description: "Do not proxy locations for the node being bootstrapped; this option is used internally by Opscode",
57
- proc: Proc.new { |np| Chef::Config[:knife][:bootstrap_no_proxy] = np }
54
+ description: "Do not proxy locations for the node being bootstrapped; this option is used internally by Opscode"
58
55
 
59
56
  option :bootstrap_install_command,
60
57
  long: "--bootstrap-install-command COMMANDS",
61
- description: "Custom command to install chef-client",
62
- proc: Proc.new { |ic| Chef::Config[:knife][:bootstrap_install_command] = ic }
58
+ description: "Custom command to install chef-client"
63
59
 
64
60
  option :bootstrap_template,
65
61
  short: "-t TEMPLATE",
@@ -76,10 +72,11 @@ class Chef
76
72
  option :hint,
77
73
  long: "--hint HINT_NAME[=HINT_FILE]",
78
74
  description: "Specify Ohai Hint to be set on the bootstrap target. Use multiple --hint options to specify multiple hints.",
79
- proc: Proc.new { |h|
80
- Chef::Config[:knife][:hints] ||= {}
75
+ proc: Proc.new { |h, accumulator|
76
+ accumulator ||= {}
81
77
  name, path = h.split("=")
82
- Chef::Config[:knife][:hints][name] = path ? Chef::JSONCompat.parse(::File.read(path)) : {}
78
+ accumulator[name] = path ? Chef::JSONCompat.parse(::File.read(path)) : {}
79
+ accumulator
83
80
  }
84
81
 
85
82
  option :first_boot_attributes,
@@ -151,12 +148,12 @@ class Chef
151
148
  option :bootstrap_vault_item,
152
149
  long: "--bootstrap-vault-item VAULT_ITEM",
153
150
  description: 'A single vault and item to update as "vault:item"',
154
- proc: Proc.new { |i|
151
+ proc: Proc.new { |i, accumulator|
155
152
  (vault, item) = i.split(/:/)
156
- Chef::Config[:knife][:bootstrap_vault_item] ||= {}
157
- Chef::Config[:knife][:bootstrap_vault_item][vault] ||= []
158
- Chef::Config[:knife][:bootstrap_vault_item][vault].push(item)
159
- Chef::Config[:knife][:bootstrap_vault_item]
153
+ accumulator ||= {}
154
+ accumulator[vault] ||= []
155
+ accumulator[vault].push(item)
156
+ accumulator
160
157
  }
161
158
 
162
159
  option :policy_name,
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Seth Chisamore (<schisamo@chef.io>)
3
- # Copyright:: Copyright (c) 2011-2016 Chef Software, Inc.
3
+ # Copyright:: Copyright (c) Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -42,14 +42,12 @@ class Chef
42
42
  short: "-x USERNAME",
43
43
  long: "--winrm-user USERNAME",
44
44
  description: "The WinRM username",
45
- default: "Administrator",
46
- proc: Proc.new { |key| Chef::Config[:knife][:winrm_user] = key }
45
+ default: "Administrator"
47
46
 
48
47
  option :winrm_password,
49
48
  short: "-P PASSWORD",
50
49
  long: "--winrm-password PASSWORD",
51
- description: "The WinRM password",
52
- proc: Proc.new { |key| Chef::Config[:knife][:winrm_password] = key }
50
+ description: "The WinRM password"
53
51
 
54
52
  option :winrm_shell,
55
53
  long: "--winrm-shell SHELL",
@@ -61,42 +59,32 @@ class Chef
61
59
  short: "-w TRANSPORT",
62
60
  long: "--winrm-transport TRANSPORT",
63
61
  description: "The WinRM transport type. Valid choices are [ssl, plaintext]",
64
- default: "plaintext",
65
- proc: Proc.new { |transport|
66
- Chef::Config[:knife][:winrm_port] = "5986" if transport == "ssl"
67
- Chef::Config[:knife][:winrm_transport] = transport
68
- }
62
+ default: "plaintext"
69
63
 
70
64
  option :winrm_port,
71
65
  short: "-p PORT",
72
66
  long: "--winrm-port PORT",
73
- description: "The WinRM port, by default this is '5985' for 'plaintext' and '5986' for 'ssl' winrm transport",
74
- default: "5985",
75
- proc: Proc.new { |key| Chef::Config[:knife][:winrm_port] = key }
67
+ description: "The WinRM port, by default this is '5985' for 'plaintext' and '5986' for 'ssl' winrm transport"
76
68
 
77
69
  option :kerberos_keytab_file,
78
70
  short: "-T KEYTAB_FILE",
79
71
  long: "--keytab-file KEYTAB_FILE",
80
- description: "The Kerberos keytab file used for authentication",
81
- proc: Proc.new { |keytab| Chef::Config[:knife][:kerberos_keytab_file] = keytab }
72
+ description: "The Kerberos keytab file used for authentication"
82
73
 
83
74
  option :kerberos_realm,
84
75
  short: "-R KERBEROS_REALM",
85
76
  long: "--kerberos-realm KERBEROS_REALM",
86
- description: "The Kerberos realm used for authentication",
87
- proc: Proc.new { |realm| Chef::Config[:knife][:kerberos_realm] = realm }
77
+ description: "The Kerberos realm used for authentication"
88
78
 
89
79
  option :kerberos_service,
90
80
  short: "-S KERBEROS_SERVICE",
91
81
  long: "--kerberos-service KERBEROS_SERVICE",
92
- description: "The Kerberos service used for authentication",
93
- proc: Proc.new { |service| Chef::Config[:knife][:kerberos_service] = service }
82
+ description: "The Kerberos service used for authentication"
94
83
 
95
84
  option :ca_trust_file,
96
85
  short: "-f CA_TRUST_FILE",
97
86
  long: "--ca-trust-file CA_TRUST_FILE",
98
- description: "The Certificate Authority (CA) trust file used for SSL transport",
99
- proc: Proc.new { |trust| Chef::Config[:knife][:ca_trust_file] = trust }
87
+ description: "The Certificate Authority (CA) trust file used for SSL transport"
100
88
 
101
89
  option :winrm_ssl_verify_mode,
102
90
  long: "--winrm-ssl-verify-mode SSL_VERIFY_MODE",
@@ -111,8 +99,7 @@ class Chef
111
99
  option :winrm_authentication_protocol,
112
100
  long: "--winrm-authentication-protocol AUTHENTICATION_PROTOCOL",
113
101
  description: "The authentication protocol used during WinRM communication. The supported protocols are #{WINRM_AUTH_PROTOCOL_LIST.join(",")}. Default is 'negotiate'.",
114
- default: "negotiate",
115
- proc: Proc.new { |protocol| Chef::Config[:knife][:winrm_authentication_protocol] = protocol }
102
+ default: "negotiate"
116
103
 
117
104
  option :session_timeout,
118
105
  long: "--session-timeout Minutes",
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Steven Murawski (<smurawski@chef.io)
3
- # Copyright:: Copyright (c) 2015-2016 Chef Software, Inc.
3
+ # Copyright:: Copyright (c) Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -19,7 +19,6 @@
19
19
  require "chef/knife"
20
20
  require_relative "winrm_base"
21
21
  require_relative "winrm_shared_options"
22
- require_relative "knife_windows_base"
23
22
  require_relative "winrm_session"
24
23
 
25
24
  class Chef
@@ -40,10 +39,9 @@ class Chef
40
39
 
41
40
  include Chef::Knife::WinrmBase
42
41
  include Chef::Knife::WinrmSharedOptions
43
- include Chef::Knife::KnifeWindowsBase
44
42
 
45
43
  def validate_winrm_options!
46
- winrm_auth_protocol = locate_config_value(:winrm_authentication_protocol)
44
+ winrm_auth_protocol = config[:winrm_authentication_protocol]
47
45
 
48
46
  unless Chef::Knife::WinrmBase::WINRM_AUTH_PROTOCOL_LIST.include?(winrm_auth_protocol)
49
47
  ui.error "Invalid value '#{winrm_auth_protocol}' for --winrm-authentication-protocol option."
@@ -121,7 +119,7 @@ class Chef
121
119
  @session_results = []
122
120
  queue = Queue.new
123
121
  @winrm_sessions.each { |s| queue << s }
124
- num_sessions = locate_config_value(:concurrency)
122
+ num_sessions = config[:concurrency]
125
123
  num_targets = @winrm_sessions.length
126
124
  num_sessions = (num_sessions.nil? || num_sessions == 0) ? num_targets : [num_sessions, num_targets].min
127
125
 
@@ -147,7 +145,7 @@ class Chef
147
145
  if authorization_error?(e)
148
146
  unless config[:suppress_auth_failure]
149
147
  # Display errors if the caller hasn't opted to retry
150
- ui.error "Failed to authenticate to #{s.host} as #{locate_config_value(:winrm_user)}"
148
+ ui.error "Failed to authenticate to #{s.host} as #{config[:winrm_user]}"
151
149
  ui.info "Response: #{e.message}"
152
150
  ui.info get_failed_authentication_hint
153
151
  raise e
@@ -203,33 +201,35 @@ class Chef
203
201
  end
204
202
 
205
203
  def resolve_session_options
204
+ config[:winrm_port] ||= ( config[:winrm_transport] == "ssl" ) ? "5986" : "5985"
205
+
206
206
  @session_opts = {
207
207
  user: resolve_winrm_user,
208
- password: locate_config_value(:winrm_password),
209
- port: locate_config_value(:winrm_port),
208
+ password: config[:winrm_password],
209
+ port: config[:winrm_port],
210
210
  operation_timeout: resolve_winrm_session_timeout,
211
211
  basic_auth_only: resolve_winrm_basic_auth,
212
212
  disable_sspi: resolve_winrm_disable_sspi,
213
213
  transport: resolve_winrm_transport,
214
214
  no_ssl_peer_verification: resolve_no_ssl_peer_verification,
215
215
  ssl_peer_fingerprint: resolve_ssl_peer_fingerprint,
216
- shell: locate_config_value(:winrm_shell),
217
- codepage: locate_config_value(:winrm_codepage),
216
+ shell: config[:winrm_shell],
217
+ codepage: config[:winrm_codepage],
218
218
  }
219
219
 
220
220
  if @session_opts[:user] && (not @session_opts[:password])
221
- @session_opts[:password] = Chef::Config[:knife][:winrm_password] = config[:winrm_password] = get_password
221
+ @session_opts[:password] = config[:winrm_password] = get_password
222
222
  end
223
223
 
224
224
  if @session_opts[:transport] == :kerberos
225
225
  @session_opts.merge!(resolve_winrm_kerberos_options)
226
226
  end
227
227
 
228
- @session_opts[:ca_trust_path] = locate_config_value(:ca_trust_file) if locate_config_value(:ca_trust_file)
228
+ @session_opts[:ca_trust_path] = config[:ca_trust_file] if config[:ca_trust_file]
229
229
  end
230
230
 
231
231
  def resolve_winrm_user
232
- user = locate_config_value(:winrm_user)
232
+ user = config[:winrm_user]
233
233
 
234
234
  # Prefixing with '.\' when using negotiate
235
235
  # to auth user against local machine domain
@@ -245,23 +245,23 @@ class Chef
245
245
 
246
246
  def resolve_winrm_session_timeout
247
247
  # 30 min (Default) OperationTimeout for long bootstraps fix for KNIFE_WINDOWS-8
248
- locate_config_value(:session_timeout).to_i * 60 if locate_config_value(:session_timeout)
248
+ config[:session_timeout].to_i * 60 if config[:session_timeout]
249
249
  end
250
250
 
251
251
  def resolve_winrm_basic_auth
252
- locate_config_value(:winrm_authentication_protocol) == "basic"
252
+ config[:winrm_authentication_protocol] == "basic"
253
253
  end
254
254
 
255
255
  def resolve_winrm_kerberos_options
256
256
  kerberos_opts = {}
257
- kerberos_opts[:keytab] = locate_config_value(:kerberos_keytab_file) if locate_config_value(:kerberos_keytab_file)
258
- kerberos_opts[:realm] = locate_config_value(:kerberos_realm) if locate_config_value(:kerberos_realm)
259
- kerberos_opts[:service] = locate_config_value(:kerberos_service) if locate_config_value(:kerberos_service)
257
+ kerberos_opts[:keytab] = config[:kerberos_keytab_file] if config[:kerberos_keytab_file]
258
+ kerberos_opts[:realm] = config[:kerberos_realm] if config[:kerberos_realm]
259
+ kerberos_opts[:service] = config[:kerberos_service] if config[:kerberos_service]
260
260
  kerberos_opts
261
261
  end
262
262
 
263
263
  def resolve_winrm_transport
264
- transport = locate_config_value(:winrm_transport).to_sym
264
+ transport = config[:winrm_transport].to_sym
265
265
  if config.any? { |k, v| k.to_s =~ /kerberos/ && !v.nil? }
266
266
  transport = :kerberos
267
267
  elsif transport != :ssl && negotiate_auth?
@@ -272,11 +272,11 @@ class Chef
272
272
  end
273
273
 
274
274
  def resolve_no_ssl_peer_verification
275
- locate_config_value(:ca_trust_file).nil? && config[:winrm_ssl_verify_mode] == :verify_none && resolve_winrm_transport == :ssl
275
+ config[:ca_trust_file].nil? && config[:winrm_ssl_verify_mode] == :verify_none && resolve_winrm_transport == :ssl
276
276
  end
277
277
 
278
278
  def resolve_ssl_peer_fingerprint
279
- locate_config_value(:ssl_peer_fingerprint)
279
+ config[:ssl_peer_fingerprint]
280
280
  end
281
281
 
282
282
  def resolve_winrm_disable_sspi
@@ -288,7 +288,7 @@ class Chef
288
288
  end
289
289
 
290
290
  def negotiate_auth?
291
- locate_config_value(:winrm_authentication_protocol) == "negotiate"
291
+ config[:winrm_authentication_protocol] == "negotiate"
292
292
  end
293
293
 
294
294
  def warn_no_ssl_peer_verification
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Seth Chisamore (<schisamo@chef.io>)
3
- # Copyright:: Copyright (c) 2011-2016 Chef Software, Inc.
3
+ # Copyright:: Copyright (c) Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -18,14 +18,12 @@
18
18
 
19
19
  require "chef/knife"
20
20
  require_relative "helpers/winrm_knife_base" # WinrmCommandSharedFunctions
21
- require_relative "helpers/knife_windows_base"
22
21
 
23
22
  class Chef
24
23
  class Knife
25
24
  class Winrm < Knife
26
25
 
27
26
  include Chef::Knife::WinrmCommandSharedFunctions
28
- include Chef::Knife::KnifeWindowsBase
29
27
 
30
28
  deps do
31
29
  require_relative "windows_cert_generate"
@@ -1,6 +1,6 @@
1
1
  module Knife
2
2
  module Windows
3
- VERSION = "3.0.17".freeze
3
+ VERSION = "4.0.0".freeze
4
4
  MAJOR, MINOR, TINY = VERSION.split(".")
5
5
  end
6
6
  end
@@ -1,6 +1,6 @@
1
1
 
2
2
  # Author:: Adam Edwards (<adamed@chef.io>)
3
- # Copyright:: Copyright (c) 2012-2020 Chef Software, Inc.
3
+ # Copyright:: Copyright (c) Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,7 +22,22 @@ def sample_data(file_name)
22
22
  File.read(file)
23
23
  end
24
24
 
25
+ class UnexpectedSystemExit < RuntimeError
26
+ def self.from(system_exit)
27
+ new(system_exit.message).tap { |e| e.set_backtrace(system_exit.backtrace) }
28
+ end
29
+ end
30
+
25
31
  RSpec.configure do |config|
32
+ config.raise_on_warning = true
33
+ config.raise_errors_for_deprecations!
26
34
  config.run_all_when_everything_filtered = true
27
35
  config.filter_run focus: true
36
+ config.around(:example) do |ex|
37
+ begin
38
+ ex.run
39
+ rescue SystemExit => e
40
+ raise UnexpectedSystemExit.from(e)
41
+ end
42
+ end
28
43
  end
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Bryan McLellan <btm@chef.io>
3
- # Copyright:: Copyright (c) 2013-2016 Chef Software, Inc.
3
+ # Copyright:: Copyright (c) Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -250,7 +250,7 @@ describe Chef::Knife::Winrm do
250
250
  end
251
251
 
252
252
  it "sets the user specified winrm port" do
253
- Chef::Config[:knife] = { winrm_port: "5988" }
253
+ winrm_command_http.config[:knife] = { winrm_port: "5988" }
254
254
  expect(Chef::Knife::WinrmSession).to receive(:new).with(hash_including(transport: :plaintext)).and_call_original
255
255
  expect(WinRM::Connection).to receive(:new).with(hash_including(transport: :plaintext)).and_return(winrm_connection)
256
256
  winrm_command_http.configure_chef
@@ -269,7 +269,7 @@ describe Chef::Knife::Winrm do
269
269
  let(:winrm_command_https) { Chef::Knife::Winrm.new(["-m", "localhost", "-x", "testuser", "-P", "testpassword", "--winrm-transport", "ssl", "echo helloworld"]) }
270
270
 
271
271
  it "uses the https uri scheme if the ssl transport is specified" do
272
- Chef::Config[:knife] = { winrm_transport: "ssl" }
272
+ winrm_command_http.config[:winrm_transport] = "ssl"
273
273
  expect(Chef::Knife::WinrmSession).to receive(:new).with(hash_including(transport: :ssl)).and_call_original
274
274
  expect(WinRM::Connection).to receive(:new).with(hash_including(endpoint: "https://localhost:5986/wsman")).and_return(winrm_connection)
275
275
  winrm_command_https.configure_chef
@@ -277,7 +277,7 @@ describe Chef::Knife::Winrm do
277
277
  end
278
278
 
279
279
  it "uses the winrm port '5986' by default for ssl transport" do
280
- Chef::Config[:knife] = { winrm_transport: "ssl" }
280
+ winrm_command_http.config[:winrm_transport] = "ssl"
281
281
  expect(Chef::Knife::WinrmSession).to receive(:new).with(hash_including(transport: :ssl)).and_call_original
282
282
  expect(WinRM::Connection).to receive(:new).with(hash_including(endpoint: "https://localhost:5986/wsman")).and_return(winrm_connection)
283
283
  winrm_command_https.configure_chef
@@ -361,8 +361,8 @@ describe Chef::Knife::Winrm do
361
361
 
362
362
  before(:each) do
363
363
  allow(Chef::Knife::WinrmSession).to receive(:new).and_return(session)
364
- Chef::Config[:knife] = { winrm_transport: "plaintext" }
365
364
  @winrm = Chef::Knife::Winrm.new(["-m", "localhost", "-x", "testuser", "-P", "testpassword", "--winrm-authentication-protocol", "basic", "echo helloworld"])
365
+ @winrm.config[:winrm_transport] = "plaintext"
366
366
  end
367
367
 
368
368
  it "returns with 0 if the command succeeds" do
@@ -375,7 +375,6 @@ describe Chef::Knife::Winrm do
375
375
  command_status = 510
376
376
 
377
377
  @winrm.config[:returns] = "0"
378
- Chef::Config[:knife][:returns] = [0]
379
378
 
380
379
  allow(@winrm).to receive(:relay_winrm_command)
381
380
  allow(@winrm.ui).to receive(:error)
@@ -386,7 +385,6 @@ describe Chef::Knife::Winrm do
386
385
  it "exits with non-zero status if the command fails and returns config is set to 0" do
387
386
  command_status = 1
388
387
  @winrm.config[:returns] = "0,53"
389
- Chef::Config[:knife][:returns] = [0, 53]
390
388
  allow(@winrm).to receive(:relay_winrm_command).and_return(command_status)
391
389
  allow(@winrm.ui).to receive(:error)
392
390
  allow(session).to receive(:exit_code).and_return(command_status)
@@ -395,7 +393,7 @@ describe Chef::Knife::Winrm do
395
393
 
396
394
  it "exits with a zero status if the command returns an expected non-zero status" do
397
395
  command_status = 53
398
- Chef::Config[:knife][:returns] = [0, 53]
396
+ @winrm.config[:returns] = "0,53"
399
397
  allow(@winrm).to receive(:relay_winrm_command).and_return(command_status)
400
398
  allow(session).to receive(:exit_codes).and_return({ "thishost" => command_status })
401
399
  exit_code = @winrm.run
@@ -448,7 +446,7 @@ describe Chef::Knife::Winrm do
448
446
 
449
447
  context "when winrm_authentication_protocol specified" do
450
448
  before do
451
- Chef::Config[:knife] = { winrm_transport: "plaintext" }
449
+ @winrm.config[:winrm_transport] = "plaintext"
452
450
  allow(@winrm).to receive(:relay_winrm_command).and_return(0)
453
451
  end
454
452
 
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Steven Murawski (<smurawski@chef.io>)
3
- # Copyright:: Copyright (c) 2015-2016 Chef Software, Inc.
3
+ # Copyright:: Copyright (c) Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -37,6 +37,7 @@ describe Chef::Knife::WsmanTest do
37
37
  allow(Chef::HTTP::DefaultSSLPolicy).to receive(:new)
38
38
  .with(http_client_mock.ssl_config)
39
39
  .and_return(ssl_policy)
40
+ subject.merge_configs
40
41
  end
41
42
 
42
43
  subject { Chef::Knife::WsmanTest.new(["-m", "localhost"]) }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-windows
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.17
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seth Chisamore
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-17 00:00:00.000000000 Z
11
+ date: 2020-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chef
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '15.0'
19
+ version: '15.11'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '15.0'
26
+ version: '15.11'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: winrm
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -78,7 +78,6 @@ files:
78
78
  - lib/chef/knife/bootstrap_windows_ssh.rb
79
79
  - lib/chef/knife/bootstrap_windows_winrm.rb
80
80
  - lib/chef/knife/helpers/bootstrap_windows_base.rb
81
- - lib/chef/knife/helpers/knife_windows_base.rb
82
81
  - lib/chef/knife/helpers/winrm_base.rb
83
82
  - lib/chef/knife/helpers/winrm_knife_base.rb
84
83
  - lib/chef/knife/helpers/winrm_session.rb
@@ -123,7 +122,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
123
122
  requirements:
124
123
  - - ">="
125
124
  - !ruby/object:Gem::Version
126
- version: 2.5.0
125
+ version: 2.6.0
127
126
  required_rubygems_version: !ruby/object:Gem::Requirement
128
127
  requirements:
129
128
  - - ">="
@@ -1,34 +0,0 @@
1
- #
2
- # Author:: Aliasgar Batterywala (<aliasgar.batterywala@clogeny.com>)
3
- # Copyright:: Copyright (c) 2015-2016 Chef Software, Inc.
4
- # License:: Apache License, Version 2.0
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
-
19
- require "chef/knife"
20
-
21
- class Chef
22
- class Knife
23
- module KnifeWindowsBase
24
-
25
- def locate_config_value(key)
26
- key = key.to_sym
27
- value = config[key] || Chef::Config[:knife][key] || default_config[key]
28
- Chef::Log.debug("Looking for key #{key} and found value #{value}")
29
- value
30
- end
31
-
32
- end
33
- end
34
- end