r10k 3.2.1 → 3.2.3
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/r10k/action/deploy/environment.rb +13 -0
- data/lib/r10k/version.rb +1 -1
- data/r10k.gemspec +1 -1
- data/spec/unit/action/deploy/environment_spec.rb +59 -0
- metadata +4 -5
- data/integration/tests/basic_functionality/negative/attempt_to_install_peonly_module_without_license.rb +0 -71
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 469f2e9b11b47308ab7db4315070fbd65b7d1ed1
|
4
|
+
data.tar.gz: 24a53e3495eb9a71b72817f753193559987006ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f71876396b64988ba115940dea265b5469f8cd13ae37d34bd7cbbca218aa7392966289c226266d23600e02e2c3fdfb745c9648cd0ccb5cf57e7053070db12bf2
|
7
|
+
data.tar.gz: f3182e61bab12374beec84a535fa2c4d55299d7cc46357bad637a252b50f29f28bd6dfde2af7630d9d5a00273f96b66c6f387963471a017e9795527979a5c835
|
@@ -145,11 +145,24 @@ module R10K
|
|
145
145
|
end
|
146
146
|
|
147
147
|
def write_environment_info!(environment, started_at, success)
|
148
|
+
module_deploys = []
|
149
|
+
begin
|
150
|
+
environment.puppetfile.modules.each do |mod|
|
151
|
+
name = mod.name
|
152
|
+
version = mod.version
|
153
|
+
sha = mod.repo.head rescue nil
|
154
|
+
module_deploys.push({:name => name, :version => version, :sha => sha})
|
155
|
+
end
|
156
|
+
rescue
|
157
|
+
logger.debug("Unable to get environment module deploy data for .r10k-deploy.json at #{environment.path}")
|
158
|
+
end
|
159
|
+
|
148
160
|
File.open("#{environment.path}/.r10k-deploy.json", 'w') do |f|
|
149
161
|
deploy_info = environment.info.merge({
|
150
162
|
:started_at => started_at,
|
151
163
|
:finished_at => Time.new,
|
152
164
|
:deploy_success => success,
|
165
|
+
:module_deploys => module_deploys,
|
153
166
|
})
|
154
167
|
|
155
168
|
f.puts(JSON.pretty_generate(deploy_info))
|
data/lib/r10k/version.rb
CHANGED
data/r10k.gemspec
CHANGED
@@ -37,7 +37,7 @@ Gem::Specification.new do |s|
|
|
37
37
|
s.add_development_dependency 'rake'
|
38
38
|
|
39
39
|
s.add_development_dependency 'yard', '~> 0.9.11'
|
40
|
-
s.add_development_dependency 'minitar', '~> 0.
|
40
|
+
s.add_development_dependency 'minitar', '~> 0.9.0'
|
41
41
|
|
42
42
|
s.files = %x[git ls-files].split($/)
|
43
43
|
s.require_path = 'lib'
|
@@ -332,4 +332,63 @@ describe R10K::Action::Deploy::Environment do
|
|
332
332
|
end
|
333
333
|
end
|
334
334
|
end
|
335
|
+
|
336
|
+
describe "write_environment_info!" do
|
337
|
+
|
338
|
+
class Fake_Environment
|
339
|
+
attr_accessor :path
|
340
|
+
attr_accessor :puppetfile
|
341
|
+
attr_accessor :info
|
342
|
+
|
343
|
+
def initialize(path, info)
|
344
|
+
@path = path
|
345
|
+
@info = info
|
346
|
+
@puppetfile = R10K::Puppetfile.new
|
347
|
+
end
|
348
|
+
end
|
349
|
+
|
350
|
+
let(:mock_stateful_repo_1) { instance_double("R10K::Git::StatefulRepository", :head => "123456") }
|
351
|
+
let(:mock_stateful_repo_2) { instance_double("R10K::Git::StatefulRepository", :head => "654321") }
|
352
|
+
let(:mock_git_module_1) { instance_double("R10K::Module::Git", :name => "my_cool_module", :version => "1.0", :repo => mock_stateful_repo_1) }
|
353
|
+
let(:mock_git_module_2) { instance_double("R10K::Module::Git", :name => "my_lame_module", :version => "0.0.1", :repo => mock_stateful_repo_2) }
|
354
|
+
let(:mock_forge_module_1) { double(:name => "their_shiny_module", :version => "2.0.0") }
|
355
|
+
let(:mock_puppetfile) { instance_double("R10K::Puppetfile", :modules => [mock_git_module_1, mock_git_module_2, mock_forge_module_1]) }
|
356
|
+
|
357
|
+
before(:all) do
|
358
|
+
@tmp_path = "./tmp-r10k-test-dir/"
|
359
|
+
Dir.mkdir(@tmp_path) unless File.exists?(@tmp_path)
|
360
|
+
end
|
361
|
+
|
362
|
+
after(:all) do
|
363
|
+
File.delete("#{@tmp_path}/.r10k-deploy.json")
|
364
|
+
Dir.delete(@tmp_path)
|
365
|
+
end
|
366
|
+
|
367
|
+
it "writes the .r10k-deploy file correctly" do
|
368
|
+
allow(R10K::Puppetfile).to receive(:new).and_return(mock_puppetfile)
|
369
|
+
allow(mock_forge_module_1).to receive(:repo).and_raise(NoMethodError)
|
370
|
+
|
371
|
+
fake_env = Fake_Environment.new(@tmp_path, {:name => "my_cool_environment", :signature => "pablo picasso"})
|
372
|
+
subject.send(:write_environment_info!, fake_env, "2019-01-01 23:23:22 +0000", true)
|
373
|
+
|
374
|
+
file_contents = File.read("#{@tmp_path}/.r10k-deploy.json")
|
375
|
+
r10k_deploy = JSON.parse(file_contents)
|
376
|
+
|
377
|
+
expect(r10k_deploy['name']).to eq("my_cool_environment")
|
378
|
+
expect(r10k_deploy['signature']).to eq("pablo picasso")
|
379
|
+
expect(r10k_deploy['started_at']).to eq("2019-01-01 23:23:22 +0000")
|
380
|
+
expect(r10k_deploy['deploy_success']).to eq(true)
|
381
|
+
expect(r10k_deploy['module_deploys'].length).to eq(3)
|
382
|
+
expect(r10k_deploy['module_deploys'][0]['name']).to eq("my_cool_module")
|
383
|
+
expect(r10k_deploy['module_deploys'][0]['version']).to eq("1.0")
|
384
|
+
expect(r10k_deploy['module_deploys'][0]['sha']).to eq("123456")
|
385
|
+
expect(r10k_deploy['module_deploys'][1]['name']).to eq("my_lame_module")
|
386
|
+
expect(r10k_deploy['module_deploys'][1]['version']).to eq("0.0.1")
|
387
|
+
expect(r10k_deploy['module_deploys'][1]['sha']).to eq("654321")
|
388
|
+
expect(r10k_deploy['module_deploys'][2]['name']).to eq("their_shiny_module")
|
389
|
+
expect(r10k_deploy['module_deploys'][2]['version']).to eq("2.0.0")
|
390
|
+
expect(r10k_deploy['module_deploys'][2]['sha']).to eq(nil)
|
391
|
+
|
392
|
+
end
|
393
|
+
end
|
335
394
|
end
|
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.2.
|
4
|
+
version: 3.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrien Thebo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-10-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colored
|
@@ -142,14 +142,14 @@ dependencies:
|
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.
|
145
|
+
version: 0.9.0
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.
|
152
|
+
version: 0.9.0
|
153
153
|
description: |2
|
154
154
|
R10K provides a general purpose toolset for deploying Puppet environments and modules.
|
155
155
|
It implements the Puppetfile format and provides a native implementation of Puppet
|
@@ -235,7 +235,6 @@ files:
|
|
235
235
|
- integration/tests/Puppetfile/HTTP_PROXY_affects_git_source.rb
|
236
236
|
- integration/tests/README.mkd
|
237
237
|
- integration/tests/basic_functionality/install_pe_only_module_with_puppetfile.rb
|
238
|
-
- integration/tests/basic_functionality/negative/attempt_to_install_peonly_module_without_license.rb
|
239
238
|
- integration/tests/basic_functionality/negative/neg_deploy_with_invalid_r10k_yaml.rb
|
240
239
|
- integration/tests/basic_functionality/negative/neg_deploy_with_missing_r10k_yaml.rb
|
241
240
|
- integration/tests/basic_functionality/negative/neg_invalid_git_provider.rb
|
@@ -1,71 +0,0 @@
|
|
1
|
-
require 'git_utils'
|
2
|
-
require 'r10k_utils'
|
3
|
-
require 'master_manipulator'
|
4
|
-
test_name 'RK-158 - C92361 - Attempt to install a PE-only module with no license file'
|
5
|
-
|
6
|
-
#Init
|
7
|
-
env_path = on(master, puppet('config print environmentpath')).stdout.rstrip
|
8
|
-
r10k_fqp = get_r10k_fqp(master)
|
9
|
-
master_certname = on(master, puppet('config', 'print', 'certname')).stdout.rstrip
|
10
|
-
|
11
|
-
git_repo_path = '/git_repos'
|
12
|
-
git_repo_name = 'environments'
|
13
|
-
git_control_remote = File.join(git_repo_path, "#{git_repo_name}.git")
|
14
|
-
git_environments_path = '/root/environments'
|
15
|
-
last_commit = git_last_commit(master, git_environments_path)
|
16
|
-
git_provider = ENV['GIT_PROVIDER'] || 'shellgit'
|
17
|
-
|
18
|
-
r10k_config_path = get_r10k_config_file_path(master)
|
19
|
-
r10k_config_bak_path = "#{r10k_config_path}.bak"
|
20
|
-
|
21
|
-
#In-line files
|
22
|
-
r10k_conf = <<-CONF
|
23
|
-
cachedir: '/var/cache/r10k'
|
24
|
-
git:
|
25
|
-
provider: '#{git_provider}'
|
26
|
-
sources:
|
27
|
-
control:
|
28
|
-
basedir: "#{env_path}"
|
29
|
-
remote: "#{git_control_remote}"
|
30
|
-
CONF
|
31
|
-
|
32
|
-
#Manifest
|
33
|
-
site_pp_path = File.join(git_environments_path, 'manifests', 'site.pp')
|
34
|
-
site_pp = create_site_pp(master_certname, ' include peonly')
|
35
|
-
|
36
|
-
# Verification
|
37
|
-
error_message_regex = /You must have a valid Puppet Enterprise® license on this node in order to download ztr-peonly/
|
38
|
-
|
39
|
-
#Teardown
|
40
|
-
teardown do
|
41
|
-
step 'Restore Original "r10k" Config'
|
42
|
-
on(master, "mv #{r10k_config_bak_path} #{r10k_config_path}")
|
43
|
-
|
44
|
-
step 'cleanup r10k'
|
45
|
-
clean_up_r10k(master, last_commit, git_environments_path)
|
46
|
-
end
|
47
|
-
|
48
|
-
#Setup
|
49
|
-
step 'Stub the forge'
|
50
|
-
stub_forge_on(master)
|
51
|
-
|
52
|
-
step 'Backup a Valid "r10k" Config'
|
53
|
-
on(master, "mv #{r10k_config_path} #{r10k_config_bak_path}")
|
54
|
-
|
55
|
-
step 'Update the "r10k" Config'
|
56
|
-
create_remote_file(master, r10k_config_path, r10k_conf)
|
57
|
-
|
58
|
-
step 'Inject New "site.pp" to the "production" Environment'
|
59
|
-
inject_site_pp(master, site_pp_path, site_pp)
|
60
|
-
|
61
|
-
step 'Copy Puppetfile to "production" Environment Git Repo'
|
62
|
-
create_remote_file(master, "#{git_environments_path}/Puppetfile", 'mod "ztr-peonly"')
|
63
|
-
|
64
|
-
step 'Push Changes'
|
65
|
-
git_add_commit_push(master, 'production', 'add Puppetfile', git_environments_path)
|
66
|
-
|
67
|
-
#Test
|
68
|
-
step 'Deploy "production" Environment via r10k'
|
69
|
-
on(master, "#{r10k_fqp} deploy environment -p", :acceptable_exit_codes => [0,1]) do |result|
|
70
|
-
assert_match(error_message_regex, result.stderr, 'Expected error message was not observed!')
|
71
|
-
end
|