cookbook-omnifetch 0.7.0 → 0.10.0

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 (41) hide show
  1. checksums.yaml +5 -5
  2. data/lib/cookbook-omnifetch.rb +17 -13
  3. data/lib/cookbook-omnifetch/artifactory.rb +10 -5
  4. data/lib/cookbook-omnifetch/artifactserver.rb +1 -1
  5. data/lib/cookbook-omnifetch/base.rb +1 -1
  6. data/lib/cookbook-omnifetch/chef_server.rb +14 -3
  7. data/lib/cookbook-omnifetch/chef_server_artifact.rb +15 -4
  8. data/lib/cookbook-omnifetch/git.rb +3 -3
  9. data/lib/cookbook-omnifetch/integration.rb +6 -1
  10. data/lib/cookbook-omnifetch/metadata_based_installer.rb +14 -13
  11. data/lib/cookbook-omnifetch/path.rb +1 -1
  12. data/lib/cookbook-omnifetch/threaded_job_queue.rb +1 -1
  13. data/lib/cookbook-omnifetch/version.rb +1 -1
  14. metadata +15 -85
  15. data/.gitignore +0 -23
  16. data/.rspec +0 -1
  17. data/.travis.yml +0 -11
  18. data/Gemfile +0 -8
  19. data/README.md +0 -90
  20. data/Rakefile +0 -19
  21. data/cookbook-omnifetch.gemspec +0 -39
  22. data/spec/fixtures/cookbooks/example_cookbook-0.5.0/README.md +0 -12
  23. data/spec/fixtures/cookbooks/example_cookbook-0.5.0/metadata.rb +0 -3
  24. data/spec/fixtures/cookbooks/example_cookbook-0.5.0/recipes/default.rb +0 -8
  25. data/spec/fixtures/cookbooks/example_cookbook/.gitignore +0 -2
  26. data/spec/fixtures/cookbooks/example_cookbook/.kitchen.yml +0 -26
  27. data/spec/fixtures/cookbooks/example_cookbook/Berksfile +0 -1
  28. data/spec/fixtures/cookbooks/example_cookbook/Berksfile.lock +0 -3
  29. data/spec/fixtures/cookbooks/example_cookbook/README.md +0 -12
  30. data/spec/fixtures/cookbooks/example_cookbook/metadata.rb +0 -3
  31. data/spec/fixtures/cookbooks/example_cookbook/recipes/default.rb +0 -8
  32. data/spec/spec_helper.rb +0 -43
  33. data/spec/unit/artifactory_spec.rb +0 -64
  34. data/spec/unit/artifactserver_spec.rb +0 -116
  35. data/spec/unit/base_spec.rb +0 -87
  36. data/spec/unit/chef_server_artifact_spec.rb +0 -74
  37. data/spec/unit/chef_server_spec.rb +0 -72
  38. data/spec/unit/exceptions_spec.rb +0 -87
  39. data/spec/unit/git_spec.rb +0 -290
  40. data/spec/unit/metadata_based_installer_spec.rb +0 -137
  41. data/spec/unit/path_spec.rb +0 -119
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 64e4ca89bc3c10a6c4bf4e224bb39f5657d1cd12
4
- data.tar.gz: c16cfaa9e0b3c9eb655faa3d12a293b6ec166931
2
+ SHA256:
3
+ metadata.gz: 9491fb99bc2194cfb805a87ab4d543be68e51a4fc4c3d27e954c62e96b42df33
4
+ data.tar.gz: 1f364b47c66fe2c7ac35d45f9a343dc8a14e6eaad3050007db5c4c59f255029b
5
5
  SHA512:
