berkshelf 7.0.8 → 7.0.9

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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Rakefile +1 -1
  4. data/lib/berkshelf.rb +1 -1
  5. data/lib/berkshelf/api_client/chef_server_connection.rb +3 -2
  6. data/lib/berkshelf/api_client/connection.rb +1 -1
  7. data/lib/berkshelf/berksfile.rb +11 -9
  8. data/lib/berkshelf/cached_cookbook.rb +5 -3
  9. data/lib/berkshelf/chef_repo_universe.rb +4 -2
  10. data/lib/berkshelf/cli.rb +1 -1
  11. data/lib/berkshelf/commands/shelf.rb +1 -1
  12. data/lib/berkshelf/community_rest.rb +3 -3
  13. data/lib/berkshelf/config.rb +1 -1
  14. data/lib/berkshelf/core_ext.rb +1 -1
  15. data/lib/berkshelf/dependency.rb +1 -1
  16. data/lib/berkshelf/downloader.rb +5 -2
  17. data/lib/berkshelf/errors.rb +2 -2
  18. data/lib/berkshelf/formatters/human.rb +1 -1
  19. data/lib/berkshelf/formatters/json.rb +1 -1
  20. data/lib/berkshelf/installer.rb +1 -1
  21. data/lib/berkshelf/lockfile.rb +2 -2
  22. data/lib/berkshelf/logger.rb +4 -2
  23. data/lib/berkshelf/mixin/git.rb +1 -1
  24. data/lib/berkshelf/resolver.rb +1 -1
  25. data/lib/berkshelf/ridley_compat.rb +1 -1
  26. data/lib/berkshelf/shell.rb +1 -0
  27. data/lib/berkshelf/source.rb +6 -5
  28. data/lib/berkshelf/ssl_policies.rb +1 -3
  29. data/lib/berkshelf/thor.rb +1 -1
  30. data/lib/berkshelf/thor_ext.rb +1 -1
  31. data/lib/berkshelf/uploader.rb +4 -2
  32. data/lib/berkshelf/version.rb +1 -1
  33. data/lib/berkshelf/visualizer.rb +1 -1
  34. data/spec/config/knife.rb +1 -1
  35. data/spec/support/chef_server.rb +2 -2
  36. data/spec/unit/berkshelf/berksfile_spec.rb +7 -7
  37. data/spec/unit/berkshelf/cli_spec.rb +1 -2
  38. data/spec/unit/berkshelf/community_rest_spec.rb +1 -1
  39. data/spec/unit/berkshelf/dependency_spec.rb +5 -5
  40. data/spec/unit/berkshelf/downloader_spec.rb +4 -8
  41. data/spec/unit/berkshelf/locations/base_spec.rb +1 -2
  42. data/spec/unit/berkshelf/locations/path_spec.rb +1 -2
  43. data/spec/unit/berkshelf/lockfile_spec.rb +9 -18
  44. data/spec/unit/berkshelf/ridley_compat_spec.rb +1 -1
  45. data/spec/unit/berkshelf/source_spec.rb +8 -7
  46. data/spec/unit/berkshelf/ssl_policies_spec.rb +3 -5
  47. data/spec/unit/berkshelf/uploader_spec.rb +6 -10
  48. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7106f564a5687739b6b869ddb82caab720210cb55ceaec843de5864321752591
4
- data.tar.gz: 4196d7280ddf0bcec16c38c6cde5b9829a8e7d37b3aed818671e23294d1af301
3
+ metadata.gz: 1f8c64894fa5e6b2ec2e82b6cc2f4835d67faf33204e5bf1412e4a5eea9fb0b0
4
+ data.tar.gz: 3dd04763b8ac3735045e7296e498d112dcba3d34fef9c32263f7f8b557faa149
5
5
  SHA512:
6
- metadata.gz: ba89f50812a6ffa647fc6c9cb349ce169e9fbb2c641d635157ed4410e75363f5eb2a4ab817002de907965bde4234fd9d7930dfe1a3f76bd8997aa4f2efe30a72
7
- data.tar.gz: 51c592e399c3213ec72755dca557b7926e1d8abd14659bcc6e2547d032b018eac8c4b3fb69037e4c26fefe7611b0d3c96465af6fe7f67e62915107476b6018d7
6
+ metadata.gz: 16a792fea670f247f48880b806f47fa2c50c55aa5cc1c255f2a7f47232adea30eb6360c7f2c957b51c380555dc9aaa6ec242f657ec88101dc5804a4147220954
7
+ data.tar.gz: 15e850ce857ec01c3b42f319fc159169d7211bf5eb2ed828dec7b4010607860ba47abab36269f1a8fd83817e3310a5b299ed2a32f6de8e7ca4ff412e8534fb51
data/Gemfile CHANGED
@@ -13,6 +13,7 @@ end
13
13
  group :development do
14
14
  # these all deliberately float because berkshelf has a Gemfile.lock that
15
15
  # equality pins them. temporarily pin as necessary for API breaks.
16
+ gem "chef-bin" # for the proxy tests
16
17
  gem "aruba", ">= 0.10.0"
17
18
  gem "cucumber-expressions", "= 5.0.13"
18
19
  gem "chef-zero", ">= 4.0"
data/Rakefile CHANGED
@@ -35,7 +35,7 @@ begin
35
35
  rescue LoadError
