knife 17.10.163 → 18.0.185

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: 122939bb10583993025292a2a2dacac8e8645a996d81cd67bcc8d8b023829a2f
4
- data.tar.gz: 06c1b3f263180e5d6d52e0b67aef2566427cfea7332a060bdbc352478a9b129a
3
+ metadata.gz: e742e28f2ceaa387aad09ef23468206ebaadc2b50579477bda84bd1c9f57d6b1
4
+ data.tar.gz: c604ef8fb1c951e1d21862803459b35b3ca86015531f8797985887f7bd879549
5
5
  SHA512:
6
- metadata.gz: 4aa0df4504ef89c5fe2ff317b37f3c4c6cc3392177ee65d45f8a762df68ad2c6635497e7cb6e9787a47460eaa320156700ba9924118399b85991be03752d9e0b
7
- data.tar.gz: 4d0fd03306288eff7591cf3485e223b9eb54a8ab0228a765c688ad0b90378d68d77eb358148120f04facc78a34b89ced2794405059d0f0fa6dc740b1dfc94f5b
6
+ metadata.gz: eabe1e671b1505b7f8efa5eb0fe9e3773dacdc43fe21b23ad38a6d3a080bb9daa71c7a48902f1047c7102a1a82afb5aedc16a90f3c5f97eb0d8d9472cbb94e09
7
+ data.tar.gz: d412cabefacc6c5e43d5bf3970d1ccc16bb002a68390117460f25cb98c0e0a61e147c1277139a8ad4777f5a0a4314476e39fb65207b4e8343d9c3d8aee099328
data/Gemfile CHANGED
@@ -2,10 +2,12 @@ source "https://rubygems.org"
2
2
 
3
3
  gem "knife", path: "."
4
4
 
5
+ # proxifier gem is busted on ruby 3.1 and seems abandoned so use git fork of gem
6
+ gem "proxifier", git: "https://github.com/chef/ruby-proxifier", branch: "lcg/ruby-3"
7
+
5
8
  group(:development, :test) do
6
9
  gem "cheffish", ">= 14" # testing only , but why didn't this need to explicit in chef?
7
- gem "webmock"
8
- gem "crack", "< 0.4.6" # due to https://github.com/jnunemaker/crack/pull/75
10
+ gem "webmock" # testing only
9
11
  gem "rake"
10
12
  gem "rspec"
11
13
  gem "chef-bin", path: "../chef-bin"
@@ -21,7 +23,7 @@ group(:chefstyle) do
21
23
  gem "chefstyle", git: "https://github.com/chef/chefstyle.git", branch: "main"
22
24
  end
23
25
 
24
- gem "ohai", git: "https://github.com/chef/ohai.git", branch: "17-stable"
26
+ gem "ohai", git: "https://github.com/chef/ohai.git", branch: "main"
25
27
  gem "chef", path: ".."
26
28
  gem "chef-utils", path: File.expand_path("../chef-utils", __dir__) if File.exist?(File.expand_path("../chef-utils", __dir__))
27
29
  gem "chef-config", path: File.expand_path("../chef-config", __dir__) if File.exist?(File.expand_path("../chef-config", __dir__))
data/knife.gemspec CHANGED
@@ -13,18 +13,18 @@ Gem::Specification.new do |s|
13
13
  s.email = "adam@chef.io" # These seem a bit out of date, and this address probably doesn't go anywhere anymore?
14
14
  s.homepage = "https://www.chef.io"
15
15
 
16
- s.required_ruby_version = ">= 3.0.0", "< 3.1"
16
+ s.required_ruby_version = ">= 3.1.0"
17
17
 