6
- metadata.gz: 8e3354f49b0ed00fd5ab23f6de8dd8994419bb8e15c1d32b5dc85f960c46c1d20af45b8f2ca4cbb0e96a812a57e9a8bc04bba1907a319c13e9a6a323eda673be
7
- data.tar.gz: f7841d6c9081275526ba60ece1fd3f349b24d812d9c2bba66110a3c1da6800d0e35e2da1a304f7601e4fda6849e9f78f49c8a127f3c3fcaf4f33dc1f919db3dd
6
+ metadata.gz: bfe5d751f1891af706db45ebf57867207078876419eaa7f7629ee4ae9b5437897528782062186e2eec04cee2516dae01c602d68581b6b759f7b1a8eb7eea6fea
7
+ data.tar.gz: 6f1668723a48ca94e337e1aba18138a745b82a65008ad88c41fea1e63318120002a516334d238ad61c3faf8b623f5625220a291fa53fd1e17ae6229151389b8d
@@ -1,14 +1,14 @@
1
- require "cookbook-omnifetch/version"
2
- require "cookbook-omnifetch/integration"
3
-
4
- require "cookbook-omnifetch/base"
5
- require "cookbook-omnifetch/git"
6
- require "cookbook-omnifetch/github"
7
- require "cookbook-omnifetch/path"
8
- require "cookbook-omnifetch/artifactserver"
9
- require "cookbook-omnifetch/artifactory"
10
- require "cookbook-omnifetch/chef_server"
11
- require "cookbook-omnifetch/chef_server_artifact"
1
+ require_relative "cookbook-omnifetch/version"
2
+ require_relative "cookbook-omnifetch/integration"
3
+
4
+ require_relative "cookbook-omnifetch/base"
5
+ require_relative "cookbook-omnifetch/git"
6
+ require_relative "cookbook-omnifetch/github"
7
+ require_relative "cookbook-omnifetch/path"
8
+ require_relative "cookbook-omnifetch/artifactserver"
9
+ require_relative "cookbook-omnifetch/artifactory"
10
+ require_relative "cookbook-omnifetch/chef_server"
11
+ require_relative "cookbook-omnifetch/chef_server_artifact"
12
12
 
13
13
  module CookbookOmnifetch
14
14
 
@@ -30,7 +30,7 @@ module CookbookOmnifetch
30
30
  #
31
31
  # @return [~BaseLocation, nil]
32
32
  def self.init(dependency, options = {})
33
- if klass = klass_from_options(options)
33
+ if klass = klass_from_options(options) # rubocop: disable Lint/AssignmentInCondition
34
34
  klass.new(dependency, options)
35
35
  else
36
36
  nil
@@ -124,6 +124,10 @@ module CookbookOmnifetch
124
124
  integration.chef_server_download_concurrency
125
125
  end
126
126
 
127
+ def self.default_chef_server_http_client
128
+ integration.default_chef_server_http_client
129
+ end
130
+
127
131
  # Returns true or false if the given path contains a Chef Cookbook
128
132
  #
129
133
  # @param [#to_s] path
@@ -131,7 +135,7 @@ module CookbookOmnifetch
131
135
  #
132
136
  # @return [Boolean]
133
137
  def self.cookbook?(path)
134
- File.exists?(File.join(path, "metadata.json")) || File.exists?(File.join(path, "metadata.rb"))
138
+ File.exist?(File.join(path, "metadata.json")) || File.exist?(File.join(path, "metadata.rb"))
135
139
  end
136
140
 
137
141
  class << self
@@ -1,4 +1,4 @@
1
- require "cookbook-omnifetch/base"
1
+ require_relative "base"
2
2
 
3
3
  require "mixlib/archive"
4
4
  require "tmpdir"
@@ -15,7 +15,12 @@ module CookbookOmnifetch
15
15
  super
16
16
  @uri ||= options[:artifactory]
17
17
  @cookbook_version = options[:version]
18
- @http_client = options[:http_client]
18
+ if options[:http_client]
19
+ @http_client = options[:http_client]
20
+ else
21
+ headers = { "X-Jfrog-Art-API" => Chef::Config.artifactory_api_key || ENV["ARTIFACTORY_API_KEY"] }
22
+ @http_client = Chef::HTTP::Simple.new(uri, headers: headers)
23
+ end
19
24
  end
20
25
 
21
26
  def repo_host
@@ -93,13 +98,13 @@ module CookbookOmnifetch
93
98
  "#to_lock must be implemented on #{self.class.name}!"
94
99
  end
95
100
 
96
- # The path where all pristine tarballs from an artifactserver are held.
101
+ # The path where all pristine tarballs from an artifactory are held.
97
102
  # Tarballs are moved/swapped into this location once they have been staged
98
103
  # in a co-located staging directory.
99
104
  #
100
105
  # @return [Pathname]
101
106
  def cache_root
102
- Pathname.new(CookbookOmnifetch.cache_path).join(".cache", "artifactserver")
107
+ Pathname.new(CookbookOmnifetch.cache_path).join(".cache", "artifactory")
103
108
  end
104
109
 
105
110
  # The path where tarballs are downloaded to and unzipped. On certain platforms
@@ -113,7 +118,7 @@ module CookbookOmnifetch
113
118
  #
114
119
  # @return [Pathname]
115
120
  def staging_root
