chef-cli 3.0.23 → 3.0.32

Sign up to get free protection for your applications and to get access to all the features.
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