18
- s.add_dependency "chef-config", ">= #{Chef::Knife::VERSION.split(".").first}", "< 18.0"
19
- s.add_dependency "chef-utils", ">= #{Chef::Knife::VERSION.split(".").first}", "< 18.0"
20
- s.add_dependency "chef", ">= #{Chef::Knife::VERSION.split(".").first}", "< 18.0"
18
+ s.add_dependency "chef-config", ">= #{Chef::Knife::VERSION.split(".").first}"
19
+ s.add_dependency "chef-utils", ">= #{Chef::Knife::VERSION.split(".").first}"
20
+ s.add_dependency "chef", ">= #{Chef::Knife::VERSION.split(".").first}"
21
21
  s.add_dependency "train-core", "~> 3.10" # 3.2.28 fixes sudo prompts. See https://github.com/chef/chef/pull/9635
22
22
  s.add_dependency "train-winrm", ">= 0.2.5"
23
23
  s.add_dependency "license-acceptance", ">= 1.0.5", "< 3"
24
24
  s.add_dependency "mixlib-cli", ">= 2.1.1", "< 3.0"
25
25
  s.add_dependency "mixlib-archive", ">= 0.4", "< 2.0"
26
- s.add_dependency "ohai", "~> 17.9"
27
- s.add_dependency "ffi", "~> 1.15.5" # 1.14 versions are broken on i386 windows
26
+ s.add_dependency "ohai", "~> 18.0"
27
+ s.add_dependency "ffi", ">= 1.15" # 1.14 versions are broken on i386 windows
28
28
  s.add_dependency "ffi-yajl", "~> 2.2"
29
29
  s.add_dependency "net-ssh", ">= 5.1", "< 8"
30
30
  s.add_dependency "net-ssh-multi", "~> 1.2", ">= 1.2.1"
@@ -39,11 +39,6 @@ Gem::Specification.new do |s|
39
39
  s.add_dependency "pastel" # knife ui.color
40
40
  s.add_dependency "erubis", "~> 2.7"
41
41
  s.add_dependency "chef-vault" # knife vault
42
- if RUBY_VERSION.match?("3.0.0")
43
- # Ruby 3.0.0 on Fedora specifically makes trouble
44
- s.add_dependency "uri", "= 0.10.1"
45
- end
46
- s.add_dependency "proxifier2", "~> 1.1"
47
42
 
48
43
  s.add_development_dependency "chefstyle"
49
44
 
@@ -32,7 +32,7 @@ class Chef
32
32
  include DataBagSecretOptions
33
33
  include LicenseAcceptance::CLIFlags::MixlibCLI
34
34
 
35
- TRANSPORTS_BLACKLIST ||= %w{train-core train-aws train-azure train-habitat train-rest}.freeze
35
+ SUPPORTED_CONNECTION_PROTOCOLS ||= %w{ssh winrm}.freeze
36
36
  WINRM_AUTH_PROTOCOL_LIST ||= %w{plaintext kerberos ssl negotiate}.freeze
37
37
 
38
38
  # Common connectivity options
@@ -54,7 +54,8 @@ class Chef
54
54
  option :connection_protocol,
55
55
  short: "-o PROTOCOL",
56
56
  long: "--connection-protocol PROTOCOL",
57
- description: "The protocol to use to connect to the target node. Examples: ssh, winrm"
57
+ description: "The protocol to use to connect to the target node.",
58
+ in: SUPPORTED_CONNECTION_PROTOCOLS
58
59
 
59
60
  option :max_wait,
60
61
  short: "-W SECONDS",
@@ -809,11 +810,11 @@ class Chef
809
810
  exit 1
810
811
  end
811
812
 
812
- unless supported_connection_protocols.include?(connection_protocol)
813
+ unless SUPPORTED_CONNECTION_PROTOCOLS.include?(connection_protocol)
813
814
  ui.error <<~EOM
814
815
  Unsupported protocol '#{connection_protocol}'.
815
816
 
816
- Supported protocols are: #{supported_connection_protocols.join(" ")}
817
+ Supported protocols are: #{SUPPORTED_CONNECTION_PROTOCOLS.join(" ")}
817
818
  EOM
818
819
  exit 1
819
820
  end
@@ -972,7 +973,7 @@ class Chef
972
973
  # for this. We will also set keys_only to false only if there are keys
973
974
  # and no password.
