chef-cli 3.0.23 → 3.0.32

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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +6 -0
  3. data/bin/chef-cli +2 -2
  4. data/chef-cli.gemspec +1 -1
  5. data/lib/chef-cli/cli.rb +6 -2
  6. data/lib/chef-cli/command/env.rb +7 -4
  7. data/lib/chef-cli/command/exec.rb +4 -1
  8. data/lib/chef-cli/command/generator_commands.rb +1 -1
  9. data/lib/chef-cli/command/generator_commands/cookbook.rb +1 -14
  10. data/lib/chef-cli/command/shell_init.rb +5 -2
  11. data/lib/chef-cli/cookbook_profiler/identifiers.rb +1 -1
  12. data/lib/chef-cli/dist.rb +7 -2
  13. data/lib/chef-cli/generator.rb +1 -1
  14. data/lib/chef-cli/helpers.rb +5 -2
  15. data/lib/chef-cli/policyfile/chef_server_cookbook_source.rb +1 -1
  16. data/lib/chef-cli/policyfile/comparison_base.rb +5 -2
  17. data/lib/chef-cli/policyfile/differ.rb +1 -1
  18. data/lib/chef-cli/policyfile/git_lock_fetcher.rb +4 -1
  19. data/lib/chef-cli/policyfile/lister.rb +1 -1
  20. data/lib/chef-cli/policyfile/solution_dependencies.rb +1 -1
  21. data/lib/chef-cli/policyfile/source_uri.rb +4 -1
  22. data/lib/chef-cli/policyfile/storage_config.rb +1 -1
  23. data/lib/chef-cli/policyfile/undo_stack.rb +1 -1
  24. data/lib/chef-cli/policyfile_compiler.rb +1 -1
  25. data/lib/chef-cli/policyfile_services/clean_policy_cookbooks.rb +1 -1
  26. data/lib/chef-cli/policyfile_services/export_repo.rb +1 -1
  27. data/lib/chef-cli/policyfile_services/install.rb +8 -6
  28. data/lib/chef-cli/policyfile_services/push.rb +1 -1
  29. data/lib/chef-cli/policyfile_services/push_archive.rb +1 -1
  30. data/lib/chef-cli/service_exception_inspectors/http.rb +1 -1
  31. data/lib/chef-cli/shell_out.rb +3 -1
  32. data/lib/chef-cli/version.rb +1 -1
  33. data/lib/kitchen/provisioner/chef_zero_capture.rb +0 -1
  34. data/spec/test_helpers.rb +2 -2
  35. data/spec/unit/cli_spec.rb +4 -1
  36. data/spec/unit/command/env_spec.rb +1 -1
  37. data/spec/unit/command/exec_spec.rb +1 -1
  38. data/spec/unit/fixtures/cookbooks_api/update_fixtures.rb +4 -7
  39. data/spec/unit/policyfile/storage_config_spec.rb +2 -2
  40. data/spec/unit/policyfile_services/install_spec.rb +20 -0
  41. data/spec/unit/service_exception_inspectors/http_spec.rb +1 -1
  42. metadata +8 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c339cf60e573bfcc494ea18c6b641186a8c755c935be0283a8406387540c0134
4
- data.tar.gz: b774a1dd9c5d085d2d0b307febb9f9882ab5da6ca1517f8b0e6c1dea207b6404
3
+ metadata.gz: 3f1cc14b62507710161304d60579a50eedb0125347d29e5600d4ba4240d6eec9
4
+ data.tar.gz: a25398db16aa457dfcf8a59fa6ffbaf582469299ff0cdfa8427db5a1277e6b88
5
5
  SHA512:
6
- metadata.gz: 4737f6de6472e79359cd79694edcf5b0a87973b1ddb3757aed33a59aac968687aa99b5fa94056142cb82c1fa76ba220d2d2e38116004d1328b25ef628dfdaf4f
7
- data.tar.gz: e616b2608aeb4891dc879c689b2b187885b79d62aa3ed6c9a7a8afb7b02610a4dd100b8eef243945baead2f4d460ce0b205d7d93314b44313e7661302e6ce79b
6
+ metadata.gz: 5f0aaf0135f5f2034c7b7925f7fae7c5940dd4971531478dfd19be577739bfc4cd570381b4fa4e9c2f8b4ce4b3f7bb7108165d74aa36276023199e55a9094390
7
+ data.tar.gz: e5ac2dc8430803d5f9a7d56e898466778bb2d4c9a4ebbd69580d045089048e905648e41f0c4b6a10d9b5d588489aa0caa2c37a7f9e4d24b0dfed8a5f5075c885
data/Gemfile CHANGED
@@ -28,3 +28,9 @@ group :development do
28
28
  gem "pry-stack_explorer", "~> 0.4.0"
29
29
  gem "rb-readline"
30
30
  end
31
+
32
+ group :profile do
33
+ gem "stackprof"
34
+ gem "stackprof-webnav"
35
+ gem "memory_profiler"
36
+ end
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  #
3
- # Copyright:: Copyright (c) 2014-2018 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,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(File.dirname(__FILE__), "..", "lib")))
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)
@@ -49,5 +49,5 @@ Gem::Specification.new do |gem|
49
49
  gem.add_dependency "cookbook-omnifetch", "~> 0.5"
50
50
  gem.add_dependency "diff-lcs", ">= 1.0", "< 1.4" # 1.4 changes the output
51
51
  gem.add_dependency "pastel", "~> 0.7" # used for policyfile differ
52
- gem.add_dependency "license-acceptance", "~> 1.0", ">= 1.0.11"
52
+ gem.add_dependency "license-acceptance", ">= 1.0.11", "< 3"
53
53
  end
@@ -33,6 +33,10 @@ module ChefCLI
33
33
  include Chef::Mixin::ShellOut
34
34
 
35
35
  banner(<<~BANNER)