116
- Pathname.new(CookbookOmnifetch.cache_path).join(".cache_tmp", "artifactserver")
121
+ Pathname.new(CookbookOmnifetch.cache_path).join(".cache_tmp", "artifactory")
117
122
  end
118
123
 
119
124
  # The path where the pristine tarball is cached
@@ -1,4 +1,4 @@
1
- require "cookbook-omnifetch/base"
1
+ require_relative "base"
2
2
 
3
3
  require "mixlib/archive"
4
4
  require "tmpdir"
@@ -1,4 +1,4 @@
1
- require "cookbook-omnifetch/exceptions"
1
+ require_relative "exceptions"
2
2
 
3
3
  module CookbookOmnifetch
4
4
  class BaseLocation
@@ -1,5 +1,5 @@
1
- require "cookbook-omnifetch/base"
2
- require "cookbook-omnifetch/metadata_based_installer"
1
+ require_relative "base"
2
+ require_relative "metadata_based_installer"
3
3
 
4
4
  module CookbookOmnifetch
5
5
  class ChefServerLocation < BaseLocation
@@ -10,7 +10,7 @@ module CookbookOmnifetch
10
10
  def initialize(dependency, options = {})
11
11
  super
12
12
  @cookbook_version = options[:version]
13
- @http_client = options[:http_client]
13
+ @http_client = options[:http_client] || default_chef_server_http_client
14
14
  @uri ||= options[:chef_server]
15
15
  end
16
16
 
@@ -57,5 +57,16 @@ module CookbookOmnifetch
57
57
  "#{dependency.name}-#{cookbook_version}"
58
58
  end
59
59
 
60
+ # @see BaseLocation#cached_cookbook
61
+ def cached_cookbook
62
+ @cached_cookbook ||= CookbookOmnifetch.cached_cookbook_class.from_path(install_path)
63
+ end
64
+
65
+ private
66
+
67
+ def default_chef_server_http_client
68
+ CookbookOmnifetch.default_chef_server_http_client
69
+ end
70
+
60
71
  end
61
72
  end
@@ -1,5 +1,5 @@
1
- require "cookbook-omnifetch/base"
2
- require "cookbook-omnifetch/metadata_based_installer"
1
+ require_relative "base"
2
+ require_relative "metadata_based_installer"
3
3
 
4
4
  module CookbookOmnifetch
5
5
  # This location allows fetching from the `cookbook_artifacts/` API where Chef
@@ -17,7 +17,7 @@ module CookbookOmnifetch
17
17
  def initialize(dependency, options = {})
18
18
  super
19
19
  @cookbook_identifier = options[:identifier]
20
- @http_client = options[:http_client]
20
+ @http_client = options[:http_client] || default_chef_server_http_client
21
21
  @uri ||= options[:chef_server_artifact]
22
22
  end
23
23
 
@@ -61,12 +61,23 @@ module CookbookOmnifetch
61
61
  end
62
62
 
63
63
  def lock_data
64
- { "chef_server" => uri, "server_identifier" => cookbook_identifier }
64
+ { "chef_server_artifact" => uri, "identifier" => cookbook_identifier }
65
65
  end
66
66
 
67
67
  def cache_key
68
68
  "#{dependency.name}-#{cookbook_identifier}"
69
69
  end
70
70
 
71
+ # @see BaseLocation#cached_cookbook
72
+ def cached_cookbook
73
+ @cached_cookbook ||= CookbookOmnifetch.cached_cookbook_class.from_path(install_path)
74
+ end
75
+
76
+ private
77
+
78
+ def default_chef_server_http_client
79
+ CookbookOmnifetch.default_chef_server_http_client
80
+ end
81
+
71
82
  end
72
83
  end
@@ -1,7 +1,7 @@
1
1
  require "tmpdir"
2
- require "cookbook-omnifetch"
3
- require "cookbook-omnifetch/base"
4
- require "cookbook-omnifetch/exceptions"
2
+ require_relative "../cookbook-omnifetch"
3
+ require_relative "base"
4
+ require_relative "exceptions"
5
5
 
6
6
  module CookbookOmnifetch
7
7
  class GitLocation < BaseLocation
@@ -1,4 +1,4 @@
1
- require "cookbook-omnifetch/exceptions"
1
+ require_relative "exceptions"
2
2
 
3
3
  module CookbookOmnifetch
4
4
 
@@ -39,6 +39,11 @@ module CookbookOmnifetch
39
39
  # commentary in cookbook_omnifetch.rb
40
40
  configurable :chef_server_download_concurrency
41
41
 