974
975
  # If both are present, train(via net/ssh) will prefer keys, falling back to password.
975
- # Reference: https://github.com/chef/chef/blob/master/lib/chef/knife/ssh.rb#L272
976
+ # Reference: https://github.com/chef/chef/blob/main/lib/chef/knife/ssh.rb#L272
976
977
  opts[:keys_only] = config.key?(:connection_password) == false
977
978
  else
978
979
  opts[:key_files] = []
@@ -1187,24 +1188,6 @@ class Chef
1187
1188
 
1188
1189
  connection&.connection&.transport_options&.merge! opts
1189
1190
  end
1190
-
1191
- # List Train transports available (but not loaded) on system.
1192
- #
1193
- # Will filter out train-core, API transports, and other incompatible ones.
1194
- #
1195
- # @return [Array] transport_names which can be used for command execution
1196
- def transports_available
1197
- train_gems = Gem::Specification.select { |spec| spec.name.start_with? "train-" }
1198
- train_gems.delete_if { |spec| TRANSPORTS_BLACKLIST.include? spec.name }
1199
- train_gems.map { |spec| spec.name.delete_prefix "train-" }
1200
- end
1201
-
1202
- # Return all supported connection types, classical and Train-based
1203
- #
1204
- # @return [Array] connection types supported
1205
- def supported_connection_protocols
1206
- %w{ssh winrm} | transports_available
1207
- end
1208
1191
  end
1209
1192
  end
1210
1193
  end
@@ -233,7 +233,7 @@ class Chef
233
233
  tf.sync = true
234
234
  tf.puts output
235
235
  tf.close
236
- raise "Please set EDITOR environment variable. See https://docs.chef.io/knife_setup/ for details." unless system("#{config[:editor]} #{tf.path}")
236
+ raise "Please set EDITOR environment variable. See https://docs.chef.io/workstation/knife_setup/#setting-your-text-editor for details." unless system("#{config[:editor]} #{tf.path}")
237
237
 
238
238
  output = IO.read(tf.path)
239
239
  end
@@ -74,7 +74,7 @@ class Chef
74
74
 
75
75
  # Let the user edit the temporary file
76
76
  unless system("#{config[:editor]} #{file.path}")
77
- raise "Please set EDITOR environment variable. See https://docs.chef.io/knife_setup/ for details."
77
+ raise "Please set EDITOR environment variable. See https://docs.chef.io/workstation/knife_setup/#setting-your-text-editor for details."
78
78
  end
79
79
 
80
80
  result_text = IO.read(file.path)
@@ -156,7 +156,7 @@ class Chef
156
156
 
157
157
  def convert_path(upstream_file)
158
158
  # converts a Windows path (C:\foo) to a mingw path (/c/foo)
159
- if ENV["MSYSTEM"] == "MINGW32"
159
+ if ENV["MSYSTEM"] == ( "MINGW32" || "UCRT64" )
160
160
  upstream_file.sub(/^([[:alpha:]]):/, '/\1')
161
161
  else
162
162
  Shellwords.escape upstream_file
@@ -81,7 +81,7 @@ class Chef
81
81
  f.sync = true
82
82
  f.puts output
83
83
  f.close
84
- raise "Please set EDITOR environment variable. See https://docs.chef.io/knife_setup/ for details." unless system("#{config[:editor]} #{f.path}")
84
+ raise "Please set EDITOR environment variable. See https://docs.chef.io/workstation/knife_setup/#setting-your-text-editor for details." unless system("#{config[:editor]} #{f.path}")
85
85
 
86
86
  edited_user = JSON.parse(IO.read(f.path))
87
87
  end
@@ -17,7 +17,7 @@
17
17
  class Chef
18
18
  class Knife
19
19
  KNIFE_ROOT = File.expand_path("../..", __dir__)
20
- VERSION = "17.10.163".freeze
20
+ VERSION = "18.0.185".freeze
21
21
  end
22
22
  end
23
23
 
