knife 17.10.0 → 17.10.95
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 +4 -4
- data/knife.gemspec +6 -6
- data/lib/chef/knife/configure.rb +1 -1
- data/lib/chef/knife/user_create.rb +5 -3
- data/lib/chef/knife/version.rb +1 -1
- data/spec/unit/knife/user_create_spec.rb +34 -8
- metadata +28 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c1240aeb5f2cdbbe47e63193fa4f09a1a45d621fcc37df7856a97c0e7caaf61f
|
4
|
+
data.tar.gz: e9beadd7551793fcad4debe8012f585286e2e1ade6cade8b53707db9d71698fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6ec11059ed2ef131110ae3a28b4ac0d31baee181a7ddcb860b38edd487e6189eda7b6d1c8a54ea3147ea6171879b8793794728c40f76313885aca4d73a5f6fa
|
7
|
+
data.tar.gz: 0f1c645490069e9fb200a130ca9862e2ea7f0a0b461dab591f558d0d7ccd782d34e002ad8b338fa5d0a68141e7053df0280d6560d8955cbf67fc02847843078e
|
data/knife.gemspec
CHANGED
@@ -13,12 +13,12 @@ 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 = ">= 2.7.0"
|
16
|
+
s.required_ruby_version = ">= 2.7.0", "< 3.1"
|
17
17
|
|
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
|
-
s.add_dependency "train-core", "~> 3.
|
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"
|
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"
|
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
s.add_dependency "ohai", "~> 17.0"
|
27
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
|
-
s.add_dependency "net-ssh", ">= 5.1", "<
|
29
|
+
s.add_dependency "net-ssh", ">= 5.1", "< 8"
|
30
30
|
s.add_dependency "net-ssh-multi", "~> 1.2", ">= 1.2.1"
|
31
31
|
s.add_dependency "bcrypt_pbkdf", "~> 1.1" # ed25519 ssh key support
|
32
32
|
# disabling this until we get get it to compile on RHEL 7
|
data/lib/chef/knife/configure.rb
CHANGED
@@ -138,7 +138,7 @@ class Chef
|
|
138
138
|
|
139
139
|
# @return [String] the path to the user's .chef directory
|
140
140
|
def chef_config_path
|
141
|
-
@chef_config_path ||= ChefConfig::PathHelper.home(
|
141
|
+
@chef_config_path ||= ChefConfig::PathHelper.home(ChefUtils::Dist::Infra::USER_CONF_DIR)
|
142
142
|
end
|
143
143
|
|
144
144
|
# @return [String] the full path to the config file (credential file)
|
@@ -128,6 +128,7 @@ class Chef
|
|
128
128
|
display_name: "#{user.first_name} #{user.last_name}",
|
129
129
|
email: user.email,
|
130
130
|
password: password,
|
131
|
+
create_key: user.create_key,
|
131
132
|
}
|
132
133
|
else
|
133
134
|
user_hash = {
|
@@ -137,6 +138,7 @@ class Chef
|
|
137
138
|
display_name: user.display_name,
|
138
139
|
email: user.email,
|
139
140
|
password: password,
|
141
|
+
create_key: user.create_key,
|
140
142
|
}
|
141
143
|
end
|
142
144
|
|
@@ -159,13 +161,13 @@ class Chef
|
|
159
161
|
end
|
160
162
|
|
161
163
|
ui.info("Created #{user.username}")
|
162
|
-
if final_user["private_key"]
|
164
|
+
if final_user["chef_key"] && final_user["chef_key"]["private_key"]
|
163
165
|
if config[:file]
|
164
166
|
File.open(config[:file], "w") do |f|
|
165
|
-
f.print(final_user["private_key"])
|
167
|
+
f.print(final_user["chef_key"]["private_key"])
|
166
168
|
end
|
167
169
|
else
|
168
|
-
ui.msg final_user["private_key"]
|
170
|
+
ui.msg final_user["chef_key"]["private_key"]
|
169
171
|
end
|
170
172
|
end
|
171
173
|
end
|
data/lib/chef/knife/version.rb
CHANGED
@@ -16,7 +16,6 @@
|
|
16
16
|
# See the License for the specific language governing permissions and
|
17
17
|
# limitations under the License.
|
18
18
|
#
|
19
|
-
|
20
19
|
require "knife_spec_helper"
|
21
20
|
|
22
21
|
Chef::Knife::UserCreate.load_deps
|
@@ -80,7 +79,7 @@ describe Chef::Knife::UserCreate do
|
|
80
79
|
before :each do
|
81
80
|
@user = double("Chef::User")
|
82
81
|
@key = "You don't come into cooking to get rich - Ramsay"
|
83
|
-
allow(@user).to receive(:[]).with("
|
82
|
+
allow(@user).to receive(:[]).with("chef_key").and_return(@key)
|
84
83
|
knife.config[:passwordprompt] = true
|
85
84
|
knife.name_args = name_args
|
86
85
|
end
|
@@ -97,7 +96,7 @@ describe Chef::Knife::UserCreate do
|
|
97
96
|
before do
|
98
97
|
@user = double("Chef::User")
|
99
98
|
@key = "You don't come into cooking to get rich - Ramsay"
|
100
|
-
allow(@user).to receive(:[]).with("
|
99
|
+
allow(@user).to receive(:[]).with("chef_key").and_return(@key)
|
101
100
|
knife.name_args = %w{some_user some_display_name some_first_name some_last_name some_email some_password}
|
102
101
|
end
|
103
102
|
|
@@ -177,17 +176,39 @@ describe Chef::Knife::UserCreate do
|
|
177
176
|
|
178
177
|
describe "with user_name, first_name, last_name, email and password" do
|
179
178
|
let(:name_args) { %w{some_user some_display_name some_first_name some_last_name test@email.com some_password} }
|
179
|
+
before :each do
|
180
|
+
@user = double("Chef::User")
|
181
|
+
expect(Chef::ServerAPI).to receive(:new).with(Chef::Config[:chef_server_root]).and_return(root_rest)
|
182
|
+
expect(root_rest).to receive(:post).and_return(@user)
|
183
|
+
@key = IO.read(File.join(CHEF_SPEC_DATA, "ssl", "private_key.pem"))
|
184
|
+
allow(@user).to receive(:[]).with("chef_key").and_return(nil)
|
185
|
+
knife.name_args = name_args
|
186
|
+
end
|
187
|
+
|
188
|
+
it "creates an user without private key" do
|
189
|
+
expect(knife.ui).to_not receive(:msg).with(@key)
|
190
|
+
knife.run
|
191
|
+
end
|
192
|
+
end
|
180
193
|
|
194
|
+
describe "with user_name, first_name, last_name, email and password" do
|
195
|
+
let(:name_args) { %w{some_user some_display_name some_first_name some_last_name test@email.com some_password} }
|
181
196
|
before :each do
|
182
197
|
@user = double("Chef::User")
|
183
198
|
expect(Chef::ServerAPI).to receive(:new).with(Chef::Config[:chef_server_root]).and_return(root_rest)
|
184
199
|
expect(root_rest).to receive(:post).and_return(@user)
|
185
|
-
@
|
186
|
-
|
200
|
+
@username = "Created #{name_args.first}"
|
201
|
+
@key = IO.read(File.join(CHEF_SPEC_DATA, "ssl", "private_key.pem"))
|
202
|
+
allow(@user).to receive(:[]).with("chef_key").and_return("private_key" => @key)
|
187
203
|
knife.name_args = name_args
|
188
204
|
end
|
189
205
|
|
190
206
|
it "creates an user" do
|
207
|
+
expect(knife.ui).to receive(:info).with(@username)
|
208
|
+
knife.run
|
209
|
+
end
|
210
|
+
|
211
|
+
it "creates an user private key" do
|
191
212
|
expect(knife.ui).to receive(:msg).with(@key)
|
192
213
|
knife.run
|
193
214
|
end
|
@@ -204,7 +225,6 @@ describe Chef::Knife::UserCreate do
|
|
204
225
|
}
|
205
226
|
|
206
227
|
it "creates an user, associates a user, and adds it to the admins group" do
|
207
|
-
|
208
228
|
expect(root_rest).to receive(:post).with("organizations/ramsay/association_requests", request_body).and_return(@user)
|
209
229
|
expect(root_rest).to receive(:put).with("users/some_user/association_requests/1", { response: "accept" })
|
210
230
|
knife.run
|
@@ -219,14 +239,20 @@ describe Chef::Knife::UserCreate do
|
|
219
239
|
@user = double("Chef::User")
|
220
240
|
expect(Chef::ServerAPI).to receive(:new).with(Chef::Config[:chef_server_root]).and_return(root_rest)
|
221
241
|
expect(root_rest).to receive(:post).and_return(@user)
|
222
|
-
@
|
223
|
-
|
242
|
+
@username = "Created #{name_args.first}"
|
243
|
+
@key = IO.read(File.join(CHEF_SPEC_DATA, "ssl", "private_key.pem"))
|
244
|
+
allow(@user).to receive(:[]).with("chef_key").and_return("private_key" => @key)
|
224
245
|
knife.name_args = name_args
|
225
246
|
knife.config[:email] = "test@email.com"
|
226
247
|
knife.config[:password] = "some_password"
|
227
248
|
end
|
228
249
|
|
229
250
|
it "creates an user" do
|
251
|
+
expect(knife.ui).to receive(:info).with(@username)
|
252
|
+
knife.run
|
253
|
+
end
|
254
|
+
|
255
|
+
it "creates an user private key" do
|
230
256
|
expect(knife.ui).to receive(:msg).with(@key)
|
231
257
|
knife.run
|
232
258
|
end
|
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.
|
4
|
+
version: 17.10.95
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Jacob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef-config
|
@@ -17,6 +17,9 @@ dependencies:
|
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '17'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '18.0'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -24,6 +27,9 @@ dependencies:
|
|
24
27
|
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '17'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '18.0'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: chef-utils
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -31,6 +37,9 @@ dependencies:
|
|
31
37
|
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
33
39
|
version: '17'
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '18.0'
|
34
43
|
type: :runtime
|
35
44
|
prerelease: false
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -38,6 +47,9 @@ dependencies:
|
|
38
47
|
- - ">="
|
39
48
|
- !ruby/object:Gem::Version
|
40
49
|
version: '17'
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '18.0'
|
41
53
|
- !ruby/object:Gem::Dependency
|
42
54
|
name: chef
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -45,6 +57,9 @@ dependencies:
|
|
45
57
|
- - ">="
|
46
58
|
- !ruby/object:Gem::Version
|
47
59
|
version: '17'
|
60
|
+
- - "<"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '18.0'
|
48
63
|
type: :runtime
|
49
64
|
prerelease: false
|
50
65
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -52,26 +67,23 @@ dependencies:
|
|
52
67
|
- - ">="
|
53
68
|
- !ruby/object:Gem::Version
|
54
69
|
version: '17'
|
70
|
+
- - "<"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '18.0'
|
55
73
|
- !ruby/object:Gem::Dependency
|
56
74
|
name: train-core
|
57
75
|
requirement: !ruby/object:Gem::Requirement
|
58
76
|
requirements:
|
59
77
|
- - "~>"
|
60
78
|
- !ruby/object:Gem::Version
|
61
|
-
version: '3.
|
62
|
-
- - ">="
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
version: 3.2.28
|
79
|
+
version: '3.10'
|
65
80
|
type: :runtime
|
66
81
|
prerelease: false
|
67
82
|
version_requirements: !ruby/object:Gem::Requirement
|
68
83
|
requirements:
|
69
84
|
- - "~>"
|
70
85
|
- !ruby/object:Gem::Version
|
71
|
-
version: '3.
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: 3.2.28
|
86
|
+
version: '3.10'
|
75
87
|
- !ruby/object:Gem::Dependency
|
76
88
|
name: train-winrm
|
77
89
|
requirement: !ruby/object:Gem::Requirement
|
@@ -197,7 +209,7 @@ dependencies:
|
|
197
209
|
version: '5.1'
|
198
210
|
- - "<"
|
199
211
|
- !ruby/object:Gem::Version
|
200
|
-
version: '
|
212
|
+
version: '8'
|
201
213
|
type: :runtime
|
202
214
|
prerelease: false
|
203
215
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -207,7 +219,7 @@ dependencies:
|
|
207
219
|
version: '5.1'
|
208
220
|
- - "<"
|
209
221
|
- !ruby/object:Gem::Version
|
210
|
-
version: '
|
222
|
+
version: '8'
|
211
223
|
- !ruby/object:Gem::Dependency
|
212
224
|
name: net-ssh-multi
|
213
225
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1130,13 +1142,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1130
1142
|
- - ">="
|
1131
1143
|
- !ruby/object:Gem::Version
|
1132
1144
|
version: 2.7.0
|
1145
|
+
- - "<"
|
1146
|
+
- !ruby/object:Gem::Version
|
1147
|
+
version: '3.1'
|
1133
1148
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1134
1149
|
requirements:
|
1135
1150
|
- - ">="
|
1136
1151
|
- !ruby/object:Gem::Version
|
1137
1152
|
version: '0'
|
1138
1153
|
requirements: []
|
1139
|
-
rubygems_version: 3.2.
|
1154
|
+
rubygems_version: 3.2.33
|
1140
1155
|
signing_key:
|
1141
1156
|
specification_version: 4
|
1142
1157
|
summary: The knife CLI for Chef Infra.
|