42
+ # HTTP client object that will be used for source option `http_client` by
43
+ # `ChefServerLocation` and `ChefServerArtifactLocation` if not explicitly
44
+ # passed
45
+ configurable :default_chef_server_http_client
46
+
42
47
  def initialize
43
48
  self.class.configurables.each do |configurable|
44
49
  instance_variable_set("@#{configurable}".to_sym, NullValue.new)
@@ -1,21 +1,22 @@
1
- require "cookbook-omnifetch/threaded_job_queue"
1
+ require_relative "threaded_job_queue"
2
2
 
3
3
  module CookbookOmnifetch
4
4
 
5
5
  class MetadataBasedInstaller
6
6
  class CookbookMetadata
7
7
 
8
- FILE_TYPES = [
9
- :resources,
10
- :providers,
11
- :recipes,
12
- :definitions,
13
- :libraries,
14
- :attributes,
15
- :files,
16
- :templates,
17
- :root_files,
18
- ].freeze
8
+ FILE_TYPES = %i{
9
+ resources
10
+ providers
11
+ recipes
12
+ definitions
13
+ libraries
14
+ attributes
15
+ files
16
+ templates
17
+ root_files
18
+ all_files
19
+ }.freeze
19
20
 
20
21
  def initialize(metadata)
21
22
  @metadata = metadata
@@ -23,7 +24,7 @@ module CookbookOmnifetch
23
24
 
24
25
  def files(&block)
25
26
  FILE_TYPES.each do |type|
26
- next unless @metadata.has_key?(type.to_s)
27
+ next unless @metadata.key?(type.to_s)
27
28
 
28
29
  @metadata[type.to_s].each do |file|
29
30
  yield file["url"], file["path"]
@@ -1,4 +1,4 @@
1
- require "cookbook-omnifetch/base"
1
+ require_relative "base"
2
2
 
3
3
  module CookbookOmnifetch
4
4
  class PathLocation < BaseLocation
@@ -40,7 +40,7 @@ module CookbookOmnifetch
40
40
  end
41
41
  end
42
42
  workers.each { |worker| self << Thread.method(:exit) }
43
- workers.each { |worker| worker.join }
43
+ workers.each(&:join)
44
44
  end
45
45
  end
46
46
  end
@@ -1,3 +1,3 @@
1
1
  module CookbookOmnifetch
2
- VERSION = "0.7.0"
2
+ VERSION = "0.10.0".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cookbook-omnifetch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamie Winsor
@@ -13,50 +13,28 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2017-11-03 00:00:00.000000000 Z
16
+ date: 2020-07-15 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: mixlib-archive
20
20
  requirement: !ruby/object:Gem::Requirement
21
21
  requirements:
22
- - - "~>"
23
- - !ruby/object:Gem::Version
24
- version: '0.4'
25
- type: :runtime
26
- prerelease: false
27
- version_requirements: !ruby/object:Gem::Requirement
28
- requirements:
29
- - - "~>"
22
+ - - ">="
30
23
  - !ruby/object:Gem::Version
31
24
  version: '0.4'
32
- - !ruby/object:Gem::Dependency
33
- name: rake
34
- requirement: !ruby/object:Gem::Requirement
35
- requirements:
36
- - - ">="
25
+ - - "<"
37
26
  - !ruby/object:Gem::Version
38
- version: '0'
39
- type: :development
27
+ version: '2.0'
28
+ type: :runtime
40
29
  prerelease: false
41
30
  version_requirements: !ruby/object:Gem::Requirement
42
31
  requirements:
43
32
  - - ">="
44
33
  - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: rspec
48
- requirement: !ruby/object:Gem::Requirement
49
- requirements:
50
- - - "~>"
51
- - !ruby/object:Gem::Version
52
- version: '3.0'
53
- type: :development
54
- prerelease: false
55
- version_requirements: !ruby/object:Gem::Requirement
56
- requirements:
57
- - - "~>"
34
+ version: '0.4'
35
+ - - "<"
58
36
  - !ruby/object:Gem::Version
59
- version: '3.0'
37
+ version: '2.0'
60
38
  description:
61
39
  email:
62
40
  - jamie@vialstudios.com
@@ -64,19 +42,12 @@ email:
64
42
  - michael.ivey@riotgames.com
65
43
  - justin@justincampbell.me
66
44
  - sethvargo@gmail.com
67
- - dan@getchef.com
45
+ - dan@chef.io
68
46
  executables: []
69
47
  extensions: []
70
48
  extra_rdoc_files: []