@@ -127,6 +127,10 @@ def freebsd?
127
127
  RUBY_PLATFORM.include?("freebsd")
128
128
  end
129
129
 
130
+ def freebsd_gte_12_3?
131
+ RUBY_PLATFORM.include?("freebsd") && !!(ohai[:platform_version].to_f >= 12.3)
132
+ end
133
+
130
134
  def intel_64bit?
131
135
  !!(ohai[:kernel][:machine] == "x86_64")
132
136
  end
@@ -682,7 +682,7 @@ describe Chef::Knife::Bootstrap do
682
682
 
683
683
  context "and the protocol is supported" do
684
684
 
685
- %w{winrm ssh}.each do |proto|
685
+ Chef::Knife::Bootstrap::SUPPORTED_CONNECTION_PROTOCOLS.each do |proto|
686
686
  let(:connection_protocol) { proto }
687
687
  it "returns true for #{proto}" do
688
688
  expect(knife.validate_protocol!).to eq true
@@ -697,45 +697,6 @@ describe Chef::Knife::Bootstrap do
697
697
  expect { knife.validate_protocol! }.to raise_error SystemExit
698
698
  end
699
699
  end
700
-
701
- context "when additional Train transports are present" do
702
- before do
703
- Gem::Specification.new do |spec|
704
- spec.name = "train-rfc2549"
705
- spec.version = "0.0.1"
706
- spec.summary = "Train transport to use IPoAC"
707
- end.activate
708
-
709
- Gem.refresh
710
- end
711
-
712
- context "and their usage is supported" do
713
- let(:connection_protocol) { "rfc2549" }
714
- it "accepts the transport as protocol" do
715
- # While the Gem mocking above will work in native RSpec, it will
716
- # fail when executed as part of the test suite via Bundler.
717
- #
718
- # Reason for this is, that Bundler effectively replaces the whole
719
- # gem loading architecture. Mocking the Gem inside of Bundler will
720
- # have to reach deep into its internal implementation and make
721
- # the test tighly-coupled and brittle.
722
- #
723
- # During the discussion on PR 13534, it was decided to skip the
724
- # test as a result and add this explanation for future reference.
725
-
726
- # expect(knife.validate_protocol!).to eq true
727
- skip
728
- end
729
- end
730
-
731
- context "and invalid proctocols are still refused" do
732
- let(:connection_protocol) { "rfc6216" }
733
- it "accepts the transport as protocol" do
734
- expect(knife.ui).to receive(:error).with(/Unsupported protocol '#{connection_protocol}'/)
735
- expect { knife.validate_protocol! }.to raise_error SystemExit
736
- end
737
- end
738
- end
739
700
  end
740
701
 
741
702
  describe "#validate_policy_options!" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife
3
3
  version: !ruby/object:Gem::Version
4
- version: 17.10.163
4
+ version: 18.0.185
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Jacob
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-22 00:00:00.000000000 Z
11
+ date: 2022-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chef-config
@@ -16,60 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '17'
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '18.0'
19
+ version: '18'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: '17'
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '18.0'
26
+ version: '18'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: chef-utils
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
31
  - - ">="
38
32
  - !ruby/object:Gem::Version
39
- version: '17'
40
- - - "<"
41
- - !ruby/object:Gem::Version
42
- version: '18.0'
33
+ version: '18'
43
34
  type: :runtime
44
35
  prerelease: false
45
36
  version_requirements: !ruby/object:Gem::Requirement
46
37
  requirements:
47
38
  - - ">="
48
39
  - !ruby/object:Gem::Version
49
- version: '17'
50
- - - "<"
51
- - !ruby/object:Gem::Version
52
- version: '18.0'
40
+ version: '18'
53
41
  - !ruby/object:Gem::Dependency
54
42
  name: chef
55
43
  requirement: !ruby/object:Gem::Requirement
56
44
  requirements:
57
45
  - - ">="
58
46
  - !ruby/object:Gem::Version
