r10k 3.13.0 → 3.14.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.
- checksums.yaml +4 -4
- data/.github/workflows/docker.yml +1 -1
- data/.github/workflows/rspec_tests.yml +2 -2
- data/.travis.yml +1 -1
- data/CHANGELOG.mkd +10 -0
- data/doc/dynamic-environments/configuration.mkd +24 -0
- data/doc/puppetfile.mkd +13 -0
- data/lib/r10k/environment/name.rb +14 -9
- data/lib/r10k/environment/tarball.rb +78 -0
- data/lib/r10k/environment.rb +1 -0
- data/lib/r10k/forge/module_release.rb +2 -1
- data/lib/r10k/git/cache.rb +4 -13
- data/lib/r10k/git/rugged/base_repository.rb +12 -1
- data/lib/r10k/git/rugged/cache.rb +8 -0
- data/lib/r10k/git/stateful_repository.rb +2 -0
- data/lib/r10k/initializers.rb +10 -0
- data/lib/r10k/module/tarball.rb +101 -0
- data/lib/r10k/module.rb +1 -0
- data/lib/r10k/module_loader/puppetfile.rb +10 -1
- data/lib/r10k/source/git.rb +18 -18
- data/lib/r10k/tarball.rb +183 -0
- data/lib/r10k/util/cacheable.rb +31 -0
- data/lib/r10k/util/downloader.rb +134 -0
- data/lib/r10k/version.rb +1 -1
- data/locales/r10k.pot +39 -23
- data/r10k.gemspec +2 -2
- data/spec/fixtures/tarball/tarball.tar.gz +0 -0
- data/spec/integration/git/rugged/cache_spec.rb +33 -0
- data/spec/shared-contexts/tarball.rb +32 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/unit/action/deploy/module_spec.rb +2 -2
- data/spec/unit/environment/name_spec.rb +18 -0
- data/spec/unit/environment/tarball_spec.rb +45 -0
- data/spec/unit/git/cache_spec.rb +2 -15
- data/spec/unit/git/rugged/cache_spec.rb +19 -0
- data/spec/unit/module/tarball_spec.rb +70 -0
- data/spec/unit/module_loader/puppetfile_spec.rb +4 -1
- data/spec/unit/tarball_spec.rb +57 -0
- data/spec/unit/util/cacheable_spec.rb +23 -0
- data/spec/unit/util/downloader_spec.rb +98 -0
- metadata +29 -16
@@ -6,21 +6,29 @@ describe R10K::Environment::Name do
|
|
6
6
|
it "does not modify the given name when no strip_component is given" do
|
7
7
|
bn = described_class.new('myenv', source: 'source', prefix: false)
|
8
8
|
expect(bn.dirname).to eq 'myenv'
|
9
|
+
expect(bn.name).to eq 'myenv'
|
10
|
+
expect(bn.original_name).to eq 'myenv'
|
9
11
|
end
|
10
12
|
|
11
13
|
it "removes the first occurance of a regex match when a regex is given" do
|
12
14
|
bn = described_class.new('myenv', source: 'source', prefix: false, strip_component: '/env/')
|
13
15
|
expect(bn.dirname).to eq 'my'
|
16
|
+
expect(bn.name).to eq 'my'
|
17
|
+
expect(bn.original_name).to eq 'myenv'
|
14
18
|
end
|
15
19
|
|
16
20
|
it "does not modify the given name when there is no regex match" do
|
17
21
|
bn = described_class.new('myenv', source: 'source', prefix: false, strip_component: '/bar/')
|
18
22
|
expect(bn.dirname).to eq 'myenv'
|
23
|
+
expect(bn.name).to eq 'myenv'
|
24
|
+
expect(bn.original_name).to eq 'myenv'
|
19
25
|
end
|
20
26
|
|
21
27
|
it "removes the given name's prefix when it matches strip_component" do
|
22
28
|
bn = described_class.new('env/prod', source: 'source', prefix: false, strip_component: 'env/')
|
23
29
|
expect(bn.dirname).to eq 'prod'
|
30
|
+
expect(bn.name).to eq 'prod'
|
31
|
+
expect(bn.original_name).to eq 'env/prod'
|
24
32
|
end
|
25
33
|
|
26
34
|
it "raises an error when given an integer" do
|
@@ -34,21 +42,29 @@ describe R10K::Environment::Name do
|
|
34
42
|
it "uses the branch name as the dirname when prefixing is off" do
|
35
43
|
bn = described_class.new('mybranch', :source => 'source', :prefix => false)
|
36
44
|
expect(bn.dirname).to eq 'mybranch'
|
45
|
+
expect(bn.name).to eq 'mybranch'
|
46
|
+
expect(bn.original_name).to eq 'mybranch'
|
37
47
|
end
|
38
48
|
|
39
49
|
it "prepends the source name when prefixing is on" do
|
40
50
|
bn = described_class.new('mybranch', :source => 'source', :prefix => true)
|
41
51
|
expect(bn.dirname).to eq 'source_mybranch'
|
52
|
+
expect(bn.name).to eq 'mybranch'
|
53
|
+
expect(bn.original_name).to eq 'mybranch'
|
42
54
|
end
|
43
55
|
|
44
56
|
it "prepends the prefix name when prefixing is overridden" do
|
45
57
|
bn = described_class.new('mybranch', {:prefix => "bar", :sourcename => 'foo'})
|
46
58
|
expect(bn.dirname).to eq 'bar_mybranch'
|
59
|
+
expect(bn.name).to eq 'mybranch'
|
60
|
+
expect(bn.original_name).to eq 'mybranch'
|
47
61
|
end
|
48
62
|
|
49
63
|
it "uses the branch name as the dirname when prefixing is nil" do
|
50
64
|
bn = described_class.new('mybranch', {:prefix => nil, :sourcename => 'foo'})
|
51
65
|
expect(bn.dirname).to eq 'mybranch'
|
66
|
+
expect(bn.name).to eq 'mybranch'
|
67
|
+
expect(bn.original_name).to eq 'mybranch'
|
52
68
|
end
|
53
69
|
end
|
54
70
|
|
@@ -149,6 +165,8 @@ describe R10K::Environment::Name do
|
|
149
165
|
it "replaces invalid characters in #{branch} with underscores" do
|
150
166
|
bn = described_class.new(branch.dup, {:correct => true})
|
151
167
|
expect(bn.dirname).to eq branch.gsub(/\W/, '_')
|
168
|
+
expect(bn.name).to eq branch
|
169
|
+
expect(bn.original_name).to eq branch
|
152
170
|
end
|
153
171
|
end
|
154
172
|
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'r10k/environment'
|
3
|
+
|
4
|
+
describe R10K::Environment::Tarball do
|
5
|
+
let(:tgz_path) do
|
6
|
+
File.expand_path('spec/fixtures/tarball/tarball.tar.gz', PROJECT_ROOT)
|
7
|
+
end
|
8
|
+
|
9
|
+
let(:checksum) { '36afcfc2378b8235902d6e647fce7479da6898354d620388646c595a1155ed67' }
|
10
|
+
let(:base_params) { { source: tgz_path, version: checksum, modules: { } } }
|
11
|
+
|
12
|
+
subject { described_class.new('envname', '/some/imaginary/path', 'dirname', base_params) }
|
13
|
+
|
14
|
+
describe "initializing" do
|
15
|
+
it "accepts valid base class initialization arguments" do
|
16
|
+
expect(subject.name).to eq 'envname'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "storing attributes" do
|
21
|
+
it "can return the environment name" do
|
22
|
+
expect(subject.name).to eq 'envname'
|
23
|
+
end
|
24
|
+
|
25
|
+
it "can return the environment basedir" do
|
26
|
+
expect(subject.basedir).to eq '/some/imaginary/path'
|
27
|
+
end
|
28
|
+
|
29
|
+
it "can return the environment dirname" do
|
30
|
+
expect(subject.dirname).to eq 'dirname'
|
31
|
+
end
|
32
|
+
|
33
|
+
it "can return the environment path" do
|
34
|
+
expect(subject.path.to_s).to eq '/some/imaginary/path/dirname'
|
35
|
+
end
|
36
|
+
|
37
|
+
it "can return the environment source" do
|
38
|
+
expect(subject.tarball.source).to eq tgz_path
|
39
|
+
end
|
40
|
+
|
41
|
+
it "can return the environment version" do
|
42
|
+
expect(subject.tarball.checksum).to eq checksum
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/spec/unit/git/cache_spec.rb
CHANGED
@@ -21,7 +21,8 @@ describe R10K::Git::Cache do
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
|
24
|
+
let(:remote) { 'git://some/git/remote' }
|
25
|
+
subject { subclass.new(remote) }
|
25
26
|
|
26
27
|
describe "updating the cache" do
|
27
28
|
it "only updates the cache once" do
|
@@ -62,18 +63,4 @@ describe R10K::Git::Cache do
|
|
62
63
|
subject.cached?
|
63
64
|
end
|
64
65
|
end
|
65
|
-
|
66
|
-
describe "dirname sanitization" do
|
67
|
-
it 'sanitizes cache directory name' do
|
68
|
-
expect(subject.sanitized_dirname).to eq('git---some-git-remote')
|
69
|
-
end
|
70
|
-
|
71
|
-
context 'with username and password' do
|
72
|
-
subject { subclass.new('https://"user:pa$$w0rd:@some/git/remote') }
|
73
|
-
|
74
|
-
it 'sanitizes cache directory name' do
|
75
|
-
expect(subject.sanitized_dirname).to eq('https---some-git-remote')
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
66
|
end
|
@@ -26,4 +26,23 @@ describe R10K::Git::Rugged::Cache, :unless => R10K::Util::Platform.jruby? do
|
|
26
26
|
expect(described_class.settings[:cache_root]).to eq '/some/path'
|
27
27
|
end
|
28
28
|
end
|
29
|
+
|
30
|
+
describe "remote url updates" do
|
31
|
+
before do
|
32
|
+
allow(subject.repo).to receive(:exist?).and_return true
|
33
|
+
allow(subject.repo).to receive(:fetch)
|
34
|
+
allow(subject.repo).to receive(:remotes).and_return({ 'origin' => 'git://some/git/remote' })
|
35
|
+
end
|
36
|
+
|
37
|
+
it "does not update the URLs if they match" do
|
38
|
+
expect(subject.repo).to_not receive(:update_remote)
|
39
|
+
subject.sync!
|
40
|
+
end
|
41
|
+
|
42
|
+
it "updates the remote URL if they do not match" do
|
43
|
+
allow(subject.repo).to receive(:remotes).and_return({ 'origin' => 'foo'})
|
44
|
+
expect(subject.repo).to receive(:update_remote)
|
45
|
+
subject.sync!
|
46
|
+
end
|
47
|
+
end
|
29
48
|
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'r10k/module'
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
describe R10K::Module::Tarball do
|
6
|
+
include_context 'Tarball'
|
7
|
+
|
8
|
+
let(:base_params) { { type: 'tarball', source: fixture_tarball, version: fixture_checksum } }
|
9
|
+
|
10
|
+
subject do
|
11
|
+
described_class.new(
|
12
|
+
'fixture-tarball',
|
13
|
+
moduledir,
|
14
|
+
base_params,
|
15
|
+
)
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "setting the owner and name" do
|
19
|
+
describe "with a title of 'fixture-tarball'" do
|
20
|
+
it "sets the owner to 'fixture'" do
|
21
|
+
expect(subject.owner).to eq 'fixture'
|
22
|
+
end
|
23
|
+
|
24
|
+
it "sets the name to 'tarball'" do
|
25
|
+
expect(subject.name).to eq 'tarball'
|
26
|
+
end
|
27
|
+
|
28
|
+
it "sets the path to the given moduledir + modname" do
|
29
|
+
expect(subject.path.to_s).to eq(File.join(moduledir, 'tarball'))
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "properties" do
|
35
|
+
it "sets the module type to :tarball" do
|
36
|
+
expect(subject.properties).to include(type: :tarball)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "sets the version" do
|
40
|
+
expect(subject.properties).to include(expected: fixture_checksum)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe 'syncing the module' do
|
45
|
+
it 'defaults to keeping the spec dir' do
|
46
|
+
subject.sync
|
47
|
+
expect(Dir.exist?(File.join(moduledir, 'tarball', 'spec'))).to be(true)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "determining the status" do
|
52
|
+
it "delegates to R10K::Tarball" do
|
53
|
+
expect(subject).to receive(:tarball).twice.and_return instance_double('R10K::Tarball', cache_valid?: true, insync?: true)
|
54
|
+
expect(subject).to receive(:path).twice.and_return instance_double('Pathname', exist?: true)
|
55
|
+
|
56
|
+
expect(subject.status).to eq(:insync)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
describe "option parsing" do
|
61
|
+
describe "version" do
|
62
|
+
context "when no version is given" do
|
63
|
+
subject { described_class.new('fixture-tarball', moduledir, base_params.reject { |k| k.eql?(:version) }) }
|
64
|
+
it "does not require a version" do
|
65
|
+
expect(subject).to be_kind_of(described_class)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -167,6 +167,7 @@ describe R10K::ModuleLoader::Puppetfile do
|
|
167
167
|
it 'should disable and not add modules that conflict with the environment' do
|
168
168
|
env = instance_double('R10K::Environment::Base')
|
169
169
|
mod = instance_double('R10K::Module::Base', name: 'conflict', origin: :puppetfile, 'origin=': nil)
|
170
|
+
allow(env).to receive(:name).and_return('conflict')
|
170
171
|
loader = R10K::ModuleLoader::Puppetfile.new(basedir: basedir, environment: env)
|
171
172
|
allow(env).to receive(:'module_conflicts?').with(mod).and_return(true)
|
172
173
|
allow(mod).to receive(:spec_deletable=)
|
@@ -187,7 +188,9 @@ describe R10K::ModuleLoader::Puppetfile do
|
|
187
188
|
context 'when belonging to an environment' do
|
188
189
|
let(:env_contents) { ['env1', 'env2' ] }
|
189
190
|
let(:env) { double(:environment, desired_contents: env_contents) }
|
190
|
-
|
191
|
+
before {
|
192
|
+
allow(env).to receive(:name).and_return('env1')
|
193
|
+
}
|
191
194
|
subject { R10K::ModuleLoader::Puppetfile.new(basedir: '/test/basedir', environment: env) }
|
192
195
|
|
193
196
|
it "includes environment's desired_contents" do
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'r10k/tarball'
|
3
|
+
|
4
|
+
describe R10K::Tarball do
|
5
|
+
include_context 'Tarball'
|
6
|
+
|
7
|
+
subject { described_class.new('fixture-tarball', fixture_tarball, checksum: fixture_checksum) }
|
8
|
+
|
9
|
+
describe 'initialization' do
|
10
|
+
it 'initializes' do
|
11
|
+
expect(subject).to be_kind_of(described_class)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'downloading and caching' do
|
16
|
+
it 'downloads the source to the cache' do
|
17
|
+
# No cache present initially
|
18
|
+
expect(File.exist?(subject.cache_path)).to be(false)
|
19
|
+
expect(subject.cache_valid?).to be(false)
|
20
|
+
|
21
|
+
subject.get
|
22
|
+
|
23
|
+
expect(subject.cache_valid?).to be(true)
|
24
|
+
expect(File.exist?(subject.cache_path)).to be(true)
|
25
|
+
end
|
26
|
+
|
27
|
+
let(:raw_content) {[
|
28
|
+
'./',
|
29
|
+
'./Puppetfile',
|
30
|
+
'./metadata.json',
|
31
|
+
'./spec/',
|
32
|
+
'./environment.conf',
|
33
|
+
'./spec/1',
|
34
|
+
]}
|
35
|
+
|
36
|
+
let(:clean_content) {[
|
37
|
+
'Puppetfile',
|
38
|
+
'metadata.json',
|
39
|
+
'spec',
|
40
|
+
'environment.conf',
|
41
|
+
'spec/1',
|
42
|
+
]}
|
43
|
+
|
44
|
+
it 'returns clean paths when listing cached tarball content' do
|
45
|
+
iterator = allow(subject).to receive(:each_tarball_entry)
|
46
|
+
raw_content.each { |entry| iterator.and_yield(entry) }
|
47
|
+
|
48
|
+
expect(subject.paths).to eq(clean_content)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe 'http sources'
|
53
|
+
|
54
|
+
describe 'file sources'
|
55
|
+
|
56
|
+
describe 'syncing'
|
57
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'r10k/util/cacheable'
|
3
|
+
|
4
|
+
RSpec.describe R10K::Util::Cacheable do
|
5
|
+
|
6
|
+
subject { Object.new.extend(R10K::Util::Cacheable) }
|
7
|
+
|
8
|
+
describe "dirname sanitization" do
|
9
|
+
let(:input) { 'git://some/git/remote' }
|
10
|
+
|
11
|
+
it 'sanitizes URL to directory name' do
|
12
|
+
expect(subject.sanitized_dirname(input)).to eq('git---some-git-remote')
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'with username and password' do
|
16
|
+
let(:input) { 'https://"user:pa$$w0rd:@authenticated/git/remote' }
|
17
|
+
|
18
|
+
it 'sanitizes authenticated URL to directory name' do
|
19
|
+
expect(subject.sanitized_dirname(input)).to eq('https---authenticated-git-remote')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'r10k/util/downloader'
|
3
|
+
|
4
|
+
describe R10K::Util::Downloader do
|
5
|
+
|
6
|
+
subject(:downloader) do
|
7
|
+
subj = Object.new
|
8
|
+
subj.extend(R10K::Util::Downloader)
|
9
|
+
subj.singleton_class.class_eval { public :download }
|
10
|
+
subj.singleton_class.class_eval { public :http_get }
|
11
|
+
subj.singleton_class.class_eval { public :file_digest }
|
12
|
+
subj
|
13
|
+
end
|
14
|
+
|
15
|
+
let(:tmpdir) { Dir.mktmpdir }
|
16
|
+
after(:each) { FileUtils.remove_entry_secure(tmpdir) }
|
17
|
+
|
18
|
+
describe 'http_get' do
|
19
|
+
let(:src_url) { 'https://example.com' }
|
20
|
+
let(:dst_file) { File.join(tmpdir, 'test.out') }
|
21
|
+
let(:tarball_uri) { URI('http://tarball.example.com/tarball.tar.gz') }
|
22
|
+
let(:redirect_uri) { URI('http://redirect.example.com/redirect') }
|
23
|
+
let(:proxy_uri) { URI('http://user:password@proxy.example.com') }
|
24
|
+
|
25
|
+
it 'downloads a simple file' do
|
26
|
+
mock_session = instance_double('Net::HTTP', active?: true)
|
27
|
+
tarball_response = instance_double('Net::HTTPSuccess')
|
28
|
+
|
29
|
+
expect(Net::HTTP).to receive(:new).with(tarball_uri.host, any_args).and_return(mock_session)
|
30
|
+
expect(Net::HTTPSuccess).to receive(:===).with(tarball_response).and_return(true)
|
31
|
+
|
32
|
+
expect(mock_session).to receive(:request_get).and_yield(tarball_response)
|
33
|
+
expect(mock_session).to receive(:start).once
|
34
|
+
expect(mock_session).to receive(:finish).once
|
35
|
+
|
36
|
+
expect { |b| downloader.http_get(tarball_uri, &b) }.to yield_with_args(tarball_response)
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'follows redirects' do
|
40
|
+
mock_session_1 = instance_double('Net::HTTP', active?: false)
|
41
|
+
mock_session_2 = instance_double('Net::HTTP', active?: true)
|
42
|
+
redirect_response = instance_double('Net::HTTPRedirection')
|
43
|
+
tarball_response = instance_double('Net::HTTPSuccess')
|
44
|
+
|
45
|
+
expect(Net::HTTP).to receive(:new).with(redirect_uri.host, any_args).and_return(mock_session_1).once
|
46
|
+
expect(Net::HTTP).to receive(:new).with(tarball_uri.host, any_args).and_return(mock_session_2).once
|
47
|
+
expect(Net::HTTPRedirection).to receive(:===).with(redirect_response).and_return(true)
|
48
|
+
expect(Net::HTTPSuccess).to receive(:===).with(tarball_response).and_return(true)
|
49
|
+
allow(Net::HTTPRedirection).to receive(:===).and_call_original
|
50
|
+
|
51
|
+
expect(mock_session_1).to receive(:request_get).and_yield(redirect_response)
|
52
|
+
expect(mock_session_2).to receive(:request_get).and_yield(tarball_response)
|
53
|
+
|
54
|
+
# The redirect response should be queried for the redirect location
|
55
|
+
expect(redirect_response).to receive(:[]).with('location').and_return(tarball_uri.to_s)
|
56
|
+
|
57
|
+
# Both sessions should start and finish cleanly
|
58
|
+
expect(mock_session_1).to receive(:start).once
|
59
|
+
expect(mock_session_1).to receive(:finish).once
|
60
|
+
expect(mock_session_2).to receive(:start).once
|
61
|
+
expect(mock_session_2).to receive(:finish).once
|
62
|
+
|
63
|
+
expect { |b| downloader.http_get(redirect_uri, &b) }.to yield_with_args(tarball_response)
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'can use a proxy' do
|
67
|
+
mock_session = instance_double('Net::HTTP', active?: true)
|
68
|
+
|
69
|
+
expect(Net::HTTP).to receive(:new)
|
70
|
+
.with(tarball_uri.host,
|
71
|
+
tarball_uri.port,
|
72
|
+
proxy_uri.host,
|
73
|
+
proxy_uri.port,
|
74
|
+
proxy_uri.user,
|
75
|
+
proxy_uri.password,
|
76
|
+
any_args)
|
77
|
+
.and_return(mock_session)
|
78
|
+
|
79
|
+
expect(mock_session).to receive(:request_get).and_return(:not_yielded)
|
80
|
+
expect(mock_session).to receive(:start).once
|
81
|
+
expect(mock_session).to receive(:finish).once
|
82
|
+
|
83
|
+
downloader.http_get(tarball_uri, proxy: proxy_uri)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe 'checksums' do
|
88
|
+
let(:fixture_checksum) { '0bcea17aa0c5e868c18f0fa042feda770e47c1a4223229f82116ccb3ca33c6e3' }
|
89
|
+
let(:fixture_tarball) do
|
90
|
+
File.expand_path('spec/fixtures/integration/git/puppet-boolean-bare.tar', PROJECT_ROOT)
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'checksums files' do
|
94
|
+
expect(downloader.file_digest(fixture_tarball)).to eql(fixture_checksum)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: r10k
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrien Thebo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colored2
|
@@ -142,6 +142,20 @@ dependencies:
|
|
142
142
|
- - "~>"
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: 2.2.3
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: minitar
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - "~>"
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: 0.9.0
|
152
|
+
type: :runtime
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - "~>"
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: 0.9.0
|
145
159
|
- !ruby/object:Gem::Dependency
|
146
160
|
name: rspec
|
147
161
|
requirement: !ruby/object:Gem::Requirement
|
@@ -184,20 +198,6 @@ dependencies:
|
|
184
198
|
- - "~>"
|
185
199
|
- !ruby/object:Gem::Version
|
186
200
|
version: 0.9.11
|
187
|
-
- !ruby/object:Gem::Dependency
|
188
|
-
name: minitar
|
189
|
-
requirement: !ruby/object:Gem::Requirement
|
190
|
-
requirements:
|
191
|
-
- - "~>"
|
192
|
-
- !ruby/object:Gem::Version
|
193
|
-
version: 0.9.0
|
194
|
-
type: :development
|
195
|
-
prerelease: false
|
196
|
-
version_requirements: !ruby/object:Gem::Requirement
|
197
|
-
requirements:
|
198
|
-
- - "~>"
|
199
|
-
- !ruby/object:Gem::Version
|
200
|
-
version: 0.9.0
|
201
201
|
description: |2
|
202
202
|
R10K provides a general purpose toolset for deploying Puppet environments and modules.
|
203
203
|
It implements the Puppetfile format and provides a native implementation of Puppet
|
@@ -372,6 +372,7 @@ files:
|
|
372
372
|
- lib/r10k/environment/name.rb
|
373
373
|
- lib/r10k/environment/plain.rb
|
374
374
|
- lib/r10k/environment/svn.rb
|
375
|
+
- lib/r10k/environment/tarball.rb
|
375
376
|
- lib/r10k/environment/with_modules.rb
|
376
377
|
- lib/r10k/errors.rb
|
377
378
|
- lib/r10k/errors/formatting.rb
|
@@ -410,6 +411,7 @@ files:
|
|
410
411
|
- lib/r10k/module/local.rb
|
411
412
|
- lib/r10k/module/metadata_file.rb
|
412
413
|
- lib/r10k/module/svn.rb
|
414
|
+
- lib/r10k/module/tarball.rb
|
413
415
|
- lib/r10k/module_loader/puppetfile.rb
|
414
416
|
- lib/r10k/module_loader/puppetfile/dsl.rb
|
415
417
|
- lib/r10k/puppetfile.rb
|
@@ -434,10 +436,13 @@ files:
|
|
434
436
|
- lib/r10k/svn.rb
|
435
437
|
- lib/r10k/svn/remote.rb
|
436
438
|
- lib/r10k/svn/working_dir.rb
|
439
|
+
- lib/r10k/tarball.rb
|
437
440
|
- lib/r10k/util/attempt.rb
|
438
441
|
- lib/r10k/util/basedir.rb
|
442
|
+
- lib/r10k/util/cacheable.rb
|
439
443
|
- lib/r10k/util/cleaner.rb
|
440
444
|
- lib/r10k/util/commands.rb
|
445
|
+
- lib/r10k/util/downloader.rb
|
441
446
|
- lib/r10k/util/exec_env.rb
|
442
447
|
- lib/r10k/util/license.rb
|
443
448
|
- lib/r10k/util/platform.rb
|
@@ -462,6 +467,7 @@ files:
|
|
462
467
|
- spec/fixtures/module/forge/bad_module/metadata.json
|
463
468
|
- spec/fixtures/module/forge/eight_hundred/Modulefile
|
464
469
|
- spec/fixtures/module/forge/eight_hundred/metadata.json
|
470
|
+
- spec/fixtures/tarball/tarball.tar.gz
|
465
471
|
- spec/fixtures/unit/action/r10k.yaml
|
466
472
|
- spec/fixtures/unit/action/r10k_cachedir.yaml
|
467
473
|
- spec/fixtures/unit/action/r10k_creds.yaml
|
@@ -495,6 +501,7 @@ files:
|
|
495
501
|
- spec/fixtures/unit/util/purgeable/managed_two/unmanaged_2
|
496
502
|
- spec/fixtures/unit/util/subprocess/runner/no-execute.sh
|
497
503
|
- spec/integration/git/rugged/bare_repository_spec.rb
|
504
|
+
- spec/integration/git/rugged/cache_spec.rb
|
498
505
|
- spec/integration/git/rugged/thin_repository_spec.rb
|
499
506
|
- spec/integration/git/rugged/working_repository_spec.rb
|
500
507
|
- spec/integration/git/shellgit/bare_repository_spec.rb
|
@@ -509,6 +516,7 @@ files:
|
|
509
516
|
- spec/r10k-mocks/mock_env.rb
|
510
517
|
- spec/r10k-mocks/mock_source.rb
|
511
518
|
- spec/shared-contexts/git-fixtures.rb
|
519
|
+
- spec/shared-contexts/tarball.rb
|
512
520
|
- spec/shared-examples/deploy-actions.rb
|
513
521
|
- spec/shared-examples/git-repository.rb
|
514
522
|
- spec/shared-examples/git/bare_repository.rb
|
@@ -538,6 +546,7 @@ files:
|
|
538
546
|
- spec/unit/environment/name_spec.rb
|
539
547
|
- spec/unit/environment/plain_spec.rb
|
540
548
|
- spec/unit/environment/svn_spec.rb
|
549
|
+
- spec/unit/environment/tarball_spec.rb
|
541
550
|
- spec/unit/environment/with_modules_spec.rb
|
542
551
|
- spec/unit/errors/formatting_spec.rb
|
543
552
|
- spec/unit/feature_spec.rb
|
@@ -559,6 +568,7 @@ files:
|
|
559
568
|
- spec/unit/module/git_spec.rb
|
560
569
|
- spec/unit/module/metadata_file_spec.rb
|
561
570
|
- spec/unit/module/svn_spec.rb
|
571
|
+
- spec/unit/module/tarball_spec.rb
|
562
572
|
- spec/unit/module_loader/puppetfile_spec.rb
|
563
573
|
- spec/unit/module_spec.rb
|
564
574
|
- spec/unit/puppetfile_spec.rb
|
@@ -580,8 +590,11 @@ files:
|
|
580
590
|
- spec/unit/source_spec.rb
|
581
591
|
- spec/unit/svn/remote_spec.rb
|
582
592
|
- spec/unit/svn/working_dir_spec.rb
|
593
|
+
- spec/unit/tarball_spec.rb
|
583
594
|
- spec/unit/util/attempt_spec.rb
|
595
|
+
- spec/unit/util/cacheable_spec.rb
|
584
596
|
- spec/unit/util/commands_spec.rb
|
597
|
+
- spec/unit/util/downloader_spec.rb
|
585
598
|
- spec/unit/util/exec_env_spec.rb
|
586
599
|
- spec/unit/util/purgeable_spec.rb
|
587
600
|
- spec/unit/util/setopts_spec.rb
|