36
36
  end
37
37
 
38
- task default: [:spec, :features]
38
+ task default: %i{spec features}
39
39
  task :ci do
40
40
  ENV["CI"] = "true"
41
41
  Rake::Task[:spec].invoke
@@ -23,7 +23,7 @@ JSON.create_id = nil
23
23
 
24
24
  require_relative "berkshelf/core_ext"
25
25
  require_relative "berkshelf/thor_ext"
26
- require "berkshelf/chef_config_compat"
26
+ require_relative "berkshelf/chef_config_compat"
27
27
 
28
28
  module Berkshelf
29
29
  Encoding.default_external = Encoding::UTF_8
@@ -1,4 +1,4 @@
1
- require "berkshelf/ridley_compat"
1
+ require_relative "../ridley_compat"
2
2
 
3
3
  module Berkshelf
4
4
  module APIClient
@@ -19,7 +19,8 @@ module Berkshelf
19
19
  response.each do |name, versions|
20
20
  versions.each do |version, attributes|
21
21
  attributes[:location_path] = @url
22
- cookbooks << RemoteCookbook.new(name, version, attributes) end
22
+ cookbooks << RemoteCookbook.new(name, version, attributes)
23
+ end
23
24
  end
24
25
  end
25
26
  rescue Ridley::Errors::HTTPNotFound
@@ -1,4 +1,4 @@
1
- require "berkshelf/ridley_compat"
1
+ require_relative "../ridley_compat"
2
2
 
3
3
  module Berkshelf
4
4
  module APIClient
@@ -13,7 +13,7 @@ module Berkshelf
13
13
  def from_options(options = {})
14
14
  options[:berksfile] ||= File.join(Dir.pwd, Berkshelf::DEFAULT_FILENAME)
15
15
  symbolized = Hash[options.map { |k, v| [k.to_sym, v] }]
16
- from_file(options[:berksfile], symbolized.select { |k,| [:except, :only, :delete].include? k })
16
+ from_file(options[:berksfile], symbolized.select { |k,| %i{except only delete}.include? k })
17
17
  end
18
18
 
19
19
  # @param [#to_s] file
@@ -66,8 +66,8 @@ module Berkshelf
66
66
  # group to be installed and all others to be ignored
67
67
  def initialize(path, options = {})
68
68
  @filepath = File.expand_path(path)
69
- @dependencies = Hash.new
70
- @sources = Hash.new
69
+ @dependencies = {}
70
+ @sources = {}
71
71
  @delete = options[:delete]
72
72
 
73
73
  # defaults for what solvers to use
@@ -146,7 +146,7 @@ module Berkshelf
146
146
  # @see PathLocation
147
147
  # @see GitLocation
148
148
  def cookbook(*args)
149
- options = args.last.is_a?(Hash) ? args.pop : Hash.new
149
+ options = args.last.is_a?(Hash) ? args.pop : {}
150
150
  name, constraint = args
151
151
 
152
152
  options[:path] &&= File.expand_path(options[:path], File.dirname(filepath))
@@ -176,10 +176,10 @@ module Berkshelf
176
176
  # @option options [String] :path
177
177
  # path to the metadata file
178
178
  def metadata(options = {})
179
- path = options[:path] || File.dirname(filepath)
179
+ path = options[:path] || File.dirname(filepath)
180
180
 
181
181
  loader = Chef::Cookbook::CookbookVersionLoader.new(path)
182
- loader.load_cookbooks
182
+ loader.load!
183
183
  cookbook_version = loader.cookbook_version
184
184
  metadata = cookbook_version.metadata
185
185
 
@@ -282,7 +282,7 @@ module Berkshelf
282
282
  if @dependencies[name]
283
283
  # Only raise an exception if the dependency is a true duplicate
284
284
  groups = (options[:group].nil? || options[:group].empty?) ? [:default] : options[:group]
285
- if !(@dependencies[name].groups & groups).empty?
285
+ unless (@dependencies[name].groups & groups).empty?
286
286
  raise DuplicateDependencyDefined.new(name)
287
287
  end
288
288
  end
@@ -500,7 +500,7 @@ module Berkshelf
500
500
  latest = cookbooks.select do |cookbook|
501
501
  (include_non_satisfying || dependency.version_constraint.satisfies?(cookbook.version)) &&
502
502
  Semverse::Version.coerce(cookbook.version) > dependency.locked_version
503
- end.sort_by { |cookbook| cookbook.version }.last
503
+ end.sort_by(&:version).last
504
504
 
505
505
  unless latest.nil?
