omnibus 9.0.8 → 9.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/omnibus/config.rb +12 -0
- data/lib/omnibus/exceptions.rb +11 -0
- data/lib/omnibus/fetchers/net_fetcher.rb +2 -0
- data/lib/omnibus/health_check.rb +4 -0
- data/lib/omnibus/software.rb +32 -3
- data/lib/omnibus/version.rb +1 -1
- data/omnibus.gemspec +1 -1
- data/spec/functional/fetchers/net_fetcher_spec.rb +20 -0
- data/spec/unit/config_spec.rb +1 -0
- data/spec/unit/software_spec.rb +17 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c7c8bc84ab97c3a75715fc42df6d16ea4df3a301cc24fd6b6b096f65684790f
|
4
|
+
data.tar.gz: 70613619043bc015ad98e7748f4bf93ba6daad5c41eb41155bb817edd2e06d98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 060c19bb8659c184104e6dd7e4a035ff6250098b555948202a5ecaaf11af00f94e9625c8a07aeb337ec9748c3a8e5b6c2e48edd866b85a582387dbe8db26f1df
|
7
|
+
data.tar.gz: fd7b52b9bf73774a0b42b3dc5bca7e367abce0660c64e1df1d26bb78b77b106e33f9e759c52caf526445392bcd52fc6f41fe3a54006aec055cce5a776b807d89
|
data/lib/omnibus/config.rb
CHANGED
@@ -601,6 +601,18 @@ module Omnibus
|
|
601
601
|
# @return [true, false]
|
602
602
|
default(:fatal_transitive_dependency_licensing_warnings, false)
|
603
603
|
|
604
|
+
# Fail the build when health check does not succeed. This may only be set to false
|
605
|
+
# for very specific use-cases in the omnibus project. e.g. creating a wrapper installer
|
606
|
+
#
|
607
|
+
# @return [true, false]
|
608
|
+
default(:health_check, true)
|
609
|
+
|
610
|
+
# Use the internal_source URL when fetching software dependencies. e.g. when creating an
|
611
|
+
# omnibus package using artifactory as the source url.
|
612
|
+
#
|
613
|
+
# @return [true, false]
|
614
|
+
default(:use_internal_sources, false)
|
615
|
+
|
604
616
|
# --------------------------------------------------
|
605
617
|
# @!endgroup
|
606
618
|
#
|
data/lib/omnibus/exceptions.rb
CHANGED
@@ -351,4 +351,15 @@ module Omnibus
|
|
351
351
|
EOH
|
352
352
|
end
|
353
353
|
end
|
354
|
+
|
355
|
+
class InternalSourceMissing < Error
|
356
|
+
def initialize(software)
|
357
|
+
super <<~EOH
|
358
|
+
Internal source missing for #{software.name}.
|
359
|
+
|
360
|
+
When :use_internal_sources is set in the configuration you must specify an
|
361
|
+
internal_source for sources fetched from a url.
|
362
|
+
EOH
|
363
|
+
end
|
364
|
+
end
|
354
365
|
end
|
data/lib/omnibus/health_check.rb
CHANGED
@@ -64,6 +64,10 @@ module Omnibus
|
|
64
64
|
# if the healthchecks pass
|
65
65
|
#
|
66
66
|
def run!
|
67
|
+
unless Config.health_check
|
68
|
+
log.info(log_key) { "Health check skipped as specified in config for #{project.name}" }
|
69
|
+
return true
|
70
|
+
end
|
67
71
|
measure("Health check time") do
|
68
72
|
log.info(log_key) { "Running health on #{project.name}" }
|
69
73
|
bad_libs, good_libs =
|
data/lib/omnibus/software.rb
CHANGED
@@ -336,7 +336,7 @@ module Omnibus
|
|
336
336
|
extra_keys = val.keys - [
|
337
337
|
:git, :file, :path, :url, # fetcher types
|
338
338
|
:md5, :sha1, :sha256, :sha512, # hash type - common to all fetchers
|
339
|
-
:cookie, :warning, :unsafe, :extract, :cached_name, :authorization, # used by net_fetcher
|
339
|
+
:cookie, :warning, :unsafe, :extract, :cached_name, :authorization, :internal, # used by net_fetcher
|
340
340
|
:options, # used by path_fetcher
|
341
341
|
:submodules # used by git_fetcher
|
342
342
|
]
|
@@ -351,8 +351,21 @@ module Omnibus
|
|
351
351
|
"not include duplicate keys. Duplicate keys: #{duplicate_keys.inspect}")
|
352
352
|
end
|
353
353
|
|
354
|
-
|
355
|
-
|
354
|
+
if Config.use_internal_sources && val[:url]
|
355
|
+
if internal_source_set? && val[:internal].nil?
|
356
|
+
# We only want to replace the hash types here
|
357
|
+
hash_types = %i{md5 sha1 sha256 sha512}
|
358
|
+
val.each_key do |key|
|
359
|
+
val.delete(key) unless hash_types.include?(key)
|
360
|
+
end
|
361
|
+
end
|
362
|
+
|
363
|
+
@source ||= {}
|
364
|
+
@source.merge!(val)
|
365
|
+
else
|
366
|
+
@source ||= {}
|
367
|
+
@source.merge!(val)
|
368
|
+
end
|
356
369
|
end
|
357
370
|
|
358
371
|
override = canonicalize_source(overrides[:source])
|
@@ -360,6 +373,22 @@ module Omnibus
|
|
360
373
|
end
|
361
374
|
expose :source
|
362
375
|
|
376
|
+
def internal_source_set?
|
377
|
+
@source && @source[:internal] == true
|
378
|
+
end
|
379
|
+
|
380
|
+
def internal_source(val = NULL)
|
381
|
+
unless val.is_a?(Hash)
|
382
|
+
raise InvalidValue.new(:internal_source,
|
383
|
+
"be a kind of `Hash', but was `#{val.class.inspect}'")
|
384
|
+
end
|
385
|
+
if Config.use_internal_sources
|
386
|
+
val[:internal] = true
|
387
|
+
source(val)
|
388
|
+
end
|
389
|
+
end
|
390
|
+
expose :internal_source
|
391
|
+
|
363
392
|
#
|
364
393
|
# Set or retrieve the {#default_version} of the software to build.
|
365
394
|
#
|
data/lib/omnibus/version.rb
CHANGED
data/omnibus.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |gem|
|
|
20
20
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
21
21
|
gem.require_paths = ["lib"]
|
22
22
|
|
23
|
-
gem.add_dependency "aws-sdk-s3", "~> 1"
|
23
|
+
gem.add_dependency "aws-sdk-s3", "~> 1.116.0"
|
24
24
|
gem.add_dependency "chef-utils", ">= 15.4"
|
25
25
|
gem.add_dependency "chef-cleanroom", "~> 1.0"
|
26
26
|
gem.add_dependency "ffi-yajl", "~> 2.2"
|
@@ -173,6 +173,26 @@ module Omnibus
|
|
173
173
|
end
|
174
174
|
end
|
175
175
|
|
176
|
+
context "when use_internal_sources is true and no internal source url" do
|
177
|
+
before { Omnibus::Config.use_internal_sources(true) }
|
178
|
+
|
179
|
+
it "raises an exception" do
|
180
|
+
expect { fetch! }.to raise_error(InternalSourceMissing)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
context "when use_internal_sources is true and internal source url given" do
|
185
|
+
before { Omnibus::Config.use_internal_sources(true) }
|
186
|
+
let(:source) do
|
187
|
+
{ url: source_url, md5: source_md5, internal: true }
|
188
|
+
end
|
189
|
+
|
190
|
+
it "downloads the file" do
|
191
|
+
fetch!
|
192
|
+
expect(downloaded_file).to be_a_file
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
176
196
|
context "source with sha1" do
|
177
197
|
let(:source) do
|
178
198
|
{ url: source_url, sha1: source_sha1 }
|
data/spec/unit/config_spec.rb
CHANGED
@@ -45,6 +45,7 @@ module Omnibus
|
|
45
45
|
include_examples "a configurable", :fetcher_read_timeout, 60
|
46
46
|
include_examples "a configurable", :fetcher_retries, 5
|
47
47
|
include_examples "a configurable", :fatal_licensing_warnings, false
|
48
|
+
include_examples "a configurable", :health_check, true
|
48
49
|
include_examples "a configurable", :fips_mode, false
|
49
50
|
|
50
51
|
describe "#workers" do
|
data/spec/unit/software_spec.rb
CHANGED
@@ -16,10 +16,18 @@ module Omnibus
|
|
16
16
|
}
|
17
17
|
end
|
18
18
|
|
19
|
+
let(:internal_source) do
|
20
|
+
{
|
21
|
+
url: "http://internal.com/",
|
22
|
+
md5: "efgh5678",
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
19
26
|
let(:rel_path) { "software" }
|
20
27
|
|
21
28
|
subject do
|
22
29
|
local_source = source
|
30
|
+
local_internal_source = internal_source
|
23
31
|
local_rel_path = rel_path
|
24
32
|
|
25
33
|
described_class.new(project).evaluate do
|
@@ -27,6 +35,7 @@ module Omnibus
|
|
27
35
|
default_version "1.2.3"
|
28
36
|
|
29
37
|
source local_source
|
38
|
+
internal_source local_internal_source
|
30
39
|
relative_path local_rel_path
|
31
40
|
end
|
32
41
|
end
|
@@ -592,6 +601,14 @@ module Omnibus
|
|
592
601
|
end
|
593
602
|
end
|
594
603
|
|
604
|
+
context "when software internal_source is given" do
|
605
|
+
before { Omnibus::Config.use_internal_sources(true) }
|
606
|
+
|
607
|
+
it "sets the source with internal: true" do
|
608
|
+
expect(subject.source).to eq(url: "http://internal.com/", md5: "efgh5678", internal: true)
|
609
|
+
end
|
610
|
+
end
|
611
|
+
|
595
612
|
describe "#fetcher" do
|
596
613
|
before do
|
597
614
|
expect(Omnibus::Fetcher).to receive(:resolve_version).with("1.2.3", source).and_return("1.2.8")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omnibus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 9.0.
|
4
|
+
version: 9.0.11
|
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: 2022-
|
11
|
+
date: 2022-11-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-s3
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.116.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.116.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: chef-utils
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|