36
+ #{ChefCLI::Dist::WORKSTATION_HEADER}
37
+ Docs: #{ChefCLI::Dist::WORKSTATION_DOCS}
38
+ Patents: #{ChefCLI::Dist::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("\nAvailable Commands:")
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(" #{"#{name}".ljust(justify_length)}#{spec.description}")
132
+ msg(" #{name.to_s.ljust(justify_length)}#{spec.description}")
129
133
  end
130
134
  end
131
135
 
@@ -20,8 +20,11 @@ require_relative "../cookbook_omnifetch"
20
20
  require_relative "../ui"
21
21
  require_relative "../version"
22
22
  require_relative "../dist"
23
- require "mixlib/shellout" unless defined?(Mixlib::ShellOut)
24
- require "yaml" unless defined?(YAML)
23
+
24
+ module Mixlib
25
+ autoload :ShellOut, "mixlib/shellout"
26
+ end
27
+ autoload :YAML, "yaml"
25
28
 
26
29
  module ChefCLI
27
30
  module Command
@@ -37,10 +40,10 @@ module ChefCLI
37
40
 
38
41
  def run(params)
39
42
  info = {}
40
- info["#{ChefCLI::Dist::PRODUCT}"] = workstation_info
43
+ info[ChefCLI::Dist::PRODUCT] = workstation_info
41
44
  info["Ruby"] = ruby_info
42
45
  info["Path"] = paths
43
- ui.msg info.to_yaml
46
+ ui.msg YAML.dump(info)
44
47
  end
45
48
 
46
49
  def workstation_info
@@ -17,7 +17,10 @@
17
17
 
18
18
  require_relative "base"
19
19
  require_relative "../dist"
20
- require "mixlib/shellout" unless defined?(Mixlib::ShellOut)
20
+
21
+ module Mixlib
22
+ autoload :ShellOut, "mixlib/shellout"
23
+ end
21
24
 
22
25
  module ChefCLI
23
26
  module Command
@@ -16,7 +16,7 @@
16
16
  #
17
17
 
18
18
  require "mixlib/cli" unless defined?(Mixlib::CLI)
19
- require "pathname" unless defined?(Pathname)
19
+ autoload :Pathname, "pathname"
20
20
  require_relative "base"
21
21
  require_relative "../chef_runner"
22
22
  require_relative "../generator"
@@ -197,20 +197,7 @@ module ChefCLI
197
197
  # .delivery/cli.toml starting from pwd:
198
198
  # https://github.com/chef/delivery-cli/blob/22cbef3987ebd0aee98405b7e161a100edc87e49/src/delivery/config/mod.rs#L225-L247
199
199
 
200
- Pathname.new(Dir.pwd).ascend do |path|
201
- return true if contains_delivery_cli_toml?(path)
202
- end
203
-
204
- false # nothing was found
205
- end
206
-
207
- #
208
- # @param [Pathname] path a directory
209
- #
210
- # @return [Boolean] delivery cli.toml exists
211
- #
212
- def contains_delivery_cli_toml?(path)
213
- path.join(".delivery/cli.toml").exist?
200
+ Pathname.pwd.ascend.any? { |path| path.join(".delivery/cli.toml").exist? }
214
201
  end
215
202
 
216
203
  def read_and_validate_params
@@ -15,13 +15,16 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require "erb" unless defined?(ERB)
18
+ autoload :ERB, "erb"
19
19
 
20
20
  require_relative "../commands_map"
21
21
  require_relative "../builtin_commands"
22
22
  require_relative "base"
23
23
  require_relative "../dist"
24
- require "mixlib/shellout" unless defined?(Mixlib::ShellOut)
24
+
25
+ module Mixlib
26
+ autoload :ShellOut, "mixlib/shellout"
27
+ end
25
28
 
26
29
  module ChefCLI
27
30
 
@@ -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
 
@@ -27,7 +27,6 @@ module ChefCLI
27
27
 
28
28
  # The name of the server product
29
29
  SERVER_PRODUCT = "Chef Infra Server".freeze
30
-
31
30
  WORKFLOW = "Chef Workflow (Delivery)".freeze
32
31
 
33
32
  # The chef executable, as in `chef gem install` or `chef generate cookbook`
@@ -38,7 +37,13 @@ module ChefCLI
38
37
 
39
38
  HAB_PRODUCT = "Chef Habitat".freeze
40
39
  HAB_SOFTWARE_NAME = "habitat".freeze
41
-
42
40
  HAB_CLI = "hab".freeze
41
+
42
+ # product patents page
43
+ PATENTS = "https://www.chef.io/patents".freeze
44
+
45
+ # Workstation banner/help text
46
+ WORKSTATION_DOCS = "https://docs.chef.io/workstation/".freeze
47
+ WORKSTATION_HEADER = "The Chef command line tool for managing your infrastructure from your workstation.".freeze
43
48
  end
44
49
  end
@@ -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(/^$/, "#{comment}").strip
157
+ result.gsub(/^(.+)$/, "#{comment} \\1").gsub(/^$/, comment).strip
158
158
  else
159
159
  result
160
160
  end
@@ -15,7 +15,10 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require "mixlib/shellout" unless defined?(Mixlib::ShellOut)
18
+ module Mixlib
19
+ autoload :ShellOut, "mixlib/shellout"
20
+ end
21
+
19
22
  require_relative "exceptions"
20
23
 
21
24
  module ChefCLI
@@ -141,7 +144,7 @@ module ChefCLI
141
144
 
142
145
  def default_package_home
143
146
  if Chef::Platform.windows?
144
- File.join(ENV["LOCALAPPDATA"], "#{ChefCLI::Dist::PRODUCT_PKG_HOME}")
147
+ File.join(ENV["LOCALAPPDATA"], ChefCLI::Dist::PRODUCT_PKG_HOME)
145
148
  else
146
149
  File.expand_path("~/.#{ChefCLI::Dist::PRODUCT_PKG_HOME}")
147
150
  end
@@ -15,7 +15,7 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require "ffi_yajl" unless defined?(FFI_Yajl)
18
+ autoload :FFI_Yajl, "ffi_yajl"
19
19
  require_relative "../exceptions"
20
20
  require_relative "source_uri"
21
21
  require_relative "../chef_server_api_multi"
@@ -15,8 +15,11 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require "ffi_yajl" unless defined?(FFI_Yajl)
19
- require "mixlib/shellout" unless defined?(Mixlib::ShellOut)
18
+ module Mixlib
19
+ autoload :ShellOut, "mixlib/shellout"
20
+ end
21
+
22
+ autoload :FFI_Yajl, "ffi_yajl"
20
23
  require_relative "../service_exceptions"
21
24
 
22
25
  module ChefCLI
@@ -18,7 +18,7 @@
18
18
  require "diff/lcs"
19
19
  require "diff/lcs/hunk"
20
20
  require "pastel"
21
- require "ffi_yajl" unless defined?(FFI_Yajl)
21
+ autoload :FFI_Yajl, "ffi_yajl"
22
22
 
23
23
  module ChefCLI
24
24
  module Policyfile
@@ -15,10 +15,13 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
+ module Mixlib
19
+ autoload :ShellOut, "mixlib/shellout"
20
+ end
21
+
18
22
  require_relative "../policyfile_lock"
19
23
  require_relative "../exceptions"
20
24
  require_relative "../helpers"
21
- require "mixlib/shellout" unless defined?(Mixlib::ShellOut)
22
25
  require "tmpdir" unless defined?(Dir.mktmpdir)
23
26
 
24
27
  module ChefCLI
@@ -15,7 +15,7 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require "set" unless defined?(Set)
18
+ autoload :Set, "set"
19
19
 
20
20
  require "chef/server_api"
21
21
  require_relative "../service_exceptions"
@@ -16,7 +16,7 @@
16
16
  #
17
17
 
18
18
  require "semverse"
19
- require "set" unless defined?(Set)
19
+ autoload :Set, "set"
20
20
  require_relative "../exceptions"
21
21
 
22
22
  module ChefCLI
@@ -15,7 +15,10 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require "addressable/uri" unless defined?(Addressable::URI)
18
+ module Addressable
19
+ autoload :URI, "addressable/uri"
20
+ end
21
+
19
22
  require_relative "../exceptions"
20
23
 
21
24
  module ChefCLI
@@ -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
@@ -17,7 +17,7 @@
17
17
 
18
18
  require "fileutils" unless defined?(FileUtils)
19
19
 
20
- require "ffi_yajl" unless defined?(FFI_Yajl)
20
+ autoload :FFI_Yajl, "ffi_yajl"
21
21
 
22
22
  require_relative "../helpers"
23
23
  require_relative "undo_record"
@@ -15,7 +15,7 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require "set" unless defined?(Set)
18
+ autoload :Set, "set"
19
19
  require "forwardable" unless defined?(Forwardable)
20
20
 
21
21
  require "solve"
@@ -15,7 +15,7 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require "set" unless defined?(Set)
18
+ autoload :Set, "set"
19
19
 
20
20
  require "chef/server_api"
21
21
  require_relative "../service_exceptions"
@@ -18,7 +18,7 @@
18
18
  require "pathname" unless defined?(Pathname)
19
19
  require "fileutils" unless defined?(FileUtils)
20
20
  require "tmpdir" unless defined?(Dir.mktmpdir)
21
- require "zlib"
21
+ require "zlib" unless defined?(Zlib)
22
22
 
23
23
  require "archive/tar/minitar"
24
24
 
@@ -15,7 +15,7 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require "ffi_yajl" unless defined?(FFI_Yajl)
18
+ autoload :FFI_Yajl, "ffi_yajl"
19
19
 
20
20
  require_relative "../helpers"
21
21
  require_relative "../service_exceptions"
@@ -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
- unless File.exist?(policyfile_expanded_path)
55
- # TODO: suggest next step. Add a generator/init command? Specify path to Policyfile.rb?
56
- # See card CC-232
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
 
@@ -15,7 +15,7 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require "ffi_yajl" unless defined?(FFI_Yajl)
18
+ autoload :FFI_Yajl, "ffi_yajl"
19
19
 
20
20
  require_relative "../service_exceptions"
21
21
  require "chef/server_api"
@@ -15,7 +15,7 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require "zlib"
18
+ require "zlib" unless defined?(Zlib)
19
19
  require "archive/tar/minitar"
20
20
 
21
21
  require_relative "../service_exceptions"
@@ -15,7 +15,7 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require "ffi_yajl" unless defined?(FFI_Yajl)
18
+ autoload :FFI_Yajl, "ffi_yajl"
19
19
 
20
20
  module ChefCLI
21
21
  module ServiceExceptionInspectors
@@ -15,7 +15,9 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require "mixlib/shellout" unless defined?(Mixlib::ShellOut)
18
+ module Mixlib
19
+ autoload :ShellOut, "mixlib/shellout"
20
+ end
19
21
 
20
22
  module ChefCLI
21
23
 
@@ -16,5 +16,5 @@
16
16
  #
17
17
 
18
18
  module ChefCLI
19
- VERSION = "3.0.23".freeze
19
+ VERSION = "3.0.32".freeze
20
20
  end
@@ -15,7 +15,6 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
 
18
- require "json" unless defined?(JSON)
19
18
  require "kitchen"
20
19
  require "kitchen/provisioner/base"
21
20
  require "kitchen/provisioner/chef_zero"
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright:: Copyright (c) 2014-2018 Chef Software Inc.
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(File.dirname(__FILE__) + "/unit/fixtures/")
38
+ File.expand_path(__dir__ + "/unit/fixtures/")
39
39
  end
40
40
 
41
41
  def project_root
@@ -41,12 +41,15 @@ describe ChefCLI::CLI do
41
41
 
42
42
  let(:base_help_message) do
43
43
  <<~E
44
+ #{ChefCLI::Dist::WORKSTATION_HEADER}
45
+ Docs: #{ChefCLI::Dist::WORKSTATION_DOCS}
46
+ Patents: #{ChefCLI::Dist::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
@@ -16,7 +16,7 @@
16
16
  #
17
17
 
18
18
  require "spec_helper"
19
- require "yaml" unless defined?(YAML)
19
+ autoload :YAML, "yaml"
20
20
  require "chef-cli/command/env"
21
21
 
22
22
  describe ChefCLI::Command::Env do
@@ -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) { ["#{switch}"] }
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
- require "net/https"
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
- THIS_DIR = File.expand_path(File.dirname(__FILE__))
8
-
9
- UNIVERSE_JSON_PATH = File.join(THIS_DIR, "universe.json")
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 a .rb extension" do
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
@@ -16,7 +16,7 @@
16
16
  #