506
506
  hash[name] ||= {
@@ -659,7 +659,7 @@ module Berkshelf
659
659
  files.reject! { |file_path| chefignore.ignored?(file_path) }
660
660
 
661
661
  # convert Pathname objects back to strings
662
- files.map! { |f| f.to_s }
662
+ files.map!(&:to_s)
663
663
 
664
664
  # copy each file to destination
665
665
  files.each do |rpath|
@@ -748,6 +748,7 @@ module Berkshelf
748
748
  # @return [true]
749
749
  def validate_lockfile_present!
750
750
  raise LockfileNotFound unless lockfile.present?
751
+
751
752
  true
752
753
  end
753
754
 
@@ -761,6 +762,7 @@ module Berkshelf
761
762
  # @return [true]
762
763
  def validate_lockfile_trusted!
763
764
  raise LockfileOutOfSync unless lockfile.trusted?
765
+
764
766
  true
765
767
  end
766
768
 
@@ -1,6 +1,6 @@
1
1
  require "chef/cookbook/cookbook_version_loader"
2
2
  require "chef/cookbook/syntax_check"
3
- require "berkshelf/errors"
3
+ require_relative "errors"
4
4
  require "chef/json_compat"
5
5
 
6
6
  module Berkshelf
@@ -66,7 +66,7 @@ module Berkshelf
66
66
  @loader ||=
67
67
  begin
68
68
  loader = Chef::Cookbook::CookbookVersionLoader.new(@path)
69
- loader.load_cookbooks
69
+ loader.load!
70
70
  loader
71
71
  end
72
72
  end
@@ -151,7 +151,8 @@ module Berkshelf
151
151
  def validate
152
152
  raise IOError, "No Cookbook found at: #{path}" unless path.exist?
153
153
 
154
- syntax_checker = Chef::Cookbook::SyntaxCheck.for_cookbook(cookbook_name, path)
154
+ syntax_checker = Chef::Cookbook::SyntaxCheck.new(path.to_path)
155
+
155
156
  unless syntax_checker.validate_ruby_files
156
157
  raise Berkshelf::Errors::CookbookSyntaxError, "Invalid ruby files in cookbook: #{cookbook_name} (#{version})."
157
158
  end
@@ -166,6 +167,7 @@ module Berkshelf
166
167
  json_file = "#{path}/metadata.json"
167
168
  rb_file = "#{path}/metadata.rb"
168
169
  return nil if File.exist?(json_file)
170
+
169
171
  md = Chef::Cookbook::Metadata.new
170
172
  md.from_file(rb_file)
171
173
  f = File.open(json_file, "w")
@@ -1,5 +1,5 @@
1
- require "berkshelf/api_client/remote_cookbook"
2
- require "berkshelf/cached_cookbook"
1
+ require_relative "api_client/remote_cookbook"
2
+ require_relative "cached_cookbook"
3
3
 
4
4
  module Berkshelf
5
5
  # Shim to look like a Berkshelf::APIClient but for a chef repo folder.
@@ -15,8 +15,10 @@ module Berkshelf
15
15
  def universe
16
16
  Dir.entries(cookbooks_path).sort.each_with_object([]) do |entry, cookbooks|
17
17
  next if entry[0] == "." # Skip hidden folders.
18
+
18
19
  entry_path = "#{cookbooks_path}/#{entry}"
19
20
  next unless File.directory?(entry_path) # Skip non-dirs.
21
+
20
22
  cookbook = begin
21
23
  Berkshelf::CachedCookbook.from_path(entry_path)
22
24
  rescue IOError
@@ -1,4 +1,4 @@
1
- require "berkshelf"
1
+ require_relative "../berkshelf"
2
2
  require_relative "config"
3
3
  require_relative "commands/shelf"
4
4
 
@@ -13,7 +13,7 @@ module Berkshelf
13
13
  else
14
14
  Berkshelf.formatter.msg "Cookbooks in the Berkshelf shelf:"
15
15
  cookbooks.sort.each do |cookbook, versions|
16
- Berkshelf.formatter.msg(" * #{cookbook} (#{versions.sort.join(', ')})")
16
+ Berkshelf.formatter.msg(" * #{cookbook} (#{versions.sort.join(", ")})")
17
17
  end
18
18
  end
19
19
  end
@@ -69,10 +69,10 @@ module Berkshelf
69
69
  # how often we should pause between retries
70
70
  def initialize(uri = V1_API, options = {})
71
71
  options = options.dup
72
- options = { retries: 5, retry_interval: 0.5, ssl: Berkshelf::Config.instance.ssl }.merge(options)
73
- @api_uri = uri
72
+ options = { retries: 5, retry_interval: 0.5, ssl: Berkshelf::Config.instance.ssl }.merge(options)
73
+ @api_uri = uri
74
74
  options[:server_url] = uri
75
- @retries = options.delete(:retries)
75
+ @retries = options.delete(:retries)
76
76
  @retry_interval = options.delete(:retry_interval)
77
77
 
78
78
  @connection = Berkshelf::RidleyCompatJSON.new(options)
@@ -122,7 +122,7 @@ module Berkshelf
122
122
  default :email, nil
123
123
  default :license, nil
124
124
  end
125
- default :allowed_licenses, Array.new
125
+ default :allowed_licenses, []
126
126
  default :raise_license_exception, false
127
127
  config_context :vagrant do
128
128
  config_context :vm do
@@ -1,3 +1,3 @@
1
1
  Dir["#{File.dirname(__FILE__)}/core_ext/*.rb"].sort.each do |path|
2
- require_relative "core_ext/#{File.basename(path, '.rb')}"
2
+ require_relative "core_ext/#{File.basename(path, ".rb")}"
3
3
  end
@@ -171,7 +171,7 @@ module Berkshelf
171
171
  "#{name} (#{version_constraint})",
172
172
  "locked_version: #{locked_version.inspect}",
173
173
  "groups: #{groups}",
174
- "location: #{location || 'default'}>",
174
+ "location: #{location || "default"}>",
175
175
  ].join(", ")
