simp-beaker-helpers 1.11.0 → 1.11.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -1
- data/lib/simp/beaker_helpers.rb +69 -16
- data/lib/simp/beaker_helpers/inspec.rb +1 -1
- data/lib/simp/beaker_helpers/ssg.rb +6 -6
- data/lib/simp/beaker_helpers/version.rb +1 -1
- data/spec/acceptance/suites/default/set_hieradata_on_spec.rb +4 -28
- data/spec/acceptance/suites/default/write_hieradata_to_spec.rb +2 -16
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de20d90d702274ad89d7c0f4971cf392e7b9810dd81c19d2a18713e2094c2e8e
|
4
|
+
data.tar.gz: 98364f3ad80cb62f625e5b83fbe284e4b303a99e09bf2227d22f9e3adbf40603
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d94eb890371b09ce7f2bcaa315dc6fe723228364a5186a0d363d4f56a14a4c744e171307d53251abe23460290aabd96b6124f82d30e8f79bd350ff6b6a2ac599
|
7
|
+
data.tar.gz: 1cd900c931008350da80b0b13856538d01afcac2a9c912a7d546953321069ed3f4e915ab2b59052c1f413d651ce5bcc307cc3bf46d13b0d56c6edc4556e7dc69
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,11 @@
|
|
1
|
-
### 1.11.
|
1
|
+
### 1.11.1 / 2018-10-03
|
2
|
+
* Deprecate the 'terminus' parameter in 'write_hieradata_to' and 'set_hieradata_on'
|
3
|
+
* Add 'copy_hiera_data_to' method to replace the one from beaker-hiera
|
4
|
+
* Add 'hiera_datadir' method to replace the one from beaker-hiera
|
5
|
+
* Change InSpec to use the 'reporter' option instead of 'format'
|
6
|
+
* Update the SSG to point to the new ComplianceAsCode repository
|
7
|
+
|
8
|
+
### 1.11.0 / 2018-10-01
|
2
9
|
* Add support for Beaker 4
|
3
10
|
|
4
11
|
### 1.10.14 / 2018-08-01
|
data/lib/simp/beaker_helpers.rb
CHANGED
@@ -83,9 +83,7 @@ module Simp::BeakerHelpers
|
|
83
83
|
|
84
84
|
# Returns the modulepath on the SUT, as an Array
|
85
85
|
def puppet_modulepath_on(sut, environment='production')
|
86
|
-
|
87
|
-
sut, "puppet config print --section main modulepath --environment #{environment} 2>/dev/null"
|
88
|
-
).output.lines.last.strip.split(':')
|
86
|
+
sut.puppet['modulepath'].split(':')
|
89
87
|
end
|
90
88
|
|
91
89
|
# Return the path to the 'spec/fixtures' directory
|
@@ -607,15 +605,15 @@ done
|
|
607
605
|
# Writes a YAML file in the Hiera :datadir of a Beaker::Host.
|
608
606
|
#
|
609
607
|
# @note This is useless unless Hiera is configured to use the data file.
|
610
|
-
# @see
|
608
|
+
# @see `#write_hiera_config_on`
|
611
609
|
#
|
612
610
|
# @param sut [Array<Host>, String, Symbol] One or more hosts to act upon.
|
613
611
|
#
|
614
|
-
# @param
|
612
|
+
# @param hieradata [Hash, String] The full hiera data structure to write to
|
615
613
|
# the system.
|
616
614
|
#
|
617
|
-
# @param terminus [String]
|
618
|
-
#
|
615
|
+
# @param terminus [String] DEPRECATED - This will be removed in a future
|
616
|
+
# release and currently has no effect.
|
619
617
|
#
|
620
618
|
# @return [Nil]
|
621
619
|
#
|
@@ -623,12 +621,12 @@ done
|
|
623
621
|
# using `#clear_temp_hieradata` in the `after(:all)` hook. It may also be
|
624
622
|
# retained for debugging purposes.
|
625
623
|
#
|
626
|
-
def write_hieradata_to(sut, hieradata, terminus = '
|
624
|
+
def write_hieradata_to(sut, hieradata, terminus = 'deprecated')
|
627
625
|
@temp_hieradata_dirs ||= []
|
628
626
|
data_dir = Dir.mktmpdir('hieradata')
|
629
627
|
@temp_hieradata_dirs << data_dir
|
630
628
|
|
631
|
-
fh = File.open(File.join(data_dir,
|
629
|
+
fh = File.open(File.join(data_dir, 'common.yaml'), 'w')
|
632
630
|
if hieradata.is_a?(String)
|
633
631
|
fh.puts(hieradata)
|
634
632
|
else
|
@@ -636,10 +634,65 @@ done
|
|
636
634
|
end
|
637
635
|
fh.close
|
638
636
|
|
639
|
-
|
640
|
-
|
637
|
+
copy_hiera_data_to sut, File.join(data_dir, 'common.yaml')
|
638
|
+
end
|
639
|
+
|
640
|
+
# A shim to stand in for the now deprecated copy_hiera_data_to function
|
641
|
+
#
|
642
|
+
# @param sut [Host] One host to act upon
|
643
|
+
#
|
644
|
+
# @param [Path] File containing hiera data
|
645
|
+
def copy_hiera_data_to(sut, path)
|
646
|
+
copy_to(sut, path, hiera_datadir(sut))
|
641
647
|
end
|
642
648
|
|
649
|
+
# A shim to stand in for the now deprecated hiera_datadir function
|
650
|
+
#
|
651
|
+
# Note: This may not work if you've shoved data somewhere that is not the
|
652
|
+
# default and/or are manipulating the default hiera.yaml.
|
653
|
+
#
|
654
|
+
# @param sut [Host] One host to act upon
|
655
|
+
#
|
656
|
+
# @returns [String] Path to the Hieradata directory on the target system
|
657
|
+
def hiera_datadir(sut)
|
658
|
+
# This output lets us know where Hiera is configured to look on the system
|
659
|
+
puppet_lookup_info = on(sut, 'puppet lookup --explain test__simp__test').output.strip.lines
|
660
|
+
|
661
|
+
if sut.puppet['manifest'].nil? || sut.puppet['manifest'].empty?
|
662
|
+
fail("No output returned from `puppet config print manifest` on #{sut}")
|
663
|
+
end
|
664
|
+
|
665
|
+
puppet_env_path = File.dirname(sut.puppet['manifest'])
|
666
|
+
|
667
|
+
# We'll just take the first match since Hiera will find things there
|
668
|
+
puppet_lookup_info = puppet_lookup_info.grep(/Path "/).grep(Regexp.new(puppet_env_path))
|
669
|
+
|
670
|
+
# Grep always returns an Array
|
671
|
+
if puppet_lookup_info.empty?
|
672
|
+
fail("Could not determine hiera data directory under #{puppet_env_path} on #{sut}")
|
673
|
+
end
|
674
|
+
|
675
|
+
# Snag the actual path without the extra bits
|
676
|
+
puppet_lookup_info = puppet_lookup_info.first.strip.split('"').last
|
677
|
+
|
678
|
+
# Make the parent directories exist
|
679
|
+
sut.mkdir_p(File.dirname(puppet_lookup_info))
|
680
|
+
|
681
|
+
# We just want the data directory name
|
682
|
+
datadir_name = puppet_lookup_info.split(puppet_env_path).last
|
683
|
+
|
684
|
+
# Grab the file separator to add back later
|
685
|
+
file_sep = datadir_name[0]
|
686
|
+
|
687
|
+
# Snag the first entry (this is the data directory)
|
688
|
+
datadir_name = datadir_name.split(file_sep)[1]
|
689
|
+
|
690
|
+
# Constitute the full path to the data directory
|
691
|
+
datadir_path = puppet_env_path + file_sep + datadir_name
|
692
|
+
|
693
|
+
# Return the path to the data directory
|
694
|
+
return datadir_path
|
695
|
+
end
|
643
696
|
|
644
697
|
# Write the provided data structure to Hiera's :datadir and configure Hiera to
|
645
698
|
# use that data exclusively.
|
@@ -652,14 +705,14 @@ done
|
|
652
705
|
# @param heradata [Hash, String] The full hiera data structure to write to
|
653
706
|
# the system.
|
654
707
|
#
|
655
|
-
# @param terminus [String]
|
656
|
-
#
|
708
|
+
# @param terminus [String] DEPRECATED - Will be removed in a future release.
|
709
|
+
# All hieradata is written to the first discovered path via 'puppet
|
710
|
+
# lookup'
|
657
711
|
#
|
658
712
|
# @return [Nil]
|
659
713
|
#
|
660
|
-
def set_hieradata_on(sut, hieradata, terminus = '
|
661
|
-
write_hieradata_to sut, hieradata
|
662
|
-
write_hiera_config_on sut, Array(terminus)
|
714
|
+
def set_hieradata_on(sut, hieradata, terminus = 'deprecated')
|
715
|
+
write_hieradata_to sut, hieradata
|
663
716
|
end
|
664
717
|
|
665
718
|
|
@@ -56,7 +56,7 @@ module Simp::BeakerHelpers
|
|
56
56
|
def run
|
57
57
|
sut_inspec_results = '/tmp/inspec_results.json'
|
58
58
|
|
59
|
-
inspec_cmd = "inspec exec
|
59
|
+
inspec_cmd = "inspec exec '#{@test_dir}' --reporter json > #{sut_inspec_results}"
|
60
60
|
result = on(@sut, inspec_cmd, :accept_all_exit_codes => true)
|
61
61
|
|
62
62
|
tmpdir = Dir.mktmpdir
|
@@ -5,7 +5,7 @@ module Simp::BeakerHelpers
|
|
5
5
|
if ENV['BEAKER_ssg_repo']
|
6
6
|
GIT_REPO = ENV['BEAKER_ssg_repo']
|
7
7
|
else
|
8
|
-
GIT_REPO = 'https://github.com/
|
8
|
+
GIT_REPO = 'https://github.com/ComplianceAsCode/content.git'
|
9
9
|
end
|
10
10
|
|
11
11
|
# If this is not set, the closest tag to the default branch will be used
|
@@ -143,15 +143,15 @@ module Simp::BeakerHelpers
|
|
143
143
|
if ssg_release
|
144
144
|
copy_to(@sut, ssg_release, @scap_working_dir)
|
145
145
|
|
146
|
-
on(@sut, %(mkdir -p scap-
|
146
|
+
on(@sut, %(mkdir -p scap-content && tar -xj -C scap-content --strip-components 1 -f #{ssg_release} && cp scap-content/*ds.xml #{@scap_working_dir}))
|
147
147
|
else
|
148
|
-
on(@sut, %(git clone #{GIT_REPO}))
|
148
|
+
on(@sut, %(git clone #{GIT_REPO} scap-content))
|
149
149
|
if GIT_BRANCH
|
150
|
-
on(@sut, %(cd scap-
|
150
|
+
on(@sut, %(cd scap-content; git checkout #{GIT_BRANCH}))
|
151
151
|
else
|
152
|
-
on(@sut, %(cd scap-
|
152
|
+
on(@sut, %(cd scap-content; git checkout $(git describe --abbrev=0 --tags)))
|
153
153
|
end
|
154
|
-
on(@sut, %(cd scap-
|
154
|
+
on(@sut, %(cd scap-content/build; cmake ../; make -j4 #{OS_INFO[@os][@os_rel]['ssg']['build_target']}-content && cp *ds.xml #{@scap_working_dir}))
|
155
155
|
end
|
156
156
|
end
|
157
157
|
end
|
@@ -4,54 +4,30 @@ hosts.each do |host|
|
|
4
4
|
describe '#set_hieradata_on' do
|
5
5
|
context 'when passed a YAML string' do
|
6
6
|
before(:all) { set_hieradata_on(host, "---\n") }
|
7
|
-
after(:all) { on(host, "rm -rf #{
|
7
|
+
after(:all) { on(host, "rm -rf #{hiera_datadir(host)}") }
|
8
8
|
|
9
9
|
it 'creates the datadir' do
|
10
10
|
on host, "test -d #{hiera_datadir(host)}"
|
11
11
|
end
|
12
12
|
|
13
|
-
it 'writes to the configuration file' do
|
14
|
-
stdout = on(host, "cat #{host.puppet['hiera_config']}").stdout
|
15
|
-
expect(stdout).to match(":hierarchy:\n- default")
|
16
|
-
end
|
17
|
-
|
18
13
|
it 'writes the correct contents to the correct file' do
|
19
|
-
stdout = on(host, "cat #{hiera_datadir(host)}/
|
14
|
+
stdout = on(host, "cat #{hiera_datadir(host)}/common.yaml").stdout
|
20
15
|
expect(stdout).to eq("---\n")
|
21
16
|
end
|
22
17
|
end
|
23
18
|
|
24
19
|
context 'when passed a hash' do
|
25
20
|
before(:all) { set_hieradata_on(host, { 'foo' => 'bar' }) }
|
26
|
-
after(:all) { on(host, "rm -rf #{
|
21
|
+
after(:all) { on(host, "rm -rf #{hiera_datadir(host)}") }
|
27
22
|
|
28
23
|
it 'creates the datadir' do
|
29
24
|
on host, "test -d #{hiera_datadir(host)}"
|
30
25
|
end
|
31
26
|
|
32
27
|
it 'writes the correct contents to the correct file' do
|
33
|
-
stdout = on(host, "cat #{hiera_datadir(host)}/
|
28
|
+
stdout = on(host, "cat #{hiera_datadir(host)}/common.yaml").stdout
|
34
29
|
expect(stdout).to eq("---\nfoo: bar\n")
|
35
30
|
end
|
36
31
|
end
|
37
|
-
|
38
|
-
context 'when the terminus is set' do
|
39
|
-
before(:all) { set_hieradata_on(host, "---\n", 'not-default') }
|
40
|
-
after(:all) { on(host, "rm -rf #{host.puppet['hiera_config']} #{hiera_datadir(host)}") }
|
41
|
-
|
42
|
-
it 'creates the datadir' do
|
43
|
-
on host, "test -d #{hiera_datadir(host)}"
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'writes the correct hierarchy to the configuration file' do
|
47
|
-
stdout = on(host, "cat #{host.puppet['hiera_config']}").stdout
|
48
|
-
expect(stdout).to match(":hierarchy:\n- not-default")
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'writes the correct contents to the correct file' do
|
52
|
-
stdout = on(host, "cat #{hiera_datadir(host)}/not-default.yaml").stdout
|
53
|
-
expect(stdout).to eq("---\n")
|
54
|
-
end
|
55
|
-
end
|
56
32
|
end
|
57
33
|
end
|
@@ -11,7 +11,7 @@ hosts.each do |host|
|
|
11
11
|
end
|
12
12
|
|
13
13
|
it 'writes the correct contents to the correct file' do
|
14
|
-
stdout = on(host, "cat #{hiera_datadir(host)}/
|
14
|
+
stdout = on(host, "cat #{hiera_datadir(host)}/common.yaml").stdout
|
15
15
|
expect(stdout).to eq("---\n")
|
16
16
|
end
|
17
17
|
end
|
@@ -25,23 +25,9 @@ hosts.each do |host|
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'writes the correct contents to the correct file' do
|
28
|
-
stdout = on(host, "cat #{hiera_datadir(host)}/
|
28
|
+
stdout = on(host, "cat #{hiera_datadir(host)}/common.yaml").stdout
|
29
29
|
expect(stdout).to eq("---\nfoo: bar\n")
|
30
30
|
end
|
31
31
|
end
|
32
|
-
|
33
|
-
context 'when the terminus is set' do
|
34
|
-
before(:all) { set_hieradata_on(host, "---\n", 'not-default') }
|
35
|
-
after(:all) { on(host, "rm -rf #{hiera_datadir(host)}") }
|
36
|
-
|
37
|
-
it 'creates the datadir' do
|
38
|
-
on host, "test -d #{hiera_datadir(host)}"
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'writes the correct contents to the correct file' do
|
42
|
-
stdout = on(host, "cat #{hiera_datadir(host)}/not-default.yaml").stdout
|
43
|
-
expect(stdout).to eq("---\n")
|
44
|
-
end
|
45
|
-
end
|
46
32
|
end
|
47
33
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simp-beaker-helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.11.
|
4
|
+
version: 1.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Tessmer
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-10-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: beaker
|