17
17
 
18
18
  require "spec_helper"
19
- require "net/http"
19
+ require "net/http" unless defined?(Net::HTTP)
20
20
  require "chef/monkey_patches/net_http"
21
21
  require "chef-cli/service_exception_inspectors/http"
22
22
 
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.23
4
+ version: 3.0.32
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-08-12 00:00:00.000000000 Z
11
+ date: 2020-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-cli
@@ -190,22 +190,22 @@ dependencies:
190
190
  name: license-acceptance
191
191
  requirement: !ruby/object:Gem::Requirement
192
192
  requirements:
193
- - - "~>"
194
- - !ruby/object:Gem::Version
195
- version: '1.0'
196
193
  - - ">="
197
194
  - !ruby/object:Gem::Version
198
195
  version: 1.0.11
196
+ - - "<"
197
+ - !ruby/object:Gem::Version
198
+ version: '3'
199
199
  type: :runtime
200
200
  prerelease: false
201
201
  version_requirements: !ruby/object:Gem::Requirement
202
202
  requirements:
203
- - - "~>"
204
- - !ruby/object:Gem::Version
205
- version: '1.0'
206
203
  - - ">="
207
204
  - !ruby/object:Gem::Version
208
205
  version: 1.0.11
206
+ - - "<"
207
+ - !ruby/object:Gem::Version
208
+ version: '3'
209
209
  description: A streamlined development and deployment workflow for Chef platform.
210
210
  email:
211
211
  - info@chef.io