176
176
  end
177
177
 
@@ -1,6 +1,7 @@
1
1
  require "net/http"
2
2
  require "mixlib/archive"
3
- require "berkshelf/ssl_policies"
3
+ require_relative "ssl_policies"
4
+ require "faraday"
4
5
 
5
6
  module Berkshelf
6
7
  class Downloader
@@ -120,7 +121,7 @@ module Berkshelf
120
121
  )
121
122
 
122
123
  begin
123
- url = URI(github_client.archive_link(cookbook_uri.path.gsub(/^\//, ""), ref: "v#{version}"))
124
+ url = URI(github_client.archive_link(cookbook_uri.path.gsub(%r{^/}, ""), ref: "v#{version}"))
124
125
  rescue Octokit::Unauthorized
125
126
  return nil
126
127
  end
@@ -131,6 +132,7 @@ module Berkshelf
131
132
  http.verify_mode = (options["ssl_verify"].nil? || options["ssl_verify"]) ? OpenSSL::SSL::VERIFY_PEER : OpenSSL::SSL::VERIFY_NONE
132
133
  resp = http.get(url.request_uri)
133
134
  return nil unless resp.is_a?(Net::HTTPSuccess)
135
+
134
136
  open(archive_path, "wb") { |file| file.write(resp.body) }
135
137
 
136
138
  Mixlib::Archive.new(archive_path).extract(unpack_dir)
@@ -183,6 +185,7 @@ module Berkshelf
183
185
 
184
186
  resp = connection.get(cookbook_uri.request_uri + "&private_token=" + options["private_token"])
185
187
  return nil unless resp.status == 200
188
+
186
189
  open(archive_path, "wb") { |file| file.write(resp.body) }
187
190
 
188
191
  Mixlib::Archive.new(archive_path).extract(unpack_dir)
@@ -83,7 +83,7 @@ module Berkshelf
83
83
 
84
84
  def to_s
85
85
  @original_exception.to_s +
86
- "Unable to find a solution for demands: #{demands.join(', ')}"
86
+ "Unable to find a solution for demands: #{demands.join(", ")}"
87
87
  end
88
88
 
89
89
  alias_method :message, :to_s
@@ -372,7 +372,7 @@ module Berkshelf
372
372
 
373
373
  def to_s
374
374
  "Unknown license: '#{license}'\n" +
375
- "Available licenses: #{CookbookGenerator::LICENSES.join(', ')}"
375
+ "Available licenses: #{CookbookGenerator::LICENSES.join(", ")}"
376
376
  end
377
377
 
378
378
  alias_method :message, :to_s
@@ -68,7 +68,7 @@ module Berkshelf
68
68
 
69
69
  hash.each do |name, info|
70
70
  info["remote"].each do |remote_source, remote_version|
71
- out = " * #{name} (#{info['local']} => #{remote_version})"
71
+ out = " * #{name} (#{info["local"]} => #{remote_version})"
72
72
 
73
73
  unless remote_source.default?
74
74
  out << " [#{remote_source.uri}]"
@@ -12,7 +12,7 @@ module Berkshelf
12
12
  messages: [],
13
13
  warnings: [],
14
14
  }
15
- @cookbooks = Hash.new
15
+ @cookbooks = {}
16
16
 
17
17
  Berkshelf.ui.mute { super }
18
18
  end
@@ -1,4 +1,4 @@
1
- require "berkshelf/api-client"
1
+ require_relative "api-client"
2
2
  require "concurrent/executors"
3
3
  require "concurrent/future"
4
4
 
@@ -228,7 +228,7 @@ module Berkshelf
228
228
 
229
229
  # @return [Array<CachedCookbook>]
230
230
  def cached
231
- graph.locks.values.collect { |dependency| dependency.cached_cookbook }
231
+ graph.locks.values.collect(&:cached_cookbook)
232
232
  end
233
233
 
234
234
  # The list of dependencies constrained in this lockfile.
@@ -570,7 +570,7 @@ module Berkshelf
570
570
  end
571
571
  end
572
572
 
573
- graph << " #{name} (#{info['locked_version']})\n"
573
+ graph << " #{name} (#{info["locked_version"]})\n"
574
574
  end
575
575
 
576
576
  contents = "#{dependencies}\n#{graph}"
@@ -3,7 +3,7 @@ module Berkshelf
3
3
  def initialize(device = STDOUT)
4
4
  super
5
5
  self.level = Logger::WARN
6
- @filter_params = Array.new
6
+ @filter_params = []
7
7
  end
8
8
 
9
9
  # Reimplements Logger#add adding message filtering. The info,
@@ -28,6 +28,7 @@ module Berkshelf
28
28
  if @logdev.nil? || severity < (@level)
29
29
  return true
30
30
  end
31
+
31
32
  progname ||= @progname
32
33
  if message.nil?
33
34
  if block_given?
@@ -38,7 +39,8 @@ module Berkshelf
38
39
  end
39
40
  end
40
41
  @logdev.write(
41
- format_message(format_severity(severity), Time.now, progname, filter(message)))
42
+ format_message(format_severity(severity), Time.now, progname, filter(message))
43
+ )
42
44
  true
43
45
  end
44
46
 
@@ -1,4 +1,4 @@
1
- require "berkshelf/shell_out"
1
+ require_relative "../shell_out"
2
2
 
3
3
  module Berkshelf
4
4
  module Mixin
@@ -21,7 +21,7 @@ module Berkshelf
21
21
  def initialize(berksfile, demands = [])
22
22
  @berksfile = berksfile
23
23
  @graph = Graph.new
24
- @demands = Array.new
24
+ @demands = []
25
25
 
26
26
  Array(demands).each { |demand| add_demand(demand) }
27
27
  compute_solver_engine(berksfile)
@@ -1,7 +1,7 @@
1
1
  require "chef/server_api"
2
2
  require "chef/http/simple_json"
3
3
  require "chef/http/simple"
4
- require "berkshelf/api_client/errors"
4
+ require_relative "api_client/errors"
5
5
  require "chef/config"
6
6
  require "chef/cookbook_manifest"
7
7
 
@@ -15,6 +15,7 @@ module Berkshelf
15
15
 
16
16
  def say(*args)
17
17
  return if quiet?
18
+
18
19
  super(*args)
19
20
  end
20
21
  alias_method :info, :say
@@ -1,6 +1,6 @@
1
- require "berkshelf/api-client"
2
- require "berkshelf/chef_repo_universe"
3
- require "berkshelf/ssl_policies"
1
+ require_relative "api-client"
2
+ require_relative "chef_repo_universe"
3
+ require_relative "ssl_policies"
4
4
  require "openssl"
5
5
 
6
6
  module Berkshelf
@@ -84,7 +84,7 @@ module Berkshelf
84
84
  def build_universe
85
85
  @universe = api_client.universe
86
86
  rescue => ex
87
- @universe = Array.new
87
+ @universe = []
88
88
  raise ex
89
89
  end
90
90
 
@@ -154,7 +154,7 @@ module Berkshelf
154
154
  end
155
155
 
156
156
  def inspect
157
- "#<#{self.class.name} #{type}: #{uri.to_s.inspect}, #{options.map { |k, v| "#{k}: #{v.inspect}" }.join(', ')}>"
157
+ "#<#{self.class.name} #{type}: #{uri.to_s.inspect}, #{options.map { |k, v| "#{k}: #{v.inspect}" }.join(", ")}>"
158
158
  end
159
159
 
160
160
  def hash
@@ -163,6 +163,7 @@ module Berkshelf
163
163
 
164
164
  def ==(other)
165
165
  return false unless other.is_a?(self.class)
166
+
166
167
  type == other.type && uri == other.uri
167
168
  end
168
169
 
@@ -8,9 +8,7 @@ module Berkshelf
8
8
  attr_reader :store
9
9
 
10
10
  def initialize
11
- @store = OpenSSL::X509::Store.new.tap do |store|
12
- store.set_default_paths
13
- end
11
+ @store = OpenSSL::X509::Store.new.tap(&:set_default_paths)
14
12
 
15
13
  set_custom_certs if ::File.exist?(trusted_certs_dir)
16
14
  end
@@ -1 +1 @@
1
- require "berkshelf/cli"
1
+ require_relative "cli"
@@ -1,3 +1,3 @@
1
1
  Dir["#{File.dirname(__FILE__)}/thor_ext/*.rb"].sort.each do |path|
2
- require_relative "thor_ext/#{File.basename(path, '.rb')}"
2
+ require_relative "thor_ext/#{File.basename(path, ".rb")}"
3
3
  end
@@ -32,7 +32,7 @@ module Berkshelf
32
32
  Berkshelf.log.debug " No names given, using all cookbooks"
33
33
  filtered_cookbooks
34
34
  else
35
- Berkshelf.log.debug " Names given (#{names.join(', ')})"
35
+ Berkshelf.log.debug " Names given (#{names.join(", ")})"
36
36
  names.map { |name| lockfile.retrieve(name) }
37
37
  end
38
38
 
@@ -75,13 +75,15 @@ module Berkshelf
75
75
  [ cookbook_version ],
76
76
  force: options[:force],
77
77
  concurrency: 1, # sadly
78
- rest: connection
78
+ rest: connection,
79
+ skip_syntax_check: options[:skip_syntax_check]
79
80
  ).upload_cookbooks