71
49
  files:
72
- - ".gitignore"
73
- - ".rspec"
74
- - ".travis.yml"
75
- - Gemfile
76
50
  - LICENSE
77
- - README.md
78
- - Rakefile
79
- - cookbook-omnifetch.gemspec
80
51
  - lib/cookbook-omnifetch.rb
81
52
  - lib/cookbook-omnifetch/artifactory.rb
82
53
  - lib/cookbook-omnifetch/artifactserver.rb
@@ -91,29 +62,9 @@ files:
91
62
  - lib/cookbook-omnifetch/path.rb
92
63
  - lib/cookbook-omnifetch/threaded_job_queue.rb
93
64
  - lib/cookbook-omnifetch/version.rb
94
- - spec/fixtures/cookbooks/example_cookbook-0.5.0/README.md
95
- - spec/fixtures/cookbooks/example_cookbook-0.5.0/metadata.rb
96
- - spec/fixtures/cookbooks/example_cookbook-0.5.0/recipes/default.rb
97
- - spec/fixtures/cookbooks/example_cookbook/.gitignore
98
- - spec/fixtures/cookbooks/example_cookbook/.kitchen.yml
99
- - spec/fixtures/cookbooks/example_cookbook/Berksfile
100
- - spec/fixtures/cookbooks/example_cookbook/Berksfile.lock
101
- - spec/fixtures/cookbooks/example_cookbook/README.md
102
- - spec/fixtures/cookbooks/example_cookbook/metadata.rb
103
- - spec/fixtures/cookbooks/example_cookbook/recipes/default.rb
104
- - spec/spec_helper.rb
105
- - spec/unit/artifactory_spec.rb
106
- - spec/unit/artifactserver_spec.rb
107
- - spec/unit/base_spec.rb
108
- - spec/unit/chef_server_artifact_spec.rb
109
- - spec/unit/chef_server_spec.rb
110
- - spec/unit/exceptions_spec.rb
111
- - spec/unit/git_spec.rb
112
- - spec/unit/metadata_based_installer_spec.rb
113
- - spec/unit/path_spec.rb
114
- homepage: http://www.getchef.com/
65
+ homepage: https://github.com/chef/cookbook-omnifetch
115
66
  licenses:
116
- - Apache 2.0
67
+ - Apache-2.0
117
68
  metadata: {}
118
69
  post_install_message:
119
70
  rdoc_options: []
@@ -123,37 +74,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
123
74
  requirements:
124
75
  - - ">="
125
76
  - !ruby/object:Gem::Version
126
- version: '0'
77
+ version: '2.4'
127
78
  required_rubygems_version: !ruby/object:Gem::Requirement
128
79
  requirements:
129
80
  - - ">="
130
81
  - !ruby/object:Gem::Version
131
82
  version: '0'
132
83
  requirements: []
133
- rubyforge_project:
134
- rubygems_version: 2.6.13
84
+ rubygems_version: 3.0.3
135
85
  signing_key:
136
86
  specification_version: 4
137
87
  summary: Library code to fetch Chef cookbooks from a variety of sources to a local
138
88
  cache
139
- test_files:
140
- - spec/fixtures/cookbooks/example_cookbook-0.5.0/README.md
141
- - spec/fixtures/cookbooks/example_cookbook-0.5.0/metadata.rb
142
- - spec/fixtures/cookbooks/example_cookbook-0.5.0/recipes/default.rb
143
- - spec/fixtures/cookbooks/example_cookbook/.gitignore
144
- - spec/fixtures/cookbooks/example_cookbook/.kitchen.yml
145
- - spec/fixtures/cookbooks/example_cookbook/Berksfile
146
- - spec/fixtures/cookbooks/example_cookbook/Berksfile.lock
147
- - spec/fixtures/cookbooks/example_cookbook/README.md
148
- - spec/fixtures/cookbooks/example_cookbook/metadata.rb
149
- - spec/fixtures/cookbooks/example_cookbook/recipes/default.rb
150
- - spec/spec_helper.rb
151
- - spec/unit/artifactory_spec.rb
152
- - spec/unit/artifactserver_spec.rb
153
- - spec/unit/base_spec.rb
154
- - spec/unit/chef_server_artifact_spec.rb
155
- - spec/unit/chef_server_spec.rb
156
- - spec/unit/exceptions_spec.rb
157
- - spec/unit/git_spec.rb
158
- - spec/unit/metadata_based_installer_spec.rb
159
- - spec/unit/path_spec.rb
89
+ test_files: []