59
- version: '17'
60
- - - "<"
61
- - !ruby/object:Gem::Version
62
- version: '18.0'
47
+ version: '18'
63
48
  type: :runtime
64
49
  prerelease: false
65
50
  version_requirements: !ruby/object:Gem::Requirement
66
51
  requirements:
67
52
  - - ">="
68
53
  - !ruby/object:Gem::Version
69
- version: '17'
70
- - - "<"
71
- - !ruby/object:Gem::Version
72
- version: '18.0'
54
+ version: '18'
73
55
  - !ruby/object:Gem::Dependency
74
56
  name: train-core
75
57
  requirement: !ruby/object:Gem::Requirement
@@ -164,28 +146,28 @@ dependencies:
164
146
  requirements:
165
147
  - - "~>"
166
148
  - !ruby/object:Gem::Version
167
- version: '17.9'
149
+ version: '18.0'
168
150
  type: :runtime
169
151
  prerelease: false
170
152
  version_requirements: !ruby/object:Gem::Requirement
171
153
  requirements:
172
154
  - - "~>"
173
155
  - !ruby/object:Gem::Version
174
- version: '17.9'
156
+ version: '18.0'
175
157
  - !ruby/object:Gem::Dependency
176
158
  name: ffi
177
159
  requirement: !ruby/object:Gem::Requirement
178
160
  requirements:
179
- - - "~>"
161
+ - - ">="
180
162
  - !ruby/object:Gem::Version
181
- version: 1.15.5
163
+ version: '1.15'
182
164
  type: :runtime
183
165
  prerelease: false
184
166
  version_requirements: !ruby/object:Gem::Requirement
185
167
  requirements:
186
- - - "~>"
168
+ - - ">="
187
169
  - !ruby/object:Gem::Version
188
- version: 1.15.5
170
+ version: '1.15'
189
171
  - !ruby/object:Gem::Dependency
190
172
  name: ffi-yajl
191
173
  requirement: !ruby/object:Gem::Requirement
@@ -358,20 +340,6 @@ dependencies:
358
340
  - - ">="
359
341
  - !ruby/object:Gem::Version
360
342
  version: '0'
361
- - !ruby/object:Gem::Dependency
362
- name: proxifier2
363
- requirement: !ruby/object:Gem::Requirement
364
- requirements:
365
- - - "~>"
366
- - !ruby/object:Gem::Version
367
- version: '1.1'
368
- type: :runtime
369
- prerelease: false
370
- version_requirements: !ruby/object:Gem::Requirement
371
- requirements:
372
- - - "~>"
373
- - !ruby/object:Gem::Version
374
- version: '1.1'
375
343
  - !ruby/object:Gem::Dependency
376
344
  name: chefstyle
377
345
  requirement: !ruby/object:Gem::Requirement
@@ -1147,7 +1115,7 @@ metadata:
1147
1115
  homepage_uri: https://www.chef.io
1148
1116
  mailing_list_uri: https://discourse.chef.io/
1149
1117
  source_code_uri: https://github.com/chef/chef/
1150
- post_install_message:
1118
+ post_install_message:
1151
1119
  rdoc_options: []
1152
1120
  require_paths:
1153
1121
  - lib
@@ -1155,18 +1123,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
1155
1123
  requirements:
1156
1124
  - - ">="
1157
1125
  - !ruby/object:Gem::Version
1158
- version: 3.0.0
1159
- - - "<"
1160
- - !ruby/object:Gem::Version
1161
- version: '3.1'
1126
+ version: 3.1.0
1162
1127
  required_rubygems_version: !ruby/object:Gem::Requirement
1163
1128
  requirements:
1164
1129
  - - ">="
1165
1130
  - !ruby/object:Gem::Version
1166
1131
  version: '0'
1167
1132
  requirements: []
1168
- rubygems_version: 3.2.32
1169
- signing_key:
1133
+ rubygems_version: 3.3.21
1134
+ signing_key:
1170
1135
  specification_version: 4
1171
1136
  summary: The knife CLI for Chef Infra.
1172
1137
  test_files: []