80
81
  Berkshelf.formatter.uploaded(cookbook, connection)
81
82
  rescue Chef::Exceptions::CookbookFrozen
82
83
  if options[:halt_on_frozen]
83
84
  raise FrozenCookbook.new(cookbook)
84
85
  end
86
+
85
87
  Berkshelf.formatter.skipping(cookbook, connection)
86
88
  end
87
89
  ensure
@@ -1,3 +1,3 @@
1
1
  module Berkshelf
2
- VERSION = "7.0.8".freeze
2
+ VERSION = "7.0.9".freeze
3
3
  end
@@ -1,6 +1,6 @@
1
1
  require "set"
2
2
  require "tempfile"
3
- require "berkshelf/shell_out"
3
+ require_relative "shell_out"
4
4
 
5
5
  module Berkshelf
6
6
  class Visualizer
@@ -6,5 +6,5 @@ validation_client_name "validator"
6
6
  validation_key File.expand_path("spec/config/validator.pem")
7
7
  chef_server_url "http://localhost:26310"
8
8
  cache_type "BasicFile"
9
- cache_options( path: "#{ENV['HOME']}/.chef/checksums" )
9
+ cache_options( path: "#{ENV["HOME"]}/.chef/checksums" )
10
10
  cookbook_path []
@@ -10,11 +10,11 @@ module Berkshelf
10
10
  attr_reader :server
