chef-cli 3.0.27 → 3.0.30
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/bin/chef-cli +2 -2
- data/lib/chef-cli/cli.rb +6 -2
- data/lib/chef-cli/command/env.rb +1 -1
- data/lib/chef-cli/cookbook_profiler/identifiers.rb +1 -1
- data/lib/chef-cli/generator.rb +1 -1
- data/lib/chef-cli/helpers.rb +1 -1
- data/lib/chef-cli/policyfile/storage_config.rb +1 -1
- data/lib/chef-cli/policyfile_services/export_repo.rb +1 -1
- data/lib/chef-cli/policyfile_services/install.rb +7 -5
- data/lib/chef-cli/policyfile_services/push_archive.rb +1 -1
- data/lib/chef-cli/version.rb +1 -1
- data/spec/test_helpers.rb +2 -2
- data/spec/unit/cli_spec.rb +4 -1
- data/spec/unit/command/exec_spec.rb +1 -1
- data/spec/unit/fixtures/cookbooks_api/update_fixtures.rb +3 -6
- data/spec/unit/policyfile/storage_config_spec.rb +2 -2
- data/spec/unit/policyfile_services/install_spec.rb +20 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a39366b7f1920937b7329ef1a5b54d810d4b3c017e331926608356c55c68250
|
4
|
+
data.tar.gz: 20882fcd4590d7969d7afd83aec868e89be1c032651dc594dcc61f4eee2eb632
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 621b7594acfcb6968c5ddd3d690fc49a86b4c6932d4011debdadee19d86d638b7caea04eba2aa89776be213533ec4c14be65b715418edf83a39fda0f651c8bba
|
7
|
+
data.tar.gz: 315dd298b75add288ff031a1c9b7d3a0d5d4994454476570b4fd3c46a4c0ae3d693ecc8d9ac0b43aa5c10f3ffa1901921fb841e63198612b84d0cbb6e630d582
|
data/bin/chef-cli
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
#
|
3
|
-
# Copyright:: Copyright (c)
|
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,7 @@
|
|
19
19
|
# Set a trap for ctrl-C right away so we don't surface interrupt exceptions inside of rubygems or whatever.
|
20
20
|
Kernel.trap(:INT) { print("\n"); exit 1 }
|
21
21
|
|
22
|
-
$:.unshift(File.expand_path(File.join(
|
22
|
+
$:.unshift(File.expand_path(File.join(__dir__, "..", "lib")))
|
23
23
|
require "chef-cli/cli"
|
24
24
|
|
25
25
|
ChefCLI::CLI.new(ARGV.clone).run(enforce_license: true)
|
data/lib/chef-cli/cli.rb
CHANGED
@@ -33,6 +33,10 @@ module ChefCLI
|
|
33
33
|
include Chef::Mixin::ShellOut
|
34
34
|
|
35
35
|
banner(<<~BANNER)
|
36
|
+
The Chef command line tool for managing your infrastructure from your workstation.
|
37
|
+
Docs: https://docs.chef.io/workstation/
|
38
|
+
Patents: https://www.chef.io/patents
|
39
|
+
|
36
40
|
Usage:
|
37
41
|
#{ChefCLI::Dist::EXEC} -h/--help
|
38
42
|
#{ChefCLI::Dist::EXEC} -v/--version
|
@@ -119,13 +123,13 @@ module ChefCLI
|
|
119
123
|
|
120
124
|
def show_help
|
121
125
|
msg(banner)
|
122
|
-
msg("
|
126
|
+
msg("Available Commands:")
|
123
127
|
|
124
128
|
justify_length = subcommands.map(&:length).max + 2
|
125
129
|
subcommand_specs.each do |name, spec|
|
126
130
|
next if spec.hidden
|
127
131
|
|
128
|
-
msg(" #{
|
132
|
+
msg(" #{name.to_s.ljust(justify_length)}#{spec.description}")
|
129
133
|
end
|
130
134
|
end
|
131
135
|
|
data/lib/chef-cli/command/env.rb
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
# TODO: Chef should require its dependency correctly.
|
19
19
|
require "singleton" unless defined?(Singleton)
|
20
20
|
require "chef/cookbook/cookbook_version_loader"
|
21
|
-
require "digest/sha1"
|
21
|
+
require "digest/sha1" unless defined?(Digest::SHA1)
|
22
22
|
|
23
23
|
require "chef/digester"
|
24
24
|
|
data/lib/chef-cli/generator.rb
CHANGED
@@ -154,7 +154,7 @@ module ChefCLI
|
|
154
154
|
end
|
155
155
|
if comment
|
156
156
|
# Ensure there's no trailing whitespace
|
157
|
-
result.gsub(/^(.+)$/, "#{comment} \\1").gsub(/^$/,
|
157
|
+
result.gsub(/^(.+)$/, "#{comment} \\1").gsub(/^$/, comment).strip
|
158
158
|
else
|
159
159
|
result
|
160
160
|
end
|
data/lib/chef-cli/helpers.rb
CHANGED
@@ -141,7 +141,7 @@ module ChefCLI
|
|
141
141
|
|
142
142
|
def default_package_home
|
143
143
|
if Chef::Platform.windows?
|
144
|
-
File.join(ENV["LOCALAPPDATA"],
|
144
|
+
File.join(ENV["LOCALAPPDATA"], ChefCLI::Dist::PRODUCT_PKG_HOME)
|
145
145
|
else
|
146
146
|
File.expand_path("~/.#{ChefCLI::Dist::PRODUCT_PKG_HOME}")
|
147
147
|
end
|
@@ -52,7 +52,7 @@ module ChefCLI
|
|
52
52
|
return use_policyfile_lock(policyfile_filename)
|
53
53
|
end
|
54
54
|
unless policyfile_filename.end_with?(".rb")
|
55
|
-
raise InvalidPolicyfileFilename, "Policyfile filenames must end with `.rb' extension (you gave: `#{policyfile_filename}')"
|
55
|
+
raise InvalidPolicyfileFilename, "Policyfile filenames must end with an `.rb' or `.lock.json' extension (you gave: `#{policyfile_filename}')"
|
56
56
|
end
|
57
57
|
|
58
58
|
@policyfile_filename = policyfile_filename
|
@@ -42,8 +42,8 @@ module ChefCLI
|
|
42
42
|
@overwrite = overwrite
|
43
43
|
@chef_config = config
|
44
44
|
|
45
|
-
policyfile_rel_path = policyfile || "Policyfile.rb"
|
46
|
-
policyfile_full_path = File.expand_path(policyfile_rel_path, root_dir)
|
45
|
+
@policyfile_rel_path = policyfile || "Policyfile.rb"
|
46
|
+
policyfile_full_path = File.expand_path(@policyfile_rel_path, root_dir)
|
47
47
|
@storage_config = Policyfile::StorageConfig.new.use_policyfile(policyfile_full_path)
|
48
48
|
|
49
49
|
@policyfile_content = nil
|
@@ -51,9 +51,11 @@ module ChefCLI
|
|
51
51
|
end
|
52
52
|
|
53
53
|
def run(cookbooks_to_update = [], exclude_deps = false)
|
54
|
-
|
55
|
-
|
56
|
-
|
54
|
+
# TODO: suggest next step. Add a generator/init command? Specify path to Policyfile.rb?
|
55
|
+
# See card CC-232
|
56
|
+
if @policyfile_rel_path.end_with?(".lock.json") && !File.exist?(policyfile_lock_expanded_path)
|
57
|
+
raise PolicyfileNotFound, "Policyfile lock not found at path #{policyfile_lock_expanded_path}"
|
58
|
+
elsif @policyfile_rel_path.end_with?(".rb") && !File.exist?(policyfile_expanded_path)
|
57
59
|
raise PolicyfileNotFound, "Policyfile not found at path #{policyfile_expanded_path}"
|
58
60
|
end
|
59
61
|
|
data/lib/chef-cli/version.rb
CHANGED
data/spec/test_helpers.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright:: Copyright (c)
|
2
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
3
3
|
# License:: Apache License, Version 2.0
|
4
4
|
#
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -35,7 +35,7 @@ module TestHelpers
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def fixtures_path
|
38
|
-
File.expand_path(
|
38
|
+
File.expand_path(__dir__ + "/unit/fixtures/")
|
39
39
|
end
|
40
40
|
|
41
41
|
def project_root
|
data/spec/unit/cli_spec.rb
CHANGED
@@ -41,12 +41,15 @@ describe ChefCLI::CLI do
|
|
41
41
|
|
42
42
|
let(:base_help_message) do
|
43
43
|
<<~E
|
44
|
+
The Chef command line tool for managing your infrastructure from your workstation.
|
45
|
+
Docs: https://docs.chef.io/workstation/
|
46
|
+
Patents: https://www.chef.io/patents
|
47
|
+
|
44
48
|
Usage:
|
45
49
|
chef -h/--help
|
46
50
|
chef -v/--version
|
47
51
|
chef command [arguments...] [options...]
|
48
52
|
|
49
|
-
|
50
53
|
Available Commands:
|
51
54
|
gem Runs the `gem` command in context of the embedded ruby
|
52
55
|
example Example subcommand for testing
|
@@ -127,7 +127,7 @@ describe ChefCLI::Command::Exec do
|
|
127
127
|
end
|
128
128
|
|
129
129
|
context "when running a exec with #{switch}" do
|
130
|
-
let(:command_options) { [
|
130
|
+
let(:command_options) { [switch] }
|
131
131
|
|
132
132
|
it "should call not call exec, but it should print the banner" do
|
133
133
|
allow(command_instance).to receive(:msg)
|
@@ -1,14 +1,11 @@
|
|
1
1
|
require "openssl"
|
2
2
|
require "net/http" unless defined?(Net::HTTP)
|
3
3
|
require "json" unless defined?(JSON)
|
4
|
-
require "pp"
|
5
4
|
require "uri"
|
6
5
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
SMALL_UNIVERSE_JSON_PATH = File.join(THIS_DIR, "small_universe.json")
|
11
|
-
PRUNED_UNIVERSE_PATH = File.join(THIS_DIR, "pruned_small_universe.json")
|
6
|
+
UNIVERSE_JSON_PATH = File.join(__dir__, "universe.json")
|
7
|
+
SMALL_UNIVERSE_JSON_PATH = File.join(__dir__, "small_universe.json")
|
8
|
+
PRUNED_UNIVERSE_PATH = File.join(__dir__, "pruned_small_universe.json")
|
12
9
|
|
13
10
|
COOKBOOKS_IN_SMALL_UNIVERSE = %w{apache2 application apt database mysql nginx postgresql yum}.freeze
|
14
11
|
|
@@ -106,10 +106,10 @@ describe ChefCLI::Policyfile::StorageConfig do
|
|
106
106
|
|
107
107
|
end
|
108
108
|
|
109
|
-
context "when the policyfile file name doesn't have
|
109
|
+
context "when the policyfile file name doesn't have an .rb or .lock.json extension" do
|
110
110
|
|
111
111
|
it "raises an error" do
|
112
|
-
err_string = %q{Policyfile filenames must end with `.rb' extension (you gave: `Policyfile')}
|
112
|
+
err_string = %q{Policyfile filenames must end with an `.rb' or `.lock.json' extension (you gave: `Policyfile')}
|
113
113
|
expect { storage_config.use_policyfile("Policyfile") }.to raise_error(ChefCLI::InvalidPolicyfileFilename, err_string)
|
114
114
|
end
|
115
115
|
|
@@ -77,6 +77,26 @@ describe ChefCLI::PolicyfileServices::Install do
|
|
77
77
|
|
78
78
|
end
|
79
79
|
|
80
|
+
context "When an explicit Policfyfile lock name is given and does not exist" do
|
81
|
+
|
82
|
+
let(:policyfile_rb_explicit_name) { "i_do_not_exist.lock.json" }
|
83
|
+
|
84
|
+
it "errors out" do
|
85
|
+
expect { install_service.run }.to raise_error(ChefCLI::PolicyfileNotFound, "Policyfile lock not found at path #{policyfile_rb_path}")
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
context "When an explicit Policfyfile name is given and does not exist" do
|
91
|
+
|
92
|
+
let(:policyfile_rb_explicit_name) { "i_do_not_exist.rb" }
|
93
|
+
|
94
|
+
it "errors out" do
|
95
|
+
expect { install_service.run }.to raise_error(ChefCLI::PolicyfileNotFound, "Policyfile not found at path #{policyfile_rb_path}")
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
80
100
|
context "when a Policyfile exists" do
|
81
101
|
|
82
102
|
before do
|
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.30
|
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-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-cli
|