chef-cli 3.0.14 → 3.0.16
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ba95803ebaddd3034b21130fda13e0a001c5ef02b304897d7808c0286268d9b
|
4
|
+
data.tar.gz: 7c64aed7f98666dc5677f11036cbbb7671cc9d8d09f410f25222332c1fd10ac6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a42c1780fe0865c527c8787bd1122abcb06867b0f3e01e142684ac2cda519215c9801d031c6266ac94c7965d890dd5c6e0af8eebb195aecdfd0fa36f0691422c
|
7
|
+
data.tar.gz: 3133b68e4e51bd548e180bdbf3d8bae0735834118e0c9b81a781b0e869196a4108ea72ea38904cc1662a3d1863af4dcdf92a5508073efcd53408e7704f792c9e
|
data/lib/chef-cli/cli.rb
CHANGED
@@ -99,42 +99,21 @@ module ChefCLI
|
|
99
99
|
if omnibus_install?
|
100
100
|
show_version_via_version_manifest
|
101
101
|
else
|
102
|
-
|
102
|
+
msg("#{ChefCLI::Dist::CLI_PRODUCT} version: #{ChefCLI::VERSION}")
|
103
103
|
end
|
104
104
|
end
|
105
105
|
|
106
106
|
def show_version_via_version_manifest
|
107
|
-
msg("#{ChefCLI::Dist::PRODUCT} version: #{
|
108
|
-
|
109
|
-
|
110
|
-
"#{ChefCLI::Dist::
|
107
|
+
msg("#{ChefCLI::Dist::PRODUCT} version: #{component_version("build_version")}")
|
108
|
+
|
109
|
+
{ "#{ChefCLI::Dist::INFRA_CLIENT_PRODUCT}": ChefCLI::Dist::INFRA_CLIENT_GEM,
|
110
|
+
"#{ChefCLI::Dist::INSPEC_PRODUCT}": ChefCLI::Dist::INSPEC_CLI,
|
111
|
+
"#{ChefCLI::Dist::CLI_PRODUCT}": ChefCLI::Dist::CLI_GEM,
|
112
|
+
"#{ChefCLI::Dist::HAB_PRODUCT}": ChefCLI::Dist::HAB_SOFTWARE_NAME,
|
111
113
|
"Test Kitchen": "test-kitchen",
|
112
114
|
"Cookstyle": "cookstyle",
|
113
|
-
}.each do |
|
114
|
-
msg("#{
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
def show_version_via_shell_out
|
119
|
-
msg("#{ChefCLI::Dist::PRODUCT} version: #{ChefCLI::VERSION}")
|
120
|
-
{ "#{ChefCLI::Dist::INFRA_CLIENT_PRODUCT}": "#{ChefCLI::Dist::INFRA_CLIENT_CLI}",
|
121
|
-
"#{ChefCLI::Dist::INSPEC_PRODUCT}": "#{ChefCLI::Dist::INSPEC_CLI}",
|
122
|
-
"Test Kitchen": "kitchen",
|
123
|
-
"Cookstyle": "cookstyle",
|
124
|
-
}.each do |name, cli|
|
125
|
-
# @todo when Ruby 2.5/2.6 support goes away this if statement can go away
|
126
|
-
if Gem::Version.new(Bundler::VERSION) >= Gem::Version.new("2")
|
127
|
-
result = Bundler.with_unbundled_env { shell_out("#{cli} --version") }
|
128
|
-
else
|
129
|
-
result = Bundler.with_clean_env { shell_out("#{cli} --version") }
|
130
|
-
end
|
131
|
-
|
132
|
-
if result.exitstatus != 0
|
133
|
-
msg("#{name} version: ERROR")
|
134
|
-
else
|
135
|
-
version = result.stdout.lines.first.scan(/(?:master\s)?[\d+\.\(\)]+\S+/).join("\s")
|
136
|
-
msg("#{name} version: #{version}")
|
137
|
-
end
|
115
|
+
}.each do |prod_name, component|
|
116
|
+
msg("#{prod_name} version: #{component_version(component)}")
|
138
117
|
end
|
139
118
|
end
|
140
119
|
|
@@ -188,11 +167,13 @@ module ChefCLI
|
|
188
167
|
end
|
189
168
|
end
|
190
169
|
|
191
|
-
def
|
170
|
+
def component_version(name)
|
192
171
|
if gem_manifest_hash[name].is_a?(Array)
|
193
172
|
gem_manifest_hash[name].first
|
173
|
+
elsif manifest_hash.key? name
|
174
|
+
manifest_field(name)
|
194
175
|
else
|
195
|
-
"unknown"
|
176
|
+
manifest_hash.dig("software", name, "locked_version") || "unknown"
|
196
177
|
end
|
197
178
|
end
|
198
179
|
|
data/lib/chef-cli/dist.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# InSpec test for recipe <%= cookbook_name %>::<%= recipe_name %>
|
2
2
|
|
3
3
|
# The InSpec reference, with examples and extensive documentation, can be
|
4
|
-
# found at https://
|
4
|
+
# found at https://docs.chef.io/inspec/resources/
|
5
5
|
|
6
6
|
unless os.windows?
|
7
7
|
# This is an example test, replace with your own test.
|
data/lib/chef-cli/version.rb
CHANGED
data/spec/unit/cli_spec.rb
CHANGED
@@ -53,8 +53,6 @@ describe ChefCLI::CLI do
|
|
53
53
|
E
|
54
54
|
end
|
55
55
|
|
56
|
-
let(:version_message) { "#{ChefCLI::Dist::PRODUCT} version: #{ChefCLI::VERSION}\n" }
|
57
|
-
|
58
56
|
def run_cli(expected_exit_code)
|
59
57
|
expect(cli).to receive(:exit).with(expected_exit_code)
|
60
58
|
expect(cli).to receive(:sanity_check!)
|
@@ -66,16 +64,6 @@ describe ChefCLI::CLI do
|
|
66
64
|
cli.run
|
67
65
|
end
|
68
66
|
|
69
|
-
def run_cli_and_validate_tool_versions
|
70
|
-
full_version_message = version_message
|
71
|
-
tools.each do |name, details|
|
72
|
-
expect(cli).to receive(:shell_out).with("#{details["command"]} --version").and_return(mock_shell_out(0, "#{details["version_output"]}", ""))
|
73
|
-
full_version_message += "#{name} version: #{details["expected_version"]}\n"
|
74
|
-
end
|
75
|
-
run_cli(0)
|
76
|
-
expect(stdout).to eq(full_version_message)
|
77
|
-
end
|
78
|
-
|
79
67
|
def mock_shell_out(exitstatus, stdout, stderr)
|
80
68
|
shell_out = double("mixlib_shell_out")
|
81
69
|
allow(shell_out).to receive(:exitstatus).and_return(exitstatus)
|
@@ -121,12 +109,17 @@ describe ChefCLI::CLI do
|
|
121
109
|
context "given -v" do
|
122
110
|
let(:argv) { %w{-v} }
|
123
111
|
|
124
|
-
context "
|
112
|
+
context "when installed via omnibus" do
|
125
113
|
let(:mocked_version_manifest_json) do
|
126
114
|
<<~E
|
127
115
|
{
|
128
116
|
"manifest_format": 2,
|
129
|
-
"build_version": "d.e.v"
|
117
|
+
"build_version": "d.e.v",
|
118
|
+
"software": {
|
119
|
+
"habitat": {
|
120
|
+
"locked_version": "1.2.3"
|
121
|
+
}
|
122
|
+
}
|
130
123
|
}
|
131
124
|
E
|
132
125
|
end
|
@@ -160,6 +153,7 @@ describe ChefCLI::CLI do
|
|
160
153
|
Chef Infra Client version: 0.0.2
|
161
154
|
Chef InSpec version: 0.0.3
|
162
155
|
Chef CLI version: 0.0.1
|
156
|
+
Chef Habitat version: 1.2.3
|
163
157
|
Test Kitchen version: 0.0.4
|
164
158
|
Cookstyle version: 0.0.6
|
165
159
|
E
|
@@ -171,6 +165,7 @@ describe ChefCLI::CLI do
|
|
171
165
|
Chef Infra Client version: unknown
|
172
166
|
Chef InSpec version: unknown
|
173
167
|
Chef CLI version: unknown
|
168
|
+
Chef Habitat version: unknown
|
174
169
|
Test Kitchen version: unknown
|
175
170
|
Cookstyle version: unknown
|
176
171
|
E
|
@@ -195,49 +190,15 @@ describe ChefCLI::CLI do
|
|
195
190
|
end
|
196
191
|
end
|
197
192
|
|
198
|
-
context "
|
199
|
-
let(:
|
200
|
-
|
201
|
-
|
202
|
-
"command" => "chef-client",
|
203
|
-
"version_output" => "Chef Infra Client: 15.0.300",
|
204
|
-
"expected_version" => "15.0.300",
|
205
|
-
},
|
206
|
-
"Chef InSpec" => {
|
207
|
-
"command" => "inspec",
|
208
|
-
"version_output" => "4.6.2\n\nYour version of InSpec is out of date! The latest version is 4.6.4.",
|
209
|
-
"expected_version" => "4.6.2",
|
210
|
-
},
|
211
|
-
"Test Kitchen" => {
|
212
|
-
"command" => "kitchen",
|
213
|
-
"version_output" => "Test Kitchen version 2.2.5",
|
214
|
-
"expected_version" => "2.2.5",
|
215
|
-
},
|
216
|
-
"Cookstyle" => {
|
217
|
-
"command" => "cookstyle",
|
218
|
-
"version_output" => "Cookstyle 4.0.0\n * RuboCop 0.62.0",
|
219
|
-
"expected_version" => "4.0.0",
|
220
|
-
},
|
221
|
-
}
|
222
|
-
end
|
223
|
-
|
224
|
-
it "does not print versions of tools with missing or errored tools" do
|
225
|
-
full_version_message = version_message
|
226
|
-
tools.each do |name, details|
|
227
|
-
if name == "inspec"
|
228
|
-
expect(cli).to receive(:shell_out).with("#{details["command"]} --version").and_return(mock_shell_out(1, "#{details["version_output"]}", ""))
|
229
|
-
full_version_message += "#{name} version: ERROR\n"
|
230
|
-
else
|
231
|
-
expect(cli).to receive(:shell_out).with("#{details["command"]} --version").and_return(mock_shell_out(0, "#{details["version_output"]}", ""))
|
232
|
-
full_version_message += "#{name} version: #{details["expected_version"]}\n"
|
233
|
-
end
|
234
|
-
end
|
235
|
-
run_cli(0)
|
236
|
-
expect(stdout).to eq(full_version_message)
|
193
|
+
context "when installed as a gem" do
|
194
|
+
let(:gem_version_message) { "#{ChefCLI::Dist::CLI_PRODUCT} version: #{ChefCLI::VERSION}\n" }
|
195
|
+
before do
|
196
|
+
allow(cli).to receive(:omnibus_install?).and_return false
|
237
197
|
end
|
238
198
|
|
239
199
|
it "prints the version and versions of chef-cli tools" do
|
240
|
-
|
200
|
+
run_cli(0)
|
201
|
+
expect(stdout).to eq(gem_version_message)
|
241
202
|
end
|
242
203
|
end
|
243
204
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chef Software, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-cli
|