11
11
 
12
12
  def clear_request_log
13
- @request_log = Array.new
13
+ @request_log = []
14
14
  end
15
15
 
16
16
  def request_log
17
- @request_log ||= Array.new
17
+ @request_log ||= []
18
18
  end
19
19
 
20
20
  def server_url
@@ -200,10 +200,10 @@ describe Berkshelf::Berksfile do
200
200
 
201
201
  describe "#dependencies" do
202
202
  let(:groups) do
203
- [
204
- :nautilus,
205
- :skarner,
206
- ]
203
+ %i{
204
+ nautilus
205
+ skarner
206
+ }
207
207
  end
208
208
 
209
209
  it "returns all Berkshelf::Dependencys added to the instance of Berksfile" do
@@ -235,8 +235,8 @@ describe Berkshelf::Berksfile do
235
235
  describe "#groups" do
236
236
  before do
237
237
  allow(subject).to receive(:dependencies) { [dependency_one, dependency_two] }
238
- allow(dependency_one).to receive(:groups) { [:nautilus, :skarner] }
239
- allow(dependency_two).to receive(:groups) { [:nautilus, :riven] }
238
+ allow(dependency_one).to receive(:groups) { %i{nautilus skarner} }
239
+ allow(dependency_two).to receive(:groups) { %i{nautilus riven} }
240
240
  end
241
241
 
242
242
  it "returns a hash containing keys for every group a dependency is a member of" do
@@ -255,7 +255,7 @@ describe Berkshelf::Berksfile do
255
255
  describe "#add_dependency" do
256
256
  let(:name) { "cookbook_one" }
257
257
  let(:constraint) { "= 1.2.0" }
258
- let(:options) { Hash.new }
258
+ let(:options) { {} }
259
259
 
260
260
  before(:each) do
261
261
  subject.add_dependency(name, constraint, options)
@@ -13,8 +13,7 @@ module Berkshelf
13
13
  describe "#upload" do
14
14
  it "calls to upload with params if passed in cli" do
15
15
  expect(berksfile).to receive(:upload).with(cookbooks,
16
- include(skip_syntax_check: true, freeze: false)
17
- )
16
+ include(skip_syntax_check: true, freeze: false))
18
17
 
19
18
  subject.options[:skip_syntax_check] = true
20
19
  subject.options[:no_freeze] = true
@@ -68,7 +68,7 @@ describe Berkshelf::CommunityREST do
68
68
  let(:archive) { double("archive", path: "/foo/bar", unlink: true) }
69
69
 
70
70
  before do
71
- allow(subject).to receive(:stream).with(any_args()).and_return(archive)
71
+ allow(subject).to receive(:stream).with(any_args).and_return(archive)
72
72
  allow(Berkshelf::CommunityREST).to receive(:unpack)
73
73
  .and_return("/some/path")
74
74
  end
@@ -71,7 +71,7 @@ describe Berkshelf::Dependency do
71
71
  end
72
72
 
73
73
  context "given a group option containing an array of groups" do
74
- let(:groups) { [ :development, :test ] }
74
+ let(:groups) { %i{development test} }
75
75
  let(:source) { described_class.new(berksfile, cookbook_name, group: groups) }
76
76
 
77
77
  it "assigns all the groups to the group attribute" do
@@ -95,24 +95,24 @@ describe Berkshelf::Dependency do
95
95
  describe "#add_group" do
96
96
  it "stores strings as symbols" do
97
97
  subject.add_group "foo"
98
- expect(subject.groups).to eq([:default, :foo])
98
+ expect(subject.groups).to eq(%i{default foo})
99
99
  end
100
100
 
101
101
  it "does not store duplicate groups" do
102
102
  subject.add_group "bar"
103
103
  subject.add_group "bar"
104
104
  subject.add_group :bar
105
- expect(subject.groups).to eq([:default, :bar])
105
+ expect(subject.groups).to eq(%i{default bar})
106
106
  end
107
107
 
108
108
  it "adds multiple groups" do
109
109
  subject.add_group "baz", "quux"
110
- expect(subject.groups).to eq([:default, :baz, :quux])
110
+ expect(subject.groups).to eq(%i{default baz quux})
111
111
  end
112
112
 
113
113
  it "handles multiple groups as an array" do
114
114
  subject.add_group %w{baz quux}
115
- expect(subject.groups).to eq([:default, :baz, :quux])
115
+ expect(subject.groups).to eq(%i{default baz quux})
116
116
  end
117
117
  end
118
118
 
@@ -5,14 +5,12 @@ module Berkshelf
5
5
  let(:berksfile) do
6
6
  double(Berksfile,
7
7
  lockfile: lockfile,
8
- dependencies: []
9
- )
8
+ dependencies: [])
10
9
  end
11
10
 
12
11
  let(:lockfile) do
13
12
  double(Lockfile,
14
- graph: graph
15
- )
13
+ graph: graph)
16
14
  end
17
15
 
18
16
  let(:graph) { double(Lockfile::Graph, locks: {}) }
@@ -124,15 +122,13 @@ module Berkshelf
124
122
  cookbook_copyright: "user",
125
123
  cookbook_email: "user@example.com",
126
124
  cookbook_license: "apachev2",
127
- trusted_certs_dir: self_signed_crt_path
128
- )
125
+ trusted_certs_dir: self_signed_crt_path)
129
126
  end
130
127
 
131
128
  let(:berkshelf_config) do
132
129
  double(Config,
133
130
  ssl: double(verify: true),
134
- chef: chef_config
135
- )
131
+ chef: chef_config)
136
132
  end
137
133
 
138
134
  before do
@@ -46,8 +46,7 @@ module Berkshelf
46
46
  let(:cookbook) do
47
47
  double("cookbook",
48
48
  cookbook_name: "cookbook",
49
- version: "0.1.0"
50
- )
49
+ version: "0.1.0")
51
50
  end
52
51
 
53
52
  before do
@@ -8,8 +8,7 @@ module Berkshelf
8
8
  double("dependency",
9
9
  name: "nginx",
10
10
  version_constraint: constraint,
11
- berksfile: berksfile
12
- )
11
+ berksfile: berksfile)
13
12
  end
14
13
  let(:path) { fixtures_path.join("cookbooks", "example_cookbook") }
15
14
  let(:relative_path) { Pathname.new("../../../fixtures/cookbooks/example_cookbook") }
@@ -8,8 +8,7 @@ describe Berkshelf::Lockfile do
8
8
  let(:lock_path) { File.absolute_path("/path/to/Bacon") }
9
9
  let(:berksfile) do
10
10
  double("Berksfile",
11
- filepath: lock_path
12
- )
11
+ filepath: lock_path)
13
12
  end
14
13
 
15
14
  subject { described_class.from_berksfile(berksfile) }
@@ -77,8 +76,7 @@ describe Berkshelf::Lockfile do
77
76
  version: "1.0.0",
78
77
  location: "api",
79
78
  dependencies: {},
80
- cached_cookbook: cookbook
81
- )
79
+ cached_cookbook: cookbook)
82
80
  berksfile = double("berksfile", dependencies: [apt])
83
81
  subject.instance_variable_set(:@berksfile, berksfile)
84
82
  allow(subject).to receive(:find).with(apt).and_return(apt)
@@ -95,8 +93,7 @@ describe Berkshelf::Lockfile do
95
93
  version: "1.0.0",
96
94
  location: "api",
97
95
  dependencies: { "bacon" => "1.0.0" },
98
- cached_cookbook: cookbook
99
- )
96
+ cached_cookbook: cookbook)
100
97
  bacon = double(name: "bacon", version: "1.0.0", dependencies: {})
101
98
  berksfile = double("berksfile", dependencies: [apt])
102
99
  subject.instance_variable_set(:@berksfile, berksfile)
@@ -115,15 +112,13 @@ describe Berkshelf::Lockfile do
115
112
  version: "1.0.0",
116
113
  location: "api",
117
114
  dependencies: { "bacon" => "1.0.0" },
118
- cached_cookbook: cookbook
119
- )
115
+ cached_cookbook: cookbook)
120
116
  bacon = double("bacon",
121
117
  name: "bacon",
122
118
  version_constraint: Semverse::Constraint.new(">= 0.0.0"),
123
119
  version: "1.0.0",
124
120
  location: "api",
125
- dependencies: { "apt" => "1.0.0" }
126
- )
121
+ dependencies: { "apt" => "1.0.0" })
127
122
  berksfile = double("berksfile", dependencies: [apt])
128
123
  subject.instance_variable_set(:@berksfile, berksfile)
129
124
  allow(subject).to receive(:find).with(apt).and_return(apt)
@@ -141,8 +136,7 @@ describe Berkshelf::Lockfile do
141
136
  version: "1.0.0",
142
137
  location: "api",
143
138
  dependencies: { "bacon" => "1.0.0" },
144
- cached_cookbook: cookbook
145
- )
139
+ cached_cookbook: cookbook)
146
140
  berksfile = double("berksfile", dependencies: [apt])
147
141
  subject.instance_variable_set(:@berksfile, berksfile)
148
142
  allow(subject).to receive(:find).with(apt).and_return(apt)
@@ -177,8 +171,7 @@ describe Berkshelf::Lockfile do
177
171
  version: "1.0.0",
178
172
  location: "api",
179
173
  dependencies: {},
180
- cached_cookbook: cookbook
181
- )
174
+ cached_cookbook: cookbook)
182
175
  berksfile = double("berksfile", dependencies: [apt])
183
176
  subject.instance_variable_set(:@berksfile, berksfile)
184
177
  allow(subject).to receive(:find).with(apt).and_return(apt)
@@ -195,8 +188,7 @@ describe Berkshelf::Lockfile do
195
188
  version: "1.0.0",
196
189
  location: "api",
197
190
  dependencies: {},
198
- cached_cookbook: cookbook
199
- )
191
+ cached_cookbook: cookbook)
200
192
  apt_master = apt.dup
201
193
  allow(apt_master).to receive_messages(location: "github")
202
194
  allow(apt_master).to receive_messages(cached_cookbook: cookbook)
@@ -393,8 +385,7 @@ describe Berkshelf::Lockfile::Graph do
393
385
  name: "test-0.0.1",
394
386
  version: "0.0.1",
395
387
  cookbook_name: "test",
396
- dependencies: {}
397
- )
388
+ dependencies: {})
398
389
  subject.update([cookbook])
399
390
 
400
391
  expect(subject.locks.keys).to include(cookbook.cookbook_name)
@@ -2,7 +2,7 @@ require "spec_helper"
2
2
  require "chef/cookbook_manifest"
3
3
 
4
4
  describe Berkshelf::RidleyCompat do
5
- let(:opts) { Hash.new }
5
+ let(:opts) { {} }
6
6
 
7
7
  subject { described_class.new(opts) }
8
8
 
@@ -110,12 +110,12 @@ module Berkshelf
110
110
  # Check all baseline values.
111
111
  its([:timeout]) { is_expected.to eq 30 }
112
112
  its([:open_timeout]) { is_expected.to eq 3 }
113
- its([:ssl, :verify]) { is_expected.to be true }
114
- its([:ssl, :ca_file]) { is_expected.to be_nil }
115
- its([:ssl, :ca_path]) { is_expected.to be_nil }
116
- its([:ssl, :client_cert]) { is_expected.to be_nil }
117
- its([:ssl, :client_key]) { is_expected.to be_nil }
118
- its([:ssl, :cert_store]) { is_expected.to be_a(OpenSSL::X509::Store) }
113
+ its(%i{ssl verify}) { is_expected.to be true }
114
+ its(%i{ssl ca_file}) { is_expected.to be_nil }
115
+ its(%i{ssl ca_path}) { is_expected.to be_nil }
116
+ its(%i{ssl client_cert}) { is_expected.to be_nil }
117
+ its(%i{ssl client_key}) { is_expected.to be_nil }
118
+ its(%i{ssl cert_store}) { is_expected.to be_a(OpenSSL::X509::Store) }
119
119
  end
120
120
 
121
121
  context "with a string argument and options" do
@@ -198,7 +198,8 @@ module Berkshelf
198
198
  [
199
199
  APIClient::RemoteCookbook.new("cb1", "1.0.8"),
200
200
  APIClient::RemoteCookbook.new("cb1", "1.0.22"),
201
- ] end
201
+ ]
202
+ end
202
203
 
203
204
  before do
204
205
  allow_any_instance_of(APIClient::Connection).to receive(:universe).and_return(cookbooks)
@@ -16,19 +16,17 @@ describe Berkshelf::SSLPolicy do
16
16
  cookbook_copyright: "user",
17
17
  cookbook_email: "user@example.com",
18
18
  cookbook_license: "apachev2",
19
- trusted_certs_dir: self_signed_crt_path
20
- )
19
+ trusted_certs_dir: self_signed_crt_path)
21
20
  end
22
21
 
23
22
  let(:berkshelf_config) do
24
23
  double(Berkshelf::Config,
25
24
  ssl: double(verify: true),
26
- chef: chef_config
27
- )
25
+ chef: chef_config)
28
26
  end
29
27
 
30
28
  subject do
31
- Berkshelf::SSLPolicy.new()
29
+ Berkshelf::SSLPolicy.new
32
30
  end
33
31
 
34
32
  before do
@@ -5,14 +5,12 @@ module Berkshelf
5
5
  let(:berksfile) do
6
6
  double(Berksfile,
7
7
  lockfile: lockfile,
8
- dependencies: []
9
- )
8
+ dependencies: [])
10
9
  end
11
10
 
12
11
  let(:lockfile) do
13
12
  double(Lockfile,
14
- graph: graph
15
- )
13
+ graph: graph)
16
14
  end
17
15
 
18
16
  let(:graph) { double(Lockfile::Graph, locks: {}) }
@@ -48,7 +46,7 @@ module Berkshelf
48
46
  end
49
47
 
50
48
  describe "#run" do
51
- let(:options) { Hash.new }
49
+ let(:options) { {} }
52
50
 
53
51
  let(:chef_config) do
54
52
  double(Berkshelf::ChefConfigCompat,
@@ -61,15 +59,13 @@ module Berkshelf
61
59
  cookbook_copyright: "user",
62
60
  cookbook_email: "user@example.com",
63
61
  cookbook_license: "apachev2",
64
- trusted_certs_dir: self_signed_crt_path
65
- )
62
+ trusted_certs_dir: self_signed_crt_path)
66
63
  end
67
64
 
68
65
  let(:berkshelf_config) do
69
66
  double(Config,
70
67
  ssl: double(verify: true),
71
- chef: chef_config
72
- )
68
+ chef: chef_config)
73
69
  end
74
70
 
75
71
  let(:default_ridley_options) do
@@ -211,7 +207,7 @@ module Berkshelf
211
207
  subject { described_class.new(berksfile).send(:lookup_dependencies, "runit") }
212
208
 
213
209
  it "returns array of cookbook's dependencies and their dependencies" do
214
- expect(subject).to eq ["build-essential", "yum", "yum-epel"]
210
+ expect(subject).to eq %w{build-essential yum yum-epel}
215
211
  end
216
212
  end
217
213
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: berkshelf
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.8
4
+ version: 7.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamie Winsor
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2019-03-18 00:00:00.000000000 Z
15
+ date: 2020-01-27 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